Pesquisa de site

23 exemplos úteis de comandos PKG para gerenciar pacotes no FreeBSD


Neste tutorial explicaremos como gerenciar aplicativos de pacotes binários pré-compilados no FreeBSD com a ajuda da ferramenta de gerenciamento de pacotes chamada PKG via Ports > repositório de coleção de software.

O repositório Ports oferece as ferramentas necessárias para compilar aplicações a partir do código fonte, juntamente com suas dependências, mas também mantém uma enorme coleção de pacotes pré-compilados, atualmente mais de 24.000 pacotes, que pode ser instalado em um sistema FreeBSD com o comando pkg.

Requisitos:

  1. Instalação do FreeBSD 11.x

Pesquise e encontre aplicativos na árvore de portas no FreeBSD

1. Os repositórios de ports são divididos em categorias no FreeBSD, cada categoria sendo representada por um diretório no caminho do sistema de arquivos /usr/ports/.

Uma simples listagem do diretório /usr/ports/ exibirá todas as categorias disponíveis conforme mostrado na imagem abaixo.

ls /usr/ports/

2. Para ver todos os aplicativos disponíveis pertencentes a uma categoria, emita um comando ls no diretório da categoria.

Suponha que você queira exibir todos os pacotes de software disponíveis que a categoria de banco de dados tem a oferecer, execute o comando abaixo no console. Canalize o resultado por meio do comando less para navegar mais facilmente pela saída.

ls /usr/ports/databases/ | less

3. Para ver quantos pacotes estão disponíveis em uma categoria, liste o diretório da categoria e canalize o resultado por meio do comando wc conforme mostrado no exemplo abaixo.

ls /usr/ports/databases/ | wc -l

Como você pode ver na captura de tela acima, a categoria de banco de dados do FreeBSD contém mais de 1000 pacotes de banco de dados pré-conformados.

4. Para ver se um aplicativo específico está disponível em uma categoria, use novamente o comando ls e filtre o resultado por meio do utilitário grep para procurar um aplicativo personalizado.

Nos exemplos abaixo, procuraremos os pacotes disponíveis no banco de dados mongodb e os pacotes de segurança do clam antivírus.

ls /usr/ports/databases/ | grep mongodb
ls /usr/ports/security/ | grep clam

Como você pode ver, múltiplas versões de um aplicativo podem estar disponíveis nos Ports do FreeBSD.

5. Caso você não saiba a qual categoria um software pertence, você pode usar outra abordagem para encontrar a categoria de software. Use o caractere curinga globbing * do shell para procurar um padrão em toda a árvore de diretórios do Ports.

Supondo que você queira ver em qual categoria você pode encontrar os pacotes de software para o utilitário mailx, você pode executar o seguinte comando.

ls /usr/ports/*/*mailx

6. Outro método para pesquisar um pacote de software e a categoria à qual o pacote pertence é usar o comando localizar em um padrão de string.

Antes de executar a string de pesquisa, você deve atualizar o banco de dados de localização com o seguinte comando.

/usr/libexec/locate.updatedb

7. Depois de atualizar o banco de dados de localização, pesquise um pacote de software específico usando um padrão de palavra-chave do nome do pacote. Por exemplo, se quiser pesquisar o utilitário mailx, você pode executar o comando abaixo.

locate mailx

Como você pode ver, existem dois pacotes disponíveis para o utilitário mailx, ambos localizados na categoria /usr/ports/mail/.

8. Semelhante a encontrar um pacote com o comando localizar, você também pode usar o comando whereis para visualizar a categoria do aplicativo.

whereis mailx

Pesquise software via comando PKG no FreeBSD

9. O método mais fácil de pesquisar e encontrar um aplicativo no FreeBSD é através da linha de comando de gerenciamento de pacotes PKG. Para pesquisar os pacotes binários de um aplicativo, por exemplo o software postfix, emita o comando abaixo.

pkg search package_name

10. Caso queira ver a qual categoria o pacote pertence, execute o mesmo comando acima com o sinalizador -o, conforme ilustrado nos exemplos abaixo.

pkg search -o package_name

Gerenciar software no FreeBSD

11. Para instalar um pacote pré-compilado dos repositórios do Ports no FreeBSD, emita o comando pkg conforme ilustrado no exemplo abaixo.

pkg install package_name

12. Para consultar informações sobre um pacote específico instalado no sistema, emita o comando abaixo.

pkg info package_name

13. A opção de comando pkg info exibirá a mensagem “Nenhum pacote(s) correspondente(s) ao nome_do_pacote ” se o pacote de software ainda não estiver instalado no seu sistema, conforme mostrado na imagem abaixo.

pkg info tcpdump

14. Para listar todos os pacotes de software instalados no FreeBSD, execute o comando pkg info sem nenhuma opção ou opção.

O comando grep filter against pkg info pode mostrar se alguns pacotes ou aplicativos específicos já estão presentes no sistema, conforme ilustrado no exemplo abaixo.

pkg info | grep ftp

15. Para remover um pacote do sistema, execute os comandos abaixo.

pkg remove package_name
or
pkg delete package_name

16. Caso queira evitar a remoção ou modificação de um pacote instalado, você pode usar a opção lock para o comando pkg, conforme mostrado na imagem abaixo.

pkg lock package_name

A opção de comando Desbloquear pkg permitirá que você remova a restrição do pacote e modifique ou desinstale o pacote.

pkg unlock package_name

17. Para descobrir a qual pacote instalado pertence um comando ou arquivo executável, emita o seguinte comando, conforme ilustrado nos exemplos de captura de tela abaixo.

pkg which /path/to/executable

18. Para baixar localmente um pacote do repositório Ports, sem instalar o pacote no sistema, execute o comando pkg com o buscar switch.

O binário do pacote baixado, que é um arquivo .txz compactado, pode ser encontrado no caminho do sistema /var/cache/pkg/.

pkg fetch package_name
ls /var/cache/pkg/ | grep package_name

19. Para verificar se os pacotes instalados estão expostos a vulnerabilidades ou bugs comuns, emita o comando abaixo.

pkg audit -F

Para ver uma lista de vulnerabilidades antigas que afetavam um pacote de software em versões anteriores, emita o comando abaixo.

pkg audit package_name

Abaixo está um trecho de todas as vulnerabilidades conhecidas encontradas no servidor web Nginx compilado para FreeBSD.

pkg audit nginx
nginx is vulnerable:
Affected versions:
<= 0.8.41 : > 1.4.4,1
nginx -- Request line parsing vulnerability
CVE: CVE-2013-4547
WWW: https://vuxml.FreeBSD.org/freebsd/94b6264a-5140-11e3-8b22-f0def16c5c1b.html

nginx is vulnerable:
Affected versions:
< 1.0.15
nginx -- Buffer overflow in the ngx_http_mp4_module
CVE: CVE-2012-2089
WWW: https://vuxml.FreeBSD.org/freebsd/0c14dfa7-879e-11e1-a2a0-00500802d8f7.html

nginx is vulnerable:
Affected versions:
< 1.4.7
nginx -- SPDY heap buffer overflow
CVE: CVE-2014-0133
WWW: https://vuxml.FreeBSD.org/freebsd/fc28df92-b233-11e3-99ca-f0def16c5c1b.html
...

Manter o utilitário de gerenciamento de pacotes no FreeBSD

20. Para garantir que os repositórios de software e todos os seus pacotes instalados estejam atualizados com as versões mais recentes ou patches de segurança, emita os seguintes comandos.

pkg update
pkg upgrade

21. Para mostrar estatísticas de repositórios remotos e pacotes locais, como quantos pacotes estão instalados em seu sistema e quanto espaço em disco é preenchido pelo software instalado, execute o seguinte comando.

pkg stats

22. Para excluir todas as dependências deixadas pelos pacotes instalados no sistema, emita o comando abaixo.

pkg autoremove

23. Para apagar automaticamente o diretório de cache local de gerenciamento de pacotes para pacotes baixados remotamente, execute o comando abaixo. Você deve primeiro verificar a lista de pacotes binários baixados localmente.

pkg clean -a -n  
pkg clean -a -y

Isso é tudo! Como você pode ver, o FreeBSD possui um impressionante sistema de coleta de pacotes, semelhante às ferramentas de gerenciamento de pacotes usadas em distribuições Linux como Yum, RPM e APT, com um grande número de binários de software pré-compilados e um sistema simples e linha de comando eficaz, pkg, que pode ser usada para gerenciar o software de maneira decente.