FreeBSD: instalando ports e pacotes

O FreeBSD é distribuído com uma rica coleção de ferramentas de sistema como parte do sistema base. Além disso, o FreeBSD disponibiliza duas tecnologias complementares para a instalação de software de terceiros: a Coleção de Ports do FreeBSD, para a instalação a partir dos códigos-fonte, e packages para instalações a partir de binários pré-compilados. Qualquer um dos dois métodos podem ser usados para instalar os softwares.

Um package (pacote) FreeBSD contém cópias pré-compiladas de todos os comandos para uma aplicação, bem como quaisquer arquivos de configuração e documentação. Um pacote pode ser manipulado com os comandos PKG, tais como pkg install.

Um port FreeBSD é uma coleção de arquivos destinados a automatizar o processo de compilação de uma aplicação a partir do código fonte. Os arquivos que compõem uma port contém todas as informações necessárias para fazer automaticamente o download, extração, correção, compilação e instalação do aplicativo.

Tanto os packages quanto os ports sabem sobre as dependências. Se um package ou port é usado para instalar um aplicativo e uma ou mais bibliotecas dependentes não estiverem instaladas, as bibliotecas serão instaladas automaticamente antes do aplicativo.

Apesar das duas tecnologias serem semelhantes, ambas têm pontos fortes próprios. Escolha a tecnologia que atenda às suas necessidades para a instalação de um aplicativo específico.

Benefícios dos packages:

  • O package tarball compactado é tipicamente menor do que o tarball compactado contendo o código-fonte do aplicativo.
  • Packages não requerem tempo de compilação. Para grandes aplicações, como o Mozilla, KDE ou GNOME isso pode ser importante em um sistema lento.
  • Packages não requer nenhum conhecimento do processo envolvido na compilação de software no FreeBSD.

Benefícios dos ports:

  • Os packages são normalmente compilado com opções conservadoras, porque eles têm que rodar no máximo de sistemas operacionais possíveis. Ao compilar a partir de ports, pode-se alterar as opções de compilação.
  • Alguns aplicativos possuem opções em tempo de compilação relativos a quais recursos serão instalados. Por exemplo, o Apache pode ser configurado com uma grande variedade de diferentes opções embutidas.
  • Em alguns casos, vários packages existem para o mesmo aplicativo para especificar certas configurações. Por exemplo, o Ghostscript está disponível como um package ghostscript e também como um package ghostscript-nox11, dependendo se o Xorg está ou não instalado. Criar vários packages se torna inviável se o aplicativo tem mais de uma ou duas opções de tempo de compilação diferentes.
  • As condições de licenciamento de alguns softwares proíbem distribuição binária. Esse tipo de software deve ser distribuído como código fonte que deve ser compilado pelo usuário final.
  • Algumas pessoas não confiam em distribuições binárias ou preferem verificar o código-fonte, a fim de procurar por potenciais problemas.
  • O código-fonte é necessário a fim de aplicar patches personalizados.

A ferramenta de instalação de ports do FreeBSD é o Portsnap, o qual vem instalado por padrão no sistema operacional.

Assim como nas distribuições Linux baseadas em Debian – que utilizam o Apt para instalar, atualizar e desinstalar programas – para que o Portsnap possa ser executado o usuário necessita de privilégio elevado (conta com privilégios equivalentes à conta root).

Como nas distribuições Linux que utilizam o Apt, no FreeBSD é boa prática executar a atualização da árvore de ports antes de se instalar algum pacote novo.

Para atualizar a árvore de ports, execute os seguintes comandos:

A instalação dos “aplicativos” ficam dentro de sub-diretórios, no caminho /usr/ports. Para trabalhar com os ports, é necessário acessar o diretório correspondente e executar o seguinte comando:

Após executar o comando acima, eventualmente, o FreeBSD apresenta algumas telas para que o usuário escolha preferências de dependências que devem ser ou não instaladas. Estas telas variam de acordo com o port que está sendo instalado, suas dependências e ports já existentes, ou seja, isto ocorre com muito mais frequência quando se está instalando os primeiros ports em uma nova instalação do sistema operacional.

Para se evitar as constantes “paradas” durante a instalação, pode-se utilizar o comando:

Desta forma, o FreeBSD irá instalar o port – e suas dependências – com as configurações padrão. Assim, pode-se colocar um port para ser instalado durante a noite e verificar no dia seguinte se o mesmo foi instalado corretamente.

Caso as configurações padrão não atendam a necessidade do usuário, pode-se utilizar o comando abaixo antes de executar o comando ‘make -DBATCH install’:

Desta forma, o FreeBSD apresentará todas as telas de preferência sem instalar nada. Após concluir estas configurações e ajustes, basta executar normalmente o comando ‘make -DBATCH install’. Assim, o FreeBSD irá instalar o port (e suas dependências) conforme as especificações do usuário.

Para remover ports, deve-se estar no diretório correspondente ao port que se deseja desinstalar (por exemplo: /usr/ports/sysutils/lsof), utiliza-se o comando:

Caso deseje maiores informações de como trabalhar com ports, acesse: https://www.freebsd.org/doc/handbook/ports-using.html

3 Respostas para “FreeBSD: instalando ports e pacotes

  1. Muito obrigado, André. Valeu tuas informações!
    Já passei até 26 horas direto compilando aplicativos e várias noites mal dormidas por causa dessas “paradas” para se clicar um “OK”… E quantas vezes a compilação ficou horas parada, porque cochilando eu não vi a bendita “Tela pra se clicar OK”!!
    Também faz longo tempo meu primeiro contato com PC: Foi meados de 90, num curso de informática: A máquina era um 286-SX sem HD, com apenas um drive de Disquete “5.1/4”. E o pacote de programas eram DOS + Wordstar + DBase3… Tudo na linha de comando, apresentados sobre um monitor CGA com letras de fósforo verde.
    O restante que aprendi de lá pra cá foi só na experiência pessoal, sem cursos nem base teórica. Hoje estou digitando num FreeBSD instalado + XFCE + GDM Slim configurados, que aprendi instalar apenas buscando socorro nos textos da internet. E o seu texto é uma das publicações que me ajudam a configurar o PC. Obrigado!

    • Opa Marcelo! Fico feliz que meu post tenha lhe ajudado! Na época que comecei, um PC era muito caro então mexi muito foi com MSX. Era um HotBit HB-8000 da Sharp, com processador Zilog Z80 de 3.57MHz e 512 KB de memória, não tinha drive de disquete então usava uma data corder (gravador de fita cassete) como unidade de armazenamento… Hoje com a Internet fica bem mais fácil “sair do outro lado”, naquela época era comprando revistas e conversando com um colega ou outro que tinha um equipamento desses. Abraços!

  2. Os comentários me fizeram viajar no tempo!! Comecei um HotBit, depois um Expert Gradiente (com disquete!), PC-XT, PC 286, 386, etc.
    Uso Linux desde 1998 e agora me aventurando um pouco no FreeBSD. Já favoritei seu blog!

Deixe uma resposta