O sistema operacional FreeBSD, provê o Ports Collection como recurso simplificador da instalação de aplicativos no seu sistema.
Cada port contém todo e qualquer patch necessário para permitir que o código fonte original do software seja compilado — e o binário resultante possa ser executado.
Normalmente, o Ports Collection é selecionado para download, já durante a instalação do sistema. Se isto não foi feito, você terá um diretório /usr/ports vazio.
Como trazer o Ports Collection
Antes de poder usar o recurso, é necessário obter a coleção e guardá-la no diretório /usr/ports.
O comando portsnap, do FreeBSD, automatiza o processo para você — baixando, instalando e, quando necessário, sincronizando o Ports Collection da internet.
Use o ‘fetch’, para pegar “a coleção”:
portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... none found. Fetching snapshot tag from portsnap.FreeBSD.org... done. Fetching snapshot metadata... done. Updating from Wed Jul 20 15:21:53 BRT 2016 to Wed Jul 20 16:36:14 BRT 2016. Fetching 4 metadata patches... done. Applying metadata patches... done. Fetching 0 metadata files... done. Fetching 5 patches. (5/5) 100.00% done. done. Applying patches... done. Fetching 0 new ports or files... done.
A função deste comando é baixar um snapshot, ou imagem, da árvore de ports ou atualizar o que já existe.
Depois do download/sincronização, é hora de extrair a árvore de ports, colocando cada arquivo em seu lugar.
Note que o comando que segue (extract) só deve ser usado na primeira vez em que você for instalar os Ports Collection em seu sistema — uma vez que ele irá sobrepor todo o conteúdo do /usr/ports e seus subdiretórios.
portsnap extract
O processo pode ser um pouco demorado, a depender da sua conexão.
Se o diretório /usr/ports não estiver vazio, o comando ‘update’ deverá ser usado no lugar do ‘extract’.
Daqui pra frente, em resumo, não use mais o ‘extract’.
O comando ‘update’ pode ser usado para atualizar a árvore de ports previamente extraída.
É necessário rodar este comando para aplicar as mudanças feitas aos ports, após os downloads de atualizações através do ‘fetch’ ou do ‘cron’.
Este comando sobrescreve o conteúdo preexistente.
portsnap update
portsnap update Removing old files and directories... done. Extracting new files: /usr/ports/devel/avro-c/ ... /usr/ports/net/ntpa/ Building new INDEX files...
Como encontrar aplicativos para instalar no FreeBSD
Você pode pesquisar dentro dos ports ou dentro do próprio diretório /usr/ports — para encontrar os aplicativos que necessita e saber exatamente o nome do pacote a ser instalado.
Se souber o nome exato do pacote, pode usar o comando whereis, assim:
whereis mpg123
mpg123: /usr/ports/audio/mpg123
Caso queira encontrar os nomes dos pacotes relacionados ao Apache 2.4, use um dos dois métodos abaixo:
pkg search apache24
apache24-2.4.23_1 Version 2.4.x of Apache web server
ou (preferível):
make search name=apache24
Certifique-se de estar sob o diretório /usr/ports, para executar este comando.
Port: apache24-2.4.23_1 Path: /usr/ports/www/apache24 Info: Version 2.4.x of Apache web server Maint: apache@FreeBSD.org B-deps: apr-1.5.2.1.5.4 autoconf-2.69_1 autoconf-wrapper-20131203 automake-1.15_ 1 automake-wrapper-20131203 db5-5.3.28_4 expat-2.2.0 gdbm-1.12 gettext-runtime-0.19.8.1 indexinfo-0.2.4 libtool-2.4.6 libxml2-2.9.3 m4-1.4.17_1,1 pcre-8.39 perl 5-5.20.3_13 R-deps: apr-1.5.2.1.5.4 db5-5.3.28_4 expat-2.2.0 gdbm-1.12 gettext-runtime-0.19.8.1 indexinfo-0.2.4 libxml2-2.9.3 pcre-8.39 perl5-5.20.3_13 WWW: http://httpd.apache.org/
Ao usar o ‘make search’ ou o ‘pkg search’, não é necessário saber o nome exato do pacote. Você pode fazer uma busca por parte do nome e usar o comando grep para filtrar os resultados:
make search name=libreoffice | grep -i portuguese
Path: /usr/ports/portuguese/libreoffice Path: /usr/ports/portuguese/libreoffice-pt_BR
Use os parâmetros ‘search key’ para obter uma lista de pacotes relacionados ao que você deseja:
make search key=php7
Se a lista for muito grande, use o comando less, para pausar a exibição:
make search key=php7 | less
Como instalar aplicativos no sistema
Entre no diretório do aplicativo e execute a instalação.
Veja um exemplo de como instalar o emulador dosbox no FreeBSD:
cd /usr/ports/emulators/dosbox
make install clean
===> Building/installing dialog4ports as it is required for the config dialog ===> Cleaning for dialog4ports-0.1.6 ===> Skipping 'config' as NO_DIALOG is defined ===> License BSD2CLAUSE accepted by the user ===> dialog4ports-0.1.6 depends on file: /usr/local/sbin/pkg - found => dialog4ports-0.1.6.tar.gz doesn't seem to exist in /usr/ports/distfiles/. => Attempting to fetch http://m1cro.me/dialog4ports/dialog4ports-0.1.6.tar.gz ===> License GPLv2 accepted by the user ===> Found saved configuration for dosbox-0.74_11 ===> dosbox-0.74_11 depends on file: /usr/local/sbin/pkg - found => dosbox-0.74.tar.gz doesn't seem to exist in /usr/ports/distfiles/. => Attempting to fetch http://downloads.sourceforge.net/project/dosbox/dosbox/0. 74/dosbox-0.74.tar.gz
Para remover este mesmo pacote, futuramente, use o ‘deinstall’:
make deinstall all
Note que o comando deve ser executado dentro daquele mesmo diretório. Fique atento.