3 Pacotes e Ports: Adicionando programas no FreeBSD

Além do tradicional método UNIX® de instalação de programas (baixar o código fonte, extrair, editar o código fonte, e compilar), o FreeBSD oferece dois outros métodos para instalar aplicações: pacotes e ports. Uma lista completa de todos os ports e pacotes disponíveis pode ser encontrada aqui.

3.1 Pacotes

Pacotes são aplicações pré-compiladas, o equivalente no FreeBSD ao .deb nos sistemas baseados no Debian/Ubuntu e ao .rpm nos sistemas baseados no Red Hat/Fedora. Pacotes são instalados usando pkg_add(1). Por exemplo, o seguinte comando instala o Apache 2.2:

# pkg_add /tmp/apache-2.2.6_2.tbz

Usar a opção -r dirá ao pkg_add(1) para baixar automaticamente o pacote e instalá-lo, juntamente com quaisquer dependências que ele possua:

# pkg_add -r apache22
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/Latest/apache22.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/expat-2.0.0_1.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/perl-5.8.8_1.tbz... Done.
[snip]

To run apache www server from startup, add apache22_enable="YES"
in your /etc/rc.conf. Extra options can be found in startup script.

Nota: Se você está rodando uma versão de release do FreeBSD (6.2, 6.3, 7.0, etc., geralmente instalada a partir de um CD-ROM) o pkg_add -r vai baixar o pacote compilado especificamente para esta versão. Este pacote pode não ser a versão mais atual da aplicação. Você pode usar a variável PACKAGESITE para sobrescrever este comportamento padrão. Por exemplo, ajuste PACKAGESITE para ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6-stable/Latest/ para baixar os pacotes mais recentes compilados para a série 6.X.

Para mais informações sobre pacotes, por favor, consulte a seção 4.4 do Handbook do FreeBSD: Usando o Sistema de Pacotes.

3.2 Ports

O segundo método para instalação de aplicações no FreeBSD é a Coleção de Ports. A Coleção de Ports é um framework de Makefiles e patches especialmente customizados para a instalação de vários programas a partir do código fonte no FreeBSD. Ao instalar um port o sistema irá baixar o código fonte, aplicar qualquer patch necessário, compilar o código, e instalar a aplicação. O mesmo processo será aplicado para todas as suas dependências.

A Coleção de Ports, por vezes designada como a árvore de ports, pode ser encontrada em /usr/ports. Isto assumindo que a Coleção de Ports foi instalada durante o processo de instalação do FreeBSD. Se a Coleção de Ports não foi instalada, ela pode ser adicionada a partir dos discos de instalação usando sysinstall(8), ou baixada dos servidores do FreeBSD usando csup(1) ou portsnap(8). Instruções detalhadas para a instalação da Coleção de Ports podem ser encontradas na seção 4.5.1 do Handbook.

A instalação de um port é tão simples (geralmente) quanto entrar no diretório do port desejado e iniciar o processo de compilação. O exemplo seguinte instala o Apache 2.2 a partir da Coleção de Ports:

# cd /usr/ports/www/apache22
# make install clean

Um grande benefício do uso do ports para instalar programas é a possibilidade de personalizar as opções de instalação. Por exemplo, ao instalar o Apache 2.2 a partir do ports, você poderá habilitar o mod_ldap definindo a variável WITH_LDAP ao executar make(1):

# cd /usr/ports/www/apache22
# make WITH_LDAP="YES" install clean

Por favor, leia a seção 4.5 do Handbook do FreeBSD, Usando a Coleção de Ports, para maiores informações sobre a Coleção de Ports.

3.3 Ports ou pacotes, qual eu devo usar?

Pacotes são apenas ports pré-compilados, então na prática é uma questão de instalarmos a partir do código fonte (ports) contra instalarmos de um pacote binário. Cada método tem seus próprios benefícios:

Pacotes (binário)

Ports (código fonte)

Se você não tem qualquer requisito especial, o sistema de pacotes provavelmente vai se adequar muito bem à sua situação. Se você for precisar personalizar a instalação, o ports é a melhor opção. (E lembre-se, se você precisa personalizar a instalação, mas prefere pacotes, você pode compilar um pacote personalizado a partir do ports usando make package e, em seguida, copiar o pacote para outros servidores.)

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.