sexta-feira, outubro 19, 2007

FreeBSD 6.0 - Utilizando o Portsnap para Atualizar a Arvore do Ports

O Portsnap é o novo software de atualização da arvore Ports do FreeBSD e vem complementar outras interfaces já existentes, como o cvsup, ctm e cvs.
Para quem não conhece, o Ports é o sistema de instalação de programas via código fonte encontrado nativamente nas distribuições BSD. Esse conta com cerca de 14187 aplicativos portados.
O ports é uma coleção de scripts organizados em uma estrutura de diretórios subdivida por tipos de aplicação, por exemplo: www, net, editores, etc.. dentro desses diretórios entramos as pastas dos programas, scripts e seus respectivos Makefiles, o qual contém as referencias de onde baixar o código fonte e instruções de compilação entre outros.
Por exemplo para eu instalar o firefox, bastaria eu acessar a arvore do ports com o comando:

% cd /usr/ports

E efetuar uma pesquisa:

% find . -name firefox

ou

% whereis firefox

Embora exista a opção dos comandos acima, o ports trás um comando de pesquisa que é:

% make search name=firerox

Lembre-se, este último comando só funciona se você estiver dentro da arvore ports (/usr/ports).

Com a pesquisa descobrimos o subdiretório onde o firefox se encontra, agora é só acessar o diretório:

% cd /usr/ports/www/firefox

E executar o comando abaixo:

% make install

Pronto o ports se encarrega de baixar os códigos do Firefox bem como todas as dependências necessárias para sua compilação, é só esperar que em pouco tempo o firefox estará rodando.

O Ports é uma mão na roda wink.gif
E agora você sabe da importância de manter a sua estrutura de diretórios ports sempre atualizada, pois assim você sempre estará instalando aplicativos mais novos, estáveis e corrigidos.
Caso não o faça, com o tempo as referencias das URL's contida nos Makefiles vão se perdendo e você não conseguira mais instalar programas. E mais complicado fica de você saltar de um Release para outro (kernel/aplicativos).
Na verdade acho que nem precisava ter mencionado a importância de manter seu sistema atualizado, seja lá qual for.

Então vamos aos passos que são poucos mas muito demorado....
Atenção! Nem pense em fazer isso na sua conexão discada, não vai dar muito certo wink.gif

A primeira coisa devemos fazer é checar se existe o arquivo de configuração:

% ls /etc/portsnap.conf

Caso não exista, copie o arquivo de exemplo localizado em: /usr/local/etc

% cp /usr/local/etc/portsnap.conf.sample /etc/portsnap.conf

Em meu FreeBSD 6.0 não precisei executar este passo, o arquivo já existia no /etc.

Agora vamos começar a atualização com o comando:

% portsnap fetch

Este comando descarrega a snapshot da arvore ports. Se você tiver o que fazer não perca tempo esperando, pois isso demora mesmo em conexões de alta velocidade...

Por questões de segurança não recomendo que a atualização via portsnap seja feita em tempo real (% portsnap fetch update).
Depois de baixada a copia compactada da snapshot ficará armazenada em: /var/db/portsnap ou /usr/local/portsnap. Em meu FreeBSD 6.0 a copia ficou em /var/db/portsnap.

Agora é necessário extrair a snapshot com o comando:

% portsnap extract

E para encerrar de o comando:

% portsnap update

Pronto (que lê pensa que não demorou) o seu FreeBSD já conta com a última atualização da arvore, contendo novos programas, URL's atualizadas e códigos corrigidos.
Espero que este artigo tenha sido útil e tirado suas dúvidas sobre está simples mais poderosa ferramenta de atualização.
No próximo artigo estarei descrevendo como atualizar seu ports via cvsup. Para quem não tem conexão banda larga pode ser um processo mais viavél já que é possàvel escolher quais categorias de programas vão ser atualizadas, sendo que no portsnap a atualização da arvore se dá por completo.

Autor: Andrei Drusian
Fonte: Linux BSD