Post em Destaque

BSD Day 2018 chegando

  Pessoal da área de tecnologia ou que gosta, não deixe de ir nesse evento. Será abordado muitos assuntos legais desde segurança da informação até impressão 3D e muito mais. O vento é gratuito mas quem quiser contribuir com alguma doação, pode ser feito pelo site mesmo de forma segura....

Leia mais...

FreeBSD – Fim do Ports no CVS em 2013

Posted by gondim | Posted in FreeBSD | Posted on 07-09-2012

Tags:, , , , ,

2

Para quem atualiza o ports através do cvs, à partir de 28 de Fevereiro de 2013 não estará mais disponível esse recurso. Aconselha-se usar o portsnap ou migrar para o svn (subversion). Abaixo a notícia na íntegra e outras explicações dos motivos que levaram à isso:

The development of FreeBSD ports is done in Subversion nowadays.
For the sake of compatibility a Subversion to CVS exporter is
in place which has some limitations. For CVSup mirroring cvsup
based on Ezm3 is used which breaks regularly especially on amd64
and with Clang and becomes more and more unmaintainable.

For those reasons by February 28th 2013 the FreeBSD ports tree will
no longer be exported to CVS. Therefore ports tree updates via CVS
or CVSup will no longer available after that date. All users who use
CVS or CVSup to update the ports tree are encouraged to switch to
portsnap(8) [1] or for users which need more control over their ports
collection checkout use Subversion directly:

% svn co https://svn0.us-west.FreeBSD.org/ports/head /usr/ports

and update a checked out repository using:

% cd /usr/ports && svn update

Advanced users, or larger sites, might consider setting up a local
svn mirror. Both for people doing direct checkouts and for people
wanting to use a local mirror, they can access one of the public
subversion servers [2].

How to set up a Subversion mirror using svnsync(1) is described in
the FreeBSD Committers Guide [3]. Initial seeds to set up a svnsync
mirror are provided on the FreeBSD FTP mirror sites under
/pub/FreeBSD/development/subversion/.

Binary packages for pkg_install are still provided via the FTP mirror
network. There is also pkgng which is a feature rich replacement tool
for pkg_install available in the ports tree under ports/ports-mgmt/pkg.
Packages for pkgng are available on pkg.FreeBSD.org.

To use pkg.FreeBSD.org at least pkgng 1.0 RC6 is needed and can be
enabled in pkg.conf like this (where ${ABI} is dependent on your
system):
PACKAGESITE         : http://pkg.freebsd.org/${ABI}/latest
SRV_MIRRORS         : YES

With pkgng 1.0 SRV_MIRRORS is enabled by default and no longer needs
to be set explicitly. If pkgng prior to 1.0 RC6 is used
http://pkgbeta.FreeBSD.org can be used as packagesite instead.

Please keep im mind that the pkgng infrastructure is still considered
as beta. More information about pkgng can be found at
http://wiki.FreeBSD.org/pkgng and https://github.com/pkgng/pkgng.

Beat, on behalf of portmgr@

[1] http://www.FreeBSD.org/doc/handbook/updating-upgrading-portsnap.html
[2] http://www.FreeBSD.org/doc/handbook/mirrors-svn.html
[3]
http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/committers-guide/subversion-primer.html
Share Button

Gerenciando seus pacotes no FreeBSD com o portmaster

Posted by gondim | Posted in Dicas, FreeBSD, Software Livre | Posted on 18-05-2012

Tags:, ,

12

Uma coisa que sempre foi complicada quando trabalhamos com pacotes compilados, é a famosa dependência. Quando instalamos uma aplicação pelo ports, o mesmo se encarrega de baixar, compilar e instalar todas as dependências que aquela aplicação necessita. Dependendo da aplicação e dependência ainda podem aparecer janelas de configurações de opções de compilação para aquele determinado pacote e aí dependendo das marcações, mais dependências poderão surgir no contexto. Até aqui tudo bem, o problema maior é quando você precisa atualizar uma lib ou aplicação que envolverá atualizar outras aplicações da sua dependência. Para você ter uma idéia do que estou dizendo vou pegar como exemplo a libpcre e usar o comando “pkg_info -R” para mostrar quais pacotes dependem dele:

# pkg_info -R pcre-8.30_2
Information for pcre-8.30_2:

Required by:
ap22-mod_auth_mysql_another-3.0.0_4
ap22-mod_wsgi-2.8_2
apache-2.2.22_5
pecl-APC-3.1.9_1
pecl-intl-1.1.2_3
pecl-pdflib-2.1.8_1
phpMyAdmin-3.4.10.2
postfixadmin-2.3.5
roundcube-0.7,1
php5-5.3.13
php5-zip-5.3.13
php5-zlib-5.3.13
php5-mbstring-5.3.13
php5-gettext-5.3.13
php5-mysqli-5.3.13
php5-gd-5.3.13
php5-imap-5.3.13
php5-xml-5.3.13
php5-openssl-5.3.13
php5-session-5.3.13
php5-iconv-5.3.13
php5-pspell-5.3.13
php5-dom-5.3.13
php5-sqlite-5.3.13
php5-json-5.3.13
php5-ldap-5.3.13
php5-hash-5.3.13
php5-ctype-5.3.13
php5-bz2-5.3.13
php5-mysql-5.3.13
php5-xmlrpc-5.3.13
php5-filter-5.3.13
php5-mcrypt-5.3.13
postfix-2.8.10,1

Isso quer dizer que se eu atualizar essa lib, terei que recompilar todos esses pacotes que dependem dela. Imagine o trabalho e agora imagine ter que fazer isso em mais de um servidor. Uns 2 anos atrás isso me assombrou pois na época tentei usar o portupgrade e não me adaptei muito bem. Foi quando conheci o portmaster e realmente fiquei maravilhado com essa ferramenta fabulosa escrita em shell script por Douglas Barton.

Para usarmos o portmaster precisamos primeiramente instala-lo:

# cd /usr/ports/ports-mgmt/portmaster

# make install clean

# rehash <- se tiver usando csh

O man portmaster pode lhe apresentar todas as opções disponíveis e por isso vou mostrar apenas algumas básicas aqui:

Instalando um pacote:

# portmaster lang/php5-extensions   <- esse comando fará a instalação do PHP5 e as extensões que você selecionar para ele.

Excluir um pacote:

# portmaster -e php5-bz2-5.3.13   <- nesse caso estou querendo excluir esse pacote php5-bz2

Substituir uma versão de pacote já instalada por outra:

# portmaster -o /usr/ports/mail/postfix28 postfix-2.7.8_1,1   <- nesse exemplo estou substituindo o postfix 2.7 que já está instalado no meu sistema, pelo postfix 2.8. Repare que o parâmetro “-o” especifica o local onde se encontra o novo pacote que será colocado no lugar do anterior.

Atualizar e recompilar todos os pacotes instalados:

# portmaster -a -f   <- quando você quiser atualizar e recompilar todos os pacotes instalados no seu sistema. Dependendo da quantidade de pacotes isso poderá demorar um bocado.

Atualizar um pacote e todas as suas dependências e ainda apagando os distfiles:

# portmaster -d -Rf databases/rrdtool    <- nesse caso vai atualizar e recompilar o pacote rrdtool e todas as suas depências. O “-d” vai dizer para o portmaster apagar os distfiles.

Para excluir um pacote da atualização:

# portmaster -a -f -x roundcube   <- aqui vou atualizar todos os pacotes exceto o pacote roundcube

Bem é isso pessoal. Mais detalhes estudem o man do portmaster.

Ah! Não esqueçam de fazer um “portsnap fetch update” antes de usar o portmaster.  🙂

Share Button