Guia Rápido do FreeBSD para Usuários Linux®
Anterior |  | Próxima

# 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)

- Instalação rápida (a compilação de grandes aplicações pode ser um tanto demorada).

- Você não precisar saber como compilar o programa.

- Não é necessário instalar compiladores no seu sistema.

`Ports` (código fonte)

- Possibilidade de personalizar as opções de instalação. (Pacotes normalmente são compilados com as opções padrões. Com o `ports` você pode personalizar várias opções, como a compilação de módulos adicionais ou a mudança do path de instalação padrão.)

- Você pode aplicar seus próprios patches se assim desejar.

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.)

Anterior | Principal | Próxima
`Shells`: Sem Bash? |  | Inicialização do Sistema: Onde estão os run-levels?

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>.