O primeiro artigo é sobre o sistema de ports, pois esta é considerada uma das melhores características do FreeBSD (e de todos os BSD em existência, embora o FreeBSD disponha de mais, o funcionamento é em tudo igual nos sistemas BSD que dispõem de ports, o FreeBSD, NetBSD, OpenBSD e DragonFlyBSD).
Qualquer pessoa com conhecimentos de instalação de software livre (ou qualquer outro distribuído na forma de código fonte) em Unix sabe os passos que tem que dar até conseguir ou permitir aos ser utilizadores usarem a dita aplicação. Com certeza que é familiar o ciclo ./configure, make e make install. É uma tarefa por vezes não-trivial, dado que por vezes é necessário percorrer a lista de opções de configuração (normalmente com o comando ./configure –help) até conseguirmos afinar a aplicação às nossas necessidades. Além do mais, a maior parte das vezes a aplicação que queremos instalar depende de outras aplicações ou bibliotecas que também é preciso compilar e instalar. Para complicar ainda mais, nem todas as aplicações se instalam da mesma forma.
Foi para facilitar isto que com a versão 2.0 do FreeBSD passou a ter disponível a Árvore de ports (em inglês, ports tree). Com ports é possível esquecermo-nos das dependências de uma dada aplicação. O sistema de ports trata de tudo, começando com a transferência do ficheiro contendo o código fonte, configuração, compilação e instalação. Até é possível fazer uma gestão de pacotes básica.
Fisicamente, os ports não são mais que ficheiros normalmente instalados com os sistemas BSD que permitem automatizar a instalação de software que não faz oficialmente parte do mesmo.A árvore de ports é normalmente instalada no directório /usr/ports. Dentro deste poderemos ver directórios como net, sys, www, etc. Estes servem para agrupar as aplicações em categorias. Por exemplo, dentro do directório www poderemos encontrar um outro chamado apache2, que não é mais nada que o port para o Apache HTTP Server 2.0.
O uso mais frequentes para os ports é instalação de software. Suponhamos que queríamos instalar o Apache HTTP Server 2.0. Para tal, basta fazer
# cd /usr/ports/www/apache2
# make install
To enable a module category: WITH__MODULES
To disable a module category: WITHOUT__MODULES
Per default categories are: AUTH DAV MISC
Categories available: AUTH DAV EXPERIMENTAL LDAP MISC PROXY SSL SUEXEC THREADS
To see all available knobs, type make show-options
To see all modules in different categories, type make show-categories
You can check your modules configuration by using make show-modules
To save apache.org bandwidth, please use the closest mirror.
Hit Ctrl+C now and do a make print-closest-mirrors.
To automatically update /etc/make.conf do: make print-closest-mirrors >> /etc/make.conf
===> Vulnerability check disabled, database not found
===> Extracting for apache-2.0.59
=> MD5 Checksum OK for apache2/httpd-2.0.59.tar.bz2.
=> SHA256 Checksum OK for apache2/httpd-2.0.59.tar.bz2.
=> MD5 Checksum OK for apache2/powerlogo.gif.
=> SHA256 Checksum OK for apache2/powerlogo.gif.
===> apache-2.0.59 depends on file: /usr/local/bin/perl5.8.8 - found
Como se pode ver, mesmo o apache tem dependências, neste caso o Perl 5.8.8. Caso não o tivesse instalado o meu sistema faria a instalação do Perl antes de prosseguir com a do Apache.Após ter concluído, ficaremos com o Apache2 instalado e pronto a correr. É necessário, obviamente, configurar o software à nossa medida, mas de qualquer forma, o sistema de ports facilita muito a vida de qualquer administrador de sistemas.
Com isto concluo a 1ª parte deste artigo. Na 2ª parte vou dar mais umas dicas sobre o sistema de ports bem como algumas funcionalidades não tão conhecidas.