Linux / Comando dpkg: consultar pacotes e instalar arquivos DEB

O comando dpkg consulta o banco local de pacotes e instala arquivos .deb em sistemas Debian e Ubuntu. dpkg -i não baixa automaticamente as dependências dos repositórios; para instalar um DEB local com resolução de dependências, avalie sudo apt install ./example.deb.

Um arquivo DEB contém software, informações de controle e, em alguns casos, scripts executados durante a instalação. Uma dependência é outro pacote de que ele precisa. A ferramenta de nível mais alto apt, para pesquisar e instalar pacotes, usa os repositórios configurados para selecionar versões e tentar obter essas dependências; dpkg trabalha diretamente com os arquivos e os registros locais.

Sintaxe básica e requisitos

dpkg [opções] ação [pacote ou arquivo]

Essa linha descreve a sintaxe e usa nomes indicativos. Confira a distribuição com cat /etc/os-release, a versão com dpkg --version e as opções instaladas com man dpkg. Estes exemplos pressupõem um sistema da família Debian; eles não se aplicam diretamente a todas as distribuições Linux.

Consultas ao estado e à lista de arquivos normalmente dispensam sudo. Instalação e remoção reais exigem privilégios adequados e podem alterar configurações e serviços. Antes dessas ações, tenha cópias dos dados importantes e confirme que o pacote corresponde à distribuição, à versão dela e à arquitetura esperadas.

Exemplos de consulta e instalação local

Consultar o estado de instalação

Para ler o registro local do pacote Bash:

dpkg -s bash

Leia Status, Version e a descrição, sem concluir que o pacote está instalado apenas porque o nome aparece. O banco pode registrar uma instalação incompleta ou somente configurações remanescentes. Se o pacote for desconhecido, a consulta pode retornar uma mensagem de erro em vez de um registro completo.

Consultar os arquivos registrados para o pacote

dpkg -L bash

A saída apresenta caminhos registrados para o pacote, que variam conforme a distribuição e a versão. Não é uma busca em todos os arquivos do disco, nem uma prova de que cada caminho continua existindo e está íntegro. Arquivos adicionais criados por scripts de manutenção e entradas do sistema de alternativas não são todos representados nessa lista.

Instalar um arquivo DEB local

O nome example.deb é ilustrativo: substitua-o por um arquivo real e confiável na pasta atual. Antes de instalar, dpkg-deb -I ./example.deb mostra informações de controle e dpkg-deb -c ./example.deb lista o conteúdo. Confira Package, Version, Architecture e as dependências; consultar esses dados não comprova a autenticidade do fornecedor.

sudo dpkg -i ./example.deb

Esse comando pode desempacotar arquivos e executar scripts do pacote com privilégios de administrador. Ele não procura e baixa automaticamente as dependências necessárias. Uma falha de configuração não significa que nada mudou: o pacote pode ficar desempacotado ou parcialmente configurado. Leia a mensagem completa e consulte seu estado antes de tentar outra ação.

Distinguir estado instalado, arquivo DEB e repositório

O comando dpkg -s lê o estado registrado localmente, e não a versão candidata dos repositórios. Por exemplo:

dpkg -s bash

Trecho ilustrativo em um sistema no qual Bash está instalado:

Package: bash
Status: install ok installed
Version: ...

install ok installed indica seleção para instalação, sinalizador normal e estado instalado, com o pacote desempacotado e configurado. Os pontos em Version omitem a versão do exemplo; não são um valor real. Esse registro não garante que o programa funciona, que seus arquivos não foram modificados ou que seja a versão mais recente disponível.

O nome do arquivo DEB e o nome do pacote não precisam ser iguais. Use o campo Package lido no DEB nas consultas posteriores, por exemplo dpkg -s nome-do-pacote, substituindo o nome indicativo. Para comparar com versões oferecidas pelos repositórios, use apt-cache policy nome-do-pacote; isso é uma consulta diferente do registro local do dpkg.

  1. Obtenha o DEB de uma origem confiável e confirme sua compatibilidade. Consulte o campo Architecture e a arquitetura principal do sistema com dpkg --print-architecture; não force a instalação só porque os nomes diferem.
  2. Leia os dados e a lista do arquivo com dpkg-deb -I e dpkg-deb -c, informando o caminho do DEB. Preserve dados e configurações importantes antes de uma alteração real.
  3. Escolha como instalar: sudo apt install ./example.deb tenta resolver dependências pelas fontes disponíveis; sudo dpkg -i ./example.deb trata diretamente o arquivo local. Em ambos os casos, use o caminho real e leia o resultado.
  4. Após a tentativa, consulte dpkg -s nome-do-pacote com o nome real do campo Package. Se houver um serviço, verifique seu funcionamento separadamente; a existência do registro não comprova que o serviço iniciou corretamente.

Opções principais

Opção ou ação Finalidade
-i arquivo.deb Instala um DEB local, sem baixar automaticamente as dependências dos repositórios.
-s pacote Consulta o estado registrado no banco local. Leia o campo Status, não apenas o nome.
-L pacote Lista os caminhos registrados para o pacote, sem verificar a integridade atual de cada arquivo.
-S caminho Procura no banco de pacotes o proprietário registrado de um caminho ou padrão; não identifica necessariamente arquivos criados fora desses registros.
-r / -P pacote Remove o pacote; com -P, também elimina configurações gerenciadas na purga. Isso não equivale a restaurar uma versão anterior nem apagar todos os dados do usuário.

Dependências, recuperação e remoção

Se preferir instalar o arquivo local com resolução de dependências, use sudo apt install ./example.deb, mantendo um espaço entre install e ./example.deb. O prefixo ./ identifica um caminho relativo, em vez de um simples nome de pacote. A resolução só será possível quando versões compatíveis das dependências estiverem disponíveis nas fontes configuradas; isso não torna seguro um DEB de origem desconhecida.

Depois de um erro de dependência, não repita a instalação indefinidamente nem use opções de força para ignorar o problema. Consulte dpkg --audit para identificar estados incompletos e leia as mensagens. Uma simulação como apt-get -s -f install pode mostrar a solução proposta pelo APT para dependências quebradas; a solução pode envolver remoções, portanto examine o plano antes de decidir qualquer reparo real. As limitações de simulação e estado são explicadas no guia de apt-get e simulação de mudanças.

A remoção com -r normalmente preserva arquivos de configuração gerenciados como conffiles. A purga com -P também elimina essas configurações e pode acionar a limpeza feita pelos scripts do pacote. Ela não é uma garantia de apagar tudo o que uma aplicação criou, especialmente arquivos nas pastas pessoais. Antes de remover ou purgar, preserve o que seria necessário para recuperar o serviço e os dados.

Um pacote é mais que uma coleção de arquivos: scripts de instalação ou remoção podem executar ações com privilégios elevados. Prefira fontes confiáveis e compatíveis com seu sistema. A consulta de metadados ajuda a entender a proposta, mas não substitui a avaliação da origem do arquivo nem as cópias necessárias para recuperar uma alteração malsucedida.

Pergunta frequente

Qual é a diferença entre dpkg -i e apt install ./arquivo.deb?

dpkg -i processa o DEB local e não baixa automaticamente as dependências dos repositórios. apt install ./arquivo.deb tenta resolver essas dependências com as fontes disponíveis e apresenta a proposta de alterações. Use um arquivo compatível e confiável e revise o resultado; a escolha do comando não garante que toda dependência possa ser satisfeita.

Documentação oficial

O manual do dpkg descreve estados e ações. Consulte também os manuais de dpkg-query, para consultar registros locais e dpkg-deb, para inspecionar arquivos DEB. A referência Debian sobre gerenciamento de pacotes diferencia a instalação local com APT e com dpkg.