sexta-feira, 14 de maio de 2010

Ports FreeBSD - Instalando aplicativos via ports no FreeBSD

Existem duas maneiras de se instalar aplicativos de forma "autônomas" no freeBSD, sem se preocupar com as dependências de aplicativos e bibliotecas para o programa ao qual você deseja instalar. As duas formas são: através dos packages e a outra é através do ports do freeBSD, hoje falarei sobre os ports, de como atualizar a lista de ports e a melhor forma de encontrar o port e instala-lo no seu freeBSD.

Para quem não conhece o FreeBSD existe um mini curso falando um pouco sobre o freeBSD desde a sua história até sua instalação, acesse o site(http://www.ignx.com.br) e siga o roteiro do curso, para efetuar o login utilize usuário demo e senha demo.

Bem iremos então partir ao propósito deste post, que é a instalção de aplicativos via ports no freeBSD, mas afinal de contas o que é o ports?

- ports: é uma tecnologia do freeBSD que permite o administrador instalar aplicativos de forma autonôma, pois, ele irá abstrair a complexidade de instalação de softwares já conhecido do estilo unix-like em que o processo deste sistema basicamente se resume em: baixar , descompactar, localizar a documentação(README ou INSTALL) ,procurar e instalar dependências se for necessário, compilar e instalar o software que se deseja. Os arquivos de um port contém todas as informações necessárias para possibilitar que o sistema automatize o processo para você. Você executa um conjunto de comandos simples e o código fonte do aplicativo é automaticamente baixado, descompactado, corrigido, compilado e instalado para você. É interessante informar que os softwares para o freeBSD necessitam de pequenas modificações no código fonte para que ele seja compilado corretamente no freeBSD, mas se você estiver utilizando o ports, você estará instalando um aplicativo que foi deliberamente portado para o FreeBSD, No momento, mais de 12,800 aplicativos já foram disponibilizados desta forma para o freeBSD.

Antes que você possa instalar todas as aplicações de que necessita, você precisa saber do que precisa, e também como a aplicação se chama.

A lista de aplicativos disponiveis para FreeBSD cresce o tempo todo. Felizmente, existem diversas formas de procurar o que você necessita:

O web site do projeto FreeBSD mantém uma lista atualizada de todos os aplicativos disponiveis e na qual você pode executar buscas, em http://www.FreeBSD.org/ports/.

Dan Langille mantém o sítio web FreshPorts, em http://www.FreshPorts.org/. O FreshPorts rastreia as alterações nas aplicações na árvore do ports a medida que elas acontecem, permitindo que você monitore um ou mais ports, enviando um email para você quando eles forem atualizados.

Se você não sabe o nome da aplicação que deseja, consulte um sítio no estilo do FreshMeat (http://www.freshmeat.net/) para procurar um aplicativo que lhe atenda, quando encontrar volte ao sítio do FreeBSD e verifique se o aplicativo já foi incorporado ao ports.

Agora que você já o nome do ports passamos para o passo de instalação do mesmo, você primeiro precisa obter a coleção de ports, a qual é basicamente um conjunto de arquivos Makefiles, patches, e arquivos de descrição colocados sob /usr/ports

A primeira coisa que precisa ser explicada a alguém que está iniciando no uso do ports é que na verdade um port é composto por um ``conjunto de arquivos''. Em poucas palavras, um port é o conjunto mínimo de arquivos que diz ao sistema FreeBSD como compilar corretamente e como instalar um aplicativo. Cada port é composto por:

* Um arquivo Makefile. O Makefile contém várias instruções que definem como o aplicativo deve ser compilado e onde ele deve ser instalado em seu sistema.
* Um arquivo distinfo. Este arquivo contem informações sobre quais arquivos precisam ser obtidos para compilar o port e os seus respectivos checksums, os quais são utilizados para verificar se o o arquivo não foi corrompido durante o processo de transmissão, a verificação é realizada através do utilitário md5(1).
* Um diretório chamado files. Este diretório contém as correções necessárias para que o aplicativo possa ser compilado e instalado no FreeBSD. As correções são basicamente arquivos pequenos os quais especificam alterações a serem aplicadas a determinados arquivos. São arquivos em formato texto plano, e basicamente dizem `` remova a linha 10'' ou ``Altere a linha 26 para ...''. As correções são normalmente conhecidas como ``diffs'', pois são gerados pelo utilitário diff(1)

Este diretório também pode conter outros arquivos necessários para a compilação do aplicativo.
* Um arquivo pkg-descr. Este arquivo contém a descrição detalhada do aplicativo.
* Um arquivo pkg-plist. Este arquivo contém a lista de todos os arquivos que serão instalados pelo port. Ele também diz ao sistema de ports quais arquivos devem ser removidos durante a desinstalação do aplicativo.

Alguns ports possuem outros arquivos, como por exemplo pkg-message. O sistema de ports utiliza estes arquivos para lidar com sistuações especiais. Se você desejar maiores detalhes sobre estes arquivos, e sobre o sistema de ports em geral, consulte o FreeBSD Porter's Handbook .

Para atualizar a sua coleção de ports você deverá executar o seguinte comando(se for a primeira atualização a ser feita após instalação do freeBSD):
# portsnap fetch extract

ele irá atualizar toda a sua coleção de ports do seu freeBSD. Quando for atualizar a coleção de ports nas próximas vezes execute somente o comando abaixo:
# portsnap fetch update

Pronto já temos os ports atualizados o próximo passo agora é finalmente instala-lo, como já deve ser do conhecimento de todos os ports ficam localizados no seguinte caminho abaixo em seu freeBSD:
# cd /usr/ports

Encontrado o seu ports pelo nome é somente executar o seguinte comando dentro da pasta do aplicativo:
# make install clean

Exemplo, vamos instalar por exemplo o apache 2.2 então:
# cd /usr/ports/www/apache22/ && make install clean

Bem, se você utilizar proxy em sua rede talvez seja necessário passar isto para o fecth o aplicativo que baixar o programa para o ports realizar a instalação, para setar o proxy faça o seguinte procedimento:
# vi /etc/make.conf

> insira na ultima linha:

FETCH_ENV = HTTP_PROXY=http://user:passwd@proxy.name:80

Exemplo, proxy sem precisar passar usuário e senha e utilizando a porta 8080:

> insira na ultima linha:

FETCH_ENV = HTTP_PROXY=http://192.168.1.1:8080

Para listar os detalhes dos pacotes instalados através do pkg e ports no FreeBSD:
# pkg_info

Parametros úteis:

-a, mostra detalhes sobre todos os pacotes instalados como: Comment, Description, Required by.

-p nome_do_pkg
, mostra em que local/caminho estar instalado este pacote.

-c nome_do_pkg, mostra o comentário para este pacote.

-d nome_do_pkg, mostra o detalhes para este pacote.

-f nome_do_pkg, mostra packing list para este pacote.

-s nome_do_pkg, mostra o tamanho total do pacote instalado.

-o nome_do_pkg, mostra a "origin" caminho gravado na geração do pacote. Este caminho é o nome do diretório na coleção de ports do FreeBSD.

Para deinstalar um ports(package/aplicativo):

Acesse o diretório da coleção de ports que vc deseja deinstalar, por exemplo para deinstalar o apache22:

# cd /usr/ports/www/apache22 && make deinstall

e depois limpe o "lixo" deixado pela instalação do pacote apache22, ainda na pasta execute o comando abaixo:

# make clean

Ferramenta para limpar o lixo deixado pelo ports e packages:

# portsclean

Simples e fácil!

Espero ter ajudado!

Bibliografia:
http://www.openit.com.br/freebsd-hb/

2 comentários:

Seguidores