Páginas

5 de jun. de 2007

DPKG - Manipulando Pacotes

No Guia Foca GNU/Linux tem um dica que eu achei muito legal e útil,ela está disponível no ítem 19.11 - Lista de pacotes para uma instalação rápida e manual

Antes de começar a explanar estas pequenas dicas,vamos rever um pouco o capítulo 20,muito utilizado no mundo linux,e que tem termos que soam bastante estranho para um usuário recém chegado.O Foca nos dá uma definição muito boa do "Sistema de gerenciamento de Pacotes". O capítulo ensina a lidar com operações básicas,via linha-de-comando,na manipulação de pacotes Debian, 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, Seção 20.2) ---> falarei sobre ele em outro artigo aqui no Colossos

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 nome-versão_revisão.deb

Exemplo >> dpkg 1.13.24ubuntu6.deb

INSTALAR PACOTES

Use o comando:

dpkg -i [NomedoPacote] (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, Seção 20.1.3. É 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 supertext que usa o programa sed, você precisará verificar se o pacote sed está instalado em seu sistema antes de tentar instalar o supertext, caso contrário, o pacote supertext pedirá o sed e não funcionará corretamente. Note que o pacote supertext é 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 8710 pacotes existentes na distribuição Debian, é um ponto fundamental, porque não é preciso esperar uma nova versão do supertext ser lançada para instalar a versão mais nova do pacote sed. Por este motivo também é uma vantagem para o usuário.


Retomando o assunto tema do artigo,veremos que a utilidade de gerar uma lista de pacotes está no fato de se poder utilizar esta lista,depois de gerada,para instalar os mesmos pacotes em outra máquina.A lista é um arquivo texto,simples, de uns poucos KBs.

Se pretende usar a lista de pacotes para fazer a instalação da Debian em muitos computadores, você tem duas opções:
  1. Copiar o conteúdo das seções que seguem e fazer um script de instalação personalizado para automatizar a instalação de pacotes da Debian em outras máquinas
  2. Após a instalação dos pacotes no computador, utilize o comando : dpkg --get-selections >Lista-Pacotes.txt para gerar o arquivo Lista-Pacotes.txt contendo a lista de pacotes instalados.
    Então no computador que pretende fazer a instalação de pacotes, use o comando dpkg --set-selections e então digitar apt-get -f install ou escolher a opção Install no dselect.


Esmiuçando outros comandos simples e fáceis de digitar são estes,segundo o Foca GNU/Linux :


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 NomedoPacote (--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.

REMOVENDO COMPLETAMENTE UM PACOTE

Use o comando:

dpkg -P [NomedoPacote|-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, Seção 20.1.5) 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 NomedoPacote (--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 pacote existente no sistema o arquivo pertence.

STATUS DO PACOTE

Use o comando:

dpkg -s pacote (--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

(apenas lista na tela o nome dos pacotes instalados)opcionalmente pode-se usar dpkg --get-selections|less para ter um melhor controle da listagem (pode ser longa dependendo da quantidade de programas instalados).

OBTENDO UMA LISTA DE PACOTES PARA INSTALAR NO SISTEMA

Use o comando:

dpkg --set-selections

para obter a lista de pacotes que serão instalados no sistema. O uso do dpkg --get-selections e dpkg --set-selections é 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 dselect.

Após obter a lista com dpkg --get-selections, use dpkg --set-selections e então entre no dselect e escolha a opção INSTALL, todos os 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).

Por enquanto é isso aí,em breve vou postar algo sobre APT e futuramente sobre o APTITUDE,este último vai demorar um pouco mais tendo em vista que será um tutorial um pouco mais extenso e se possível com screenshots da tela.Espero que este pequeno tutorial com conteúdo básicamente do Foca e algumas poucas explicações minhas,cujo assunto não é nenhuma novidade,possa ser útil,como sempre a idéia é escrever de usuário-para-usuário,simples assim.

2 comentários:

  1. Estou iniciando no "mundo Linux" e estava com problemas para instalar e remover os pacotes, pois não sabia direito o que usar, apt ou dpkg, agora entendi. Valeu pelo seu Tutorial.

    ResponderExcluir
  2. parabens pelo tutorial

    ResponderExcluir