Comando dpkg no Linux (gerenciamento de pacotes) [Guia Básico]

O utilitário dpkg é responsável pelo gerenciamento de pacotes em sistemas Debian.

O dpkg é o comando base para manipular pacotes Debian em sistemas baseados nesta família de Distribuições. Se você tem pacotes.deb, é o dpkg que permite a instalação ou análise de seus conteúdos.

Mas este programa só tem uma visão parcial do gerenciamento de pacotes Debian: ele sabe o que está instalado no sistema, e o que quer que seja digitado na linha de comando, mas não sabe nada sobre os outros pacotes disponíveis.

Assim, se você precisará baixar manualmente um “pacote.deb” para manipulá-lo com o dpkg.

E também o dpkg falhará se uma dependência não for atendida durante uma instalação de pacote. Ferramentas como apt e aptitude, ao contrário, criarão uma lista de dependências para instalar tudo da forma mais automatizada possível.

O dpkg mantém as informações dos pacotes instalados basicamente nos arquivos /var/lib/dpkg/available e /var/lib/dpkg/status. Estes arquivos contêm a lista de pacotes disponíveis e status, respectivamente.

Segundo o Wiki do Debian, ele é responsável pela manutenção em baixo nível dos pacotes no sistema.

As opções mais frequentes são:

  • -E: Esta opção não regrava um pacote já instalado de mesma versão;
  • -G: Esta opção não regrava um pacote já instalado, mesmo que seja mais antigo;
  • -R: Processa todos os pacotes encontrados em determinado diretório de forma recursiva.

As ações mais frequentes são:

  • -i nomedopacote: Instala o pacote nomedopacote. Este processo envolve fazer cópia backup dos arquivos antigos que já existirem no sistema, desempacotamento, instalação e configuração. Esta ação também pode ser referenciada com –install nomedopacote;
  • -l chavebusca: Lista as informações dos pacotes que contenham no nome a mesma chave de busca;
  • -L nomedopacote: Lista os arquivos instalados pelo pacote nomedo­pacote;
  • –print-avail  nomedopacote: ‘Lista todas as informações disponíveis sobre o pacote nomedopacote em /var/lib/dpkg/avaliable;
  • –purge nomedopacote: Remove todo o pacote nomedopacote;
  • -r nomedopacote: Remove todos os arquivos do pacote, menos as configurações;
  • -s nomedopacote: Mostra o status do pacote;
  • -S arquivo: Procura por um arquivo nos pacotes instalados;
  • –unpack nomedopacote: Desempacota um pacote, mas não instala;
  • –configure nomedopacote: Configura um pacote não instalado.

Exemplos:

Instala o pacote acct_6.3.5-32_i386.deb.

# dpkg -i acct_6.3.5-32_i386.deb

Remove o pacote ace-of-penguins_1.2-3_i386.deb do sistema completamente.

# dpkg --purge ace-of-penguins_1.2-3_i386.deb

Configura o pacote abook_0.4.16-1_i386.deb.

# dpkg --configure abook_0.4.16-1_i386.deb

O dpkg também pode ser utilizado para se descobrir a qual pacote determinado arquivo pertence com a opção “-S” (maiúsculo):

# dpkg -S stdio.h
     libc6-dev: /usr/include/stdio.h
     libc6-dev: /usr/include/bits/stdio.h
     perl: /usr/lib/perl/5.6.0/CORE/nostdio.h

A opção “-s” (minúsculo) do dpkg poder ser usada ver informações de um determinado pacote:

$ dpkg -s coreutils
Package: coreutils
Essential: yes
Status: install ok installed
Priority: required
Section: utils
Installed-Size: 15719
Maintainer: Michael Stone <[email protected]>
Architecture: amd64
Multi-Arch: foreign
Version: 8.30-3
Pre-Depends: libacl1 (>= 2.2.23), libattr1 (>= 1:2.4.44), libc6 (>= 2.28), libselinux1 (>= 2.1.13)
Description: GNU core utilities
 This package contains the basic file, shell and text manipulation
 utilities which are expected to exist on every operating system.

Outra possibilidade é descobrir os pacotes instalados no sistema a partir de uma chave:

# dpkg -l | grep mozilla
     ii  mozilla-browse 0.9.6-7        Mozilla Web Browser

O arquivo /etc/dpkg/dpkg.cfg contém as opções padrão quando o dpkg é executado.

Os arquivos de controle do dpkg residem no diretório /var/lib/dpkg. Dois arquivos interessantes neste diretório são:

  • /var/lib/dpkg/available: Lista de pacotes disponíveis;
  • /var/lib/dpkg/status: Estado dos pacotes instalados. Informa quando foram instalados, removidos etc.

O comando dpkg também pode ser usado para desempacotar um pacote, de forma que é possível ver seu conteúdo.

$ dpkg --unpack man-db_2.8.5-2_amd64.deb

(Lendo banco de dados… 14937 arquivos e diretórios atualmente instalados.)
Preparando para descompactar man-db_2.8.5-2_amd64.deb…
Desembalando man-db (2.8.5-2) sobre (2.8.5-2)…
Acionadores de processamento para suporte a MIME (3,62)…


Este comando não é muito utilizado na prática, visto que o comando apt ou apt-get são bem mais fáceis de utilizar.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe