Capítulo 20. Sistema de gerenciamento de pacotes

Índice

dpkg
Pacotes
Instalar pacotes
Dependências
Listar pacotes existentes no sistema
Removendo pacotes do sistema
Removendo completamente um pacote
Mostrar descrição do pacote
Procura de pacotes através do nome de um arquivo
Status do pacote
Procurando pacotes com problemas de instalação
Mostrando a lista de pacotes do sistema
Instalando pacotes a partir de uma lista externa
Configurando pacotes desconfigurados
Listando arquivos de um pacote
apt
O arquivo /etc/apt/sources.list
O arquivo /etc/apt/apt.conf
Copiando a lista de pacotes disponíveis
Utilizando CDs oficiais/não-oficiais/terceiros com o apt
Instalando novos pacotes
Removendo pacotes instalado
Atualizando sua distribuição
Removendo pacotes baixados pelo apt
Procurando por pacotes através da descrição
Procurando um pacote que contém determinado arquivo
Modos eficazes de compilação do código fonte para a Debian
Verificando pacotes corrompidos
Corrigindo problemas de dependências e outros erros

Este capítulo ensina a operação básica do programa de manipulação de pacotes Debian, a instalação, remoção, consulta e checagem de arquivos .deb.

dpkg

O dpkg (Debian Package) é o programa responsável pelo gerenciamento de pacotes em sistemas Debian. Sua operação é feita em modo texto e funciona através de comandos, assim caso deseje uma ferramenta mais amigável para a seleção e instalação de pacotes, prefira o dselect (que é um front-end para o dpkg) ou o apt (veja “apt”).

dpkg é muito usado por usuários avançados da Debian e desenvolvedores para fins de instalação, manutenção e construção de pacotes.

Pacotes

Pacotes Debian são programas colocados dentro de um arquivo identificados pela extensão .deb incluindo arquivos necessários para a instalação do programa, um sistemas de listagem/checagem de dependências, scripts de automatização para remoção parcial/total do pacote, listagem de arquivos, etc.

Um nome de pacote tem a forma

Instalar pacotes

Use o comando: dpkg -i [] (ou --install) para instalar um pacote em seu sistema. Talvez ele peça que seja instalado algum pacote que depende para seu funcionamento. Para detalhes sobre dependências veja “Dependências”. É preciso especificar o nome completo do pacote (com a versão e revisão).

Dependências

Dependências são pacotes requeridos para a instalação de outro pacote. Na Debian cada pacote contém um programa com uma certa função. Por exemplo, se você tentar instalar o pacote de edição de textos que usa o programa sed, você precisará verificar se o pacote está instalado em seu sistema antes de tentar instalar o , caso contrário, o pacote pedirá o sed e não funcionará corretamente. Note que o pacote é apenas um exemplo e não existe (pelo menos até agora :-). O programa dselect faz o trabalho de checagem de dependências automaticamente durante a instalação dos pacotes.

A colocação de cada programa em seu próprio pacote parece ser uma dificuldade a mais para a instalação manual de um certo programa. Mas para os desenvolvedores que mantém os mais de 25000 pacotes existentes na distribuição Debian, é um ponto fundamental, porque não é preciso esperar uma nova versão do ser lançada para instalar a versão mais nova do pacote . Por este motivo também é uma vantagem para o usuário.

Listar pacotes existentes no sistema

Use o comando: dpkg -l [pacote] (--list) para isto.

Na listagem de pacotes também será mostrado o "status" de cada um na coluna da esquerda, acompanhado do nome do pacote, versão e descrição básica. Caso o nome do [pacote] seja omitido, todos os pacotes serão listados.

É recomendado usar "dpkg -l|less" para ter um melhor controle da listagem (pode ser longa dependendo da quantidade de programas instalados).

Removendo pacotes do sistema

Use o comando: dpkg -r (--remove) para remover um pacote do sistema completamente. Somente é necessário digitar o nome e versão do pacote que deseja remover, não sendo necessário a revisão do pacote.

O comando dpkg -r não remove os arquivos de configuração criados pelo programa. Para uma remoção completa do programa veja “Removendo completamente um pacote”.

Removendo completamente um pacote

Use o comando: dpkg -P [|-a] (--purge) para remover um pacote e todos os diretórios e arquivos de configuração criados. Não é necessário especificar a revisão do pacote. O comando dpkg--purge pode ser usado após uma remoção normal do pacote (usando dpkg -r).

Caso você usar diretamente o comando dpkg --purge, dpkg primeiro removerá o pacote normalmente (como explicado em “Removendo pacotes do sistema”) e após removido apagará todos os arquivos de configuração.

Caso especifique a opção -a (ou sua equivalente --pending) no lugar do nome do pacote, todos os pacotes marcados para remoção serão removidos completamente do sistema.

Note que o dpkg --purge somente remove arquivos de configuração conhecidos pelo pacote. Em especial, os arquivos de configuração criados para cada usuário do sistema devem ser removidos manualmente. Seria pedir demais que o dpkg também conhecesse os usuários de nosso sistema ;-).

Mostrar descrição do pacote

Use o comando: dpkg -I (--info) para mostrar a descrição do pacote. Entre a descrição são mostradas as dependências do pacote, pacotes sugeridos, recomendados, descrição do que o pacote faz, tamanho e número de arquivos que contém.

Procura de pacotes através do nome de um arquivo

Use o comando: dpkg -S arquivo (--search) para saber de qual existente no sistema o arquivo pertence.

Status do pacote

Use o comando: dpkg -s (--status) para verificar o status de um pacote em seu sistema, se esta ou não instalado, configurado, tamanho, dependências, maintainer, etc.

Se o pacote estiver instalado no sistema, o resultado será parecido com o do comando dpkg -c [pacote] (--contents).

Procurando pacotes com problemas de instalação

A checagem de pacotes com este tipo de problema pode ser feita através do comando:

dpkg -C (--audit)

Será listado todos os pacotes com algum tipo de problema, verifique os detalhes do pacote com "dpkg -s" para decidir como corrigir o problema.

Mostrando a lista de pacotes do sistema

Use o comando:

dpkg --get-selections

para obter uma lista de seleção dos pacotes em seu sistema. A listagem é mostrada na saída padrão, que pode ser facilmente redirecionada para um arquivo usando dpkg --get-selections >dpkg.lista.

A listagem obtida com este comando é muito útil para repetir os pacotes usados no sistema usando o dpkg --set-selections.

Instalando pacotes a partir de uma lista externa

Use o comando:

dpkg --set-selections <arquivo

para instalar pacotes usando uma listagem gerada pelo dpkg --get-selections. Este procedimento é muito útil durante uma necessidade de reinstalação do sistema GNU/Linux ou repetir a instalação em várias máquinas sem precisar selecionar algumas dezenas entre os milhares de pacotes no apt.

Para execuar o procedimento: primeiro, gere a lista de pacoes no sistema origem com (dpkg --get-selections). Em seguida, na máquina de destino, execute primeiro um dpkg --clear-selections para remover qualquer seleção existente, e em seguida execute o dpkg --set-selections <arquivo.

Com a seleção de pacotes realizada, agora execute os comandos:

apt-get -f install
apt dselect-install

E todos pacotes obtidos via dpkg --set-selections serão automaticamente instalados.

Configurando pacotes desconfigurados

Pacotes estão desconfigurados quando, por algum motivo, a instalação do mesmo não foi concluída com sucesso. Pode ter faltado alguma dependência, acontecido algum erro de leitura do arquivo de pacote, etc. Quando um erro deste tipo acontece, os arquivos necessários pelo pacote podem ter sido instalados, mas os scripts de configuração pós-instalação não são executados.

Use o comando:

dpkg --configure [NomedoPacote]

Para configurar um pacote. O NomedoPacote não precisa conter a revisão do pacote e extensão.

Listando arquivos de um pacote

Use o comando: dpkg -c arquivo (--contents) para obter a listagem dos arquivos contidos no pacote. É necessário digitar o nome completo do pacote. O comando dpkg -c é útil para listarmos arquivos de pacotes que não estão instalados no sistema.

Para obter a listagem de arquivos de pacotes já instalados no sistema, use o comando: dpkg -L arquivo. É necessário digitar somente o nome do pacote (sem a revisão e extensão).