Atualização de pacotes em FreeBSD usando Portupgrade

Autor: Juan RP
Data: 28/08/2002.
Ultima revisão: 12-11-2002.


O sistema de ports e um de seus grandes inconvenientes: atualizar pacotes. O problema que muitos usuários tinham antes de que existisse Portupgrade era que , despues de ter instalado um port e querer atualizá-lo a uma versão mas recente, tenian dois pacotes iguais na base de dados /var/db/pkg de diferente versão, com o que obteniamos erros com as dependências, ou teniamos que apagar o pacote e instalar o pacote novo para não ter as duas versões instaladas.

Por sorte temos Portupgrade o qual contém várias ferramentas para administrar, atualizar, reconfigurar os ports/pacotes e arranjar dependências entre outras coisas. Despues entraremos em mas detalhes, por agora vamos ao primeiro passo , obter Portupgrade.

Instalação de Portupgrade

Para instalar dito pacote , podemos fazê-lo de 2 modos: ou instalámos o pacote binário e suas dependências mediante o comando pkg_add, ou instalamos e compilámos automaticamente o port. Aqui vos explico os 2 passos:

1ª opção (pkg_add):

pkg_add -r portupgrade

2ª opção (port):

cd /usr/ports/sysutils/portupgrade && make install clean

Podemos comprovar se o temos bem instalado e ver os ficheros que traz o pacote mediante o comando pkg_info -L 'portupgrade*' | more. Se todo tem ido corretamente , já teremos Portupgrade pronto para que faça o trabalho "sujo".

Configuração de cvsup e algo mas...

Antes de usar portupgrade ,devemos ter instalado em nosso sistema o pacote cvsup, o procedimento será o mesmo para instalá-lo, mas poderemos eleger entre 2 versões:

Despues de tê-lo instalado podemos atualizar nossa raiz de ports :-).

Temos 2 opções para atualizar nosso diretório de ports, ainda que os dois usam o mesmo comando ao fim e ao cabo. Ou bem elegemos o método tradicional (cvsup -g -L 2 /rota/onde/esta/ports-supfile), ou em seu lugar podemos utilizar uma alternativa:

#cp /etc/defaults/make.conf /etc/ 

E editaremos este mesmo fichero que copiámos a etc /, e ficará da seguinte forma:

SUP_UPDATE=yes
SUP=/usr/local/bin/cvsup
SUPFLAGS= -g -L 2
SUPHOST=cvsup.uk.FreeBSD.org
SUPFILE=/usr/share/examples/cvsup/stable-supfile
PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile
DOCSUPFILE=/usr/share/examples/cvsup/doc-supfile

Se usais uma conexion lenta (modem) , podeis adicionar o flag -z a SUPFLAGS , o qual fará que comprima os dados com o consiguiente aumento de velocidade. Uma vez temos estas lineas metidas , podemos ir-nos a usr //ports e teclear o seguinte comando para atualizar automaticamente nossa raiz de ports: make update.

Obrigado às lineas referentes a cvsup que metemos anteriormente em etc //make.conf, poderemos utilizar o comando make update dentro do diretório /usr/src.O qual atualizará nosso diretório de fontes completo ( vease sys,doc,ports ... ).

Agora que já temos atualizada nossa raiz de ports , vos explicarei o funcionamento básico de todos os comandos que contém portupgrade.

Olhando com pkg_info -L 'portupgrade*' vemos que este pacote contém os seguintes comandos:

portsdb e ports_glob são equivalentes, os dois fazem a mesma função.

Comandos básicos

Para atualizar todos os pacotes que temos instalados em nosso sistema , utilizaremos o comando portupgrade -vai, o qual a primeira vez que o executemos chamará a pkgdb internamente e criasse a base de dados que utilizasse portupgrade. Se ademas quisieramos fazer a actualizaci&oocute;n em modo interativo añadiriamos o flag -i, o qual nos perguntará se queremos atualizar ou não esse pacote.

Se só queremos atualizar um pacote em questão , por exemplo mozilla , o executaríamos de tal modo: portupgrade -v mozilla, ademas por se não fosse pouco desejámos atualizar as dependências deste pacote tambien, adicionaremos o flag -r. Interessante eh ?. Para ver mas características do comando portupgrade, aconselho-vos que veais a página man cuidadosamente.

Que não teneis espaço em usr /, por culpa da compilacion de ports e quereis liberar espaço?. A resposta a este problema esta no comando portsclean -CD. Este apagará todos os diretórios de trabalho de compilação dos ports e os tarballs de pacotes de versões antigas que se encontram em usr //ports/distfiles. Como sempre , mas informaci&ocute;n na página man.

Por suposto não todo são alegrias, e de vez em quando deberias de executar o comando pkgdb -F para arranjar os problemas que tenham surgido com as dependências. Não entrarei em detalhes com este comando já que está suficientemente claro o que se deve fazer.

Se desejamos instalar um port ou pacote que não temos instalado em nosso sistema deveremos de utilizar o comando portinstall seguido dos flags correspondentes e o nome ou nommbres destes. Exemplo:

portinstall -m WITH_GNOME=não -v xchat

Aqui vemos um novo flag -m o qual lhe passa parâmetros ao comando make para a compilação, o seguinte fica claro para que serve :P.

Por ultimo vos porei um exemplo sobre como recompilar um port e adicionar-lhe uma opção de configuração, o port que utilizarei será: (pure-ftpd). Olvidásteis dar-lhe suporte MySQL a vosso servo ftp e quereis habilitar essa opção ?. A solução é esta:

portupgrade -m WITH_MYSQL=yes -vf pure-ftpd

Neste comando encontramos um novo flag -f o qual significa force, osea que força a reinstalá-lo. Espero que tenha ficado claro.

Finalizando

Analisei um por um os comandos que contém o pacote portupgrade e vos pus alguns exemplos de como usá-los , podeis ver que as opções são muito flexíveis e podeis combiná-las como vos plazca . Para qualquer dúvida sobre o funcionamento da ferramenta/s, não olvideis recorrer à pagina man antes de perguntar pelo irc ou nas listas de correio. Espero que este pequeno tutorial sirva de guia para que vos vayais introduzindo em atualizar pacotes.


Hosted by www.Geocities.ws

1