3. Pacotes e `Ports`: Adicionando programas no FreeBSD
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 |  | Próxima
2. `Shells`: Sem Bash? | Principal | 4. 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>.