fbpx Certificação Linux: Comando dpkg no Linux (gerenciamento de pacotes) [Guia Básico]

Blog

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

📅 01/01/2019 ⏱ 5 min ✍️ Uira Ribeiro
Linuxcomandos
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 <mstone@debian.org>
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

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Especialista Linux com mais de 20 anos de experiência.
Autor de 5 livros e mentor de mais de 14.000 alunos certificados.
20 certificações de alto nível, incluindo LPIC-3, CKA, RHCE e AWS Solutions Architect.

WhatsApp