Gerenciamento de Pacotes Ubuntu: Guia Rápido do APT e dpkg
Comandos essenciais do APT e dpkg para pacotes do Ubuntu
O sistema de gerenciamento de pacotes do Ubuntu é a espinha dorsal da instalação e manutenção de software, tornando-se conhecimento essencial para qualquer usuário Linux ou administrador de sistemas.

Esta imagem foi gerada pelo modelo de IA Flux 1 dev.
Guias Relacionados: Esta página faz parte do nosso Ferramentas de Desenvolvedor: O Guia Completo para Fluxos de Trabalho de Desenvolvimento Modernos.
Para uma comparação dos gerenciadores de pacotes universais, consulte nosso guia Snap vs Flatpak: O Guia Definitivo para 2025.
O que é o Gerenciamento de Pacotes APT?
APT (Advanced Package Tool) é o sistema principal de gerenciamento de pacotes do Ubuntu, herdado do Debian. É uma ferramenta poderosa de linha de comando para instalar, atualizar e remover pacotes de software. O APT lida com a resolução de dependências automaticamente, conecta-se aos repositórios oficiais do Ubuntu e é o método tradicional para gerenciar pacotes do sistema em distribuições baseadas em Ubuntu e Debian. Se você é novo no Ubuntu, confira nosso guia sobre como instalar o Ubuntu 24.04 e ferramentas úteis para começar com um sistema configurado corretamente.
Características Principais:
- Nativo do Ubuntu/Debian: Integrado, sem necessidade de instalação adicional
- Bibliotecas Compartilhadas: Uso eficiente de disco através de dependências do sistema compartilhadas
- Atualizações Manuais: Você controla quando os pacotes são atualizados
- Sem Isolamento (Sandboxing): Pacotes têm acesso total ao sistema (adequado para ferramentas do sistema)
- Leve: Sem daemon em segundo plano, executa apenas quando invocado
- Ecossistema Maduro: Décadas de desenvolvimento, extremamente estável
Comparação de Gerenciadores de Pacotes
O Ubuntu suporta múltiplos sistemas de gerenciamento de pacotes. Veja como as principais operações se comparam:
| Operação | APT | Snap | Flatpak |
|---|---|---|---|
| Pesquisar | apt search keyword |
snap find keyword |
flatpak search keyword |
| Instalar | sudo apt install package |
sudo snap install package |
flatpak install flathub app.id |
| Listar Instalados | apt list --installed |
snap list |
flatpak list --app |
| Mostrar Info | apt show package |
snap info package |
flatpak info app.id |
| Atualizar Tudo | sudo apt update && sudo apt upgrade |
sudo snap refresh |
flatpak update |
| Atualizar Único | sudo apt install --only-upgrade pkg |
sudo snap refresh package |
flatpak update app.id |
| Remover | sudo apt remove package |
sudo snap remove package |
flatpak uninstall app.id |
| Limpar | sudo apt autoremove |
snap remove --revision=N |
flatpak uninstall --unused |
| Repositório | /etc/apt/sources.list |
Snap Store (integrado) | Adicionar com flatpak remote-add |
Comparação Rápida de Recursos
| Recurso | APT | Snap | Flatpak |
|---|---|---|---|
| Atualizações Automáticas | Não | Sim | Não |
| Isolamento (Sandboxing) | Não | Sim | Sim |
| Dependências | Bibliotecas do sistema | Incluídas (Bundled) | Runtimes compartilhados |
| Tamanho do Pacote | Pequeno (5-50MB) | Grande (50-500MB) | Médio (20-200MB) |
| Root Necessário | Sim | Sim | Não (instalação de usuário) |
| Velocidade de Início | Rápida | Mais lenta | Rápida |
| Melhor Para | Pacotes do sistema | Aplicações universais | Aplicações de desktop |
Sobre Este Guia
Este guia foca no APT (apt/apt-get/dpkg) - o sistema tradicional de gerenciamento de pacotes do Ubuntu. O APT é essencial para gerenciar pacotes do sistema, bibliotecas e serviços em sistemas baseados em Ubuntu e Debian.
Para outros gerenciadores de pacotes:
- 📦 Guia do Gerenciador de Pacotes Snap - Pacotes universais com atualizações automáticas e isolamento
- 📦 Guia do Gerenciador de Pacotes Flatpak - Aplicações de desktop multi-distribuição com permissões granulares
Cada gerenciador de pacotes tem suas forças. Use o APT para pacotes do sistema e dependências, Snap para compatibilidade entre versões e atualizações automáticas, e Flatpak para aplicativos de desktop com permissões granulares.
Gerenciamento de Pacotes APT - Guia Detalhado
Entendendo APT vs apt-get
APT (apt) - Escolha Moderna
Introduzido no Ubuntu 14.04, apt combina recursos de apt-get e apt-cache com experiência de usuário aprimorada:
Vantagens:
- Barras de progresso e saída colorida
- Comandos mais intuitivos
- Saída mais limpa para leitura humana
- Combina funcionalidade de múltiplas ferramentas
Quando usar: Operações interativas diárias de linha de comando
apt-get - Escolha Tradicional
A ferramenta original de gerenciamento de pacotes, ainda amplamente utilizada:
Vantagens:
- API mais estável (melhor para scripts)
- Compatibilidade com versões anteriores
- Formato de saída previsível
- Controle mais granular
Quando usar: Scripts de shell, automação, sistemas legados
Dica Profissional: Para uma navegação mais rápida no terminal e eficiência no fluxo de trabalho, confira nosso folha de referência de atalhos de teclado do Ubuntu para aumentar sua produtividade ao gerenciar pacotes.
Comandos Essenciais de Gerenciamento de Pacotes
Atualizando Listas de Pacotes
Sempre atualize as listas de pacotes antes de instalar ou atualizar:
# Atualizar índice de pacotes
sudo apt update
# Ou com apt-get
sudo apt-get update
Este comando refresca o banco de dados local com informações sobre pacotes disponíveis e suas versões dos repositórios configurados.
Instalando Pacotes
Instalação Básica:
# Instalar pacote único
sudo apt install nome-do-pacote
# Instalar múltiplos pacotes
sudo apt install pacote1 pacote2 pacote3
# Instalar versão específica
sudo apt install nome-do-pacote=numero-da-versao
Exemplos:
# Instalar servidor web Nginx
sudo apt install nginx
# Instalar Python e pip
sudo apt install python3 python3-pip
# Instalar essenciais de compilação
sudo apt install build-essential
# Instalar ferramentas de monitoramento do sistema
sudo apt install htop
Para necessidades de monitoramento especializadas, como rastrear o desempenho da GPU em sistemas com placas NVIDIA, confira nosso guia sobre aplicações de monitoramento de GPU no Linux/Ubuntu.
Instalar sem prompts (útil para scripts):
sudo apt install -y nome-do-pacote
# Ou
sudo DEBIAN_FRONTEND=noninteractive apt install -y nome-do-pacote
Instalar de arquivo .deb:
# Método 1: Usando apt (recomendado, lida com dependências)
sudo apt install ./pacote.deb
# Método 2: Usando dpkg
sudo dpkg -i pacote.deb
sudo apt install -f # Corrigir dependências ausentes
Nota: Ao trabalhar com arquivos .deb baixados, você pode querer usar um gerenciador de arquivos com um bom menu de contexto. Veja nossa comparação de gerenciadores de arquivos para Ubuntu 24.04 (Nautilus vs Nemo vs Dolphin vs Caja) para encontrar um que se adapte ao seu fluxo de trabalho.
Atualizando Pacotes
Atualizar Pacotes Instalados:
# Atualizar todos os pacotes (seguro, não remove pacotes)
sudo apt upgrade
# Atualizar pacote específico
sudo apt install --only-upgrade nome-do-pacote
# Atualização completa (pode remover pacotes para resolver dependências)
sudo apt full-upgrade
# Atualização de distribuição (para atualizações de versão major)
sudo apt dist-upgrade
Sequência Completa de Atualização:
# Procedimento de atualização recomendado
sudo apt update
sudo apt upgrade -y
sudo apt autoremove
sudo apt autoclean
Atualizar Versão do Ubuntu:
# Para LTS para a próxima LTS
sudo do-release-upgrade
# Para qualquer atualização de versão
sudo do-release-upgrade -d
Listando Pacotes
Listar Pacotes Instalados:
# Todos os pacotes instalados
apt list --installed
# Com filtro grep
apt list --installed | grep nome-do-pacote
# Contar pacotes instalados
apt list --installed | wc -l
# Usando dpkg
dpkg -l
dpkg --list
dpkg -l | grep nome-do-pacote
Listar Pacotes Atualizáveis:
# Mostrar pacotes com atualizações disponíveis
apt list --upgradable
# Simulação detalhada de atualização
apt list --upgradable -a
Listar Todos os Pacotes Disponíveis:
# Todos os pacotes nos repositórios
apt list
# Listar de repositório específico
apt list | grep "nome-da-fonte"
Procurando Pacotes
Pesquisar Nomes e Descrições de Pacotes:
# Pesquisar com apt
apt search palavra-chave
# Pesquisa insensível a maiúsculas/minúsculas
apt search -i palavra-chave
# Mostrar apenas nomes de pacotes
apt-cache search palavra-chave
# Pesquisar apenas nomes de pacotes (mais rápido)
apt-cache search --names-only palavra-chave
Exemplos:
# Pesquisar por editor
apt search text editor
# Pesquisar por banco de dados
apt search database
# Pesquisar pacotes Python
apt search python | grep python3
Visualizando Informações de Pacotes
Informações Detalhadas do Pacote:
# Mostrar detalhes do pacote
apt show nome-do-pacote
# Usando apt-cache
apt-cache show nome-do-pacote
# Mostrar dependências do pacote
apt-cache depends nome-do-pacote
# Mostrar dependências inversas
apt-cache rdepends nome-do-pacote
# Verificar política e versões do pacote
apt-cache policy nome-do-pacote
# Mostrar estatísticas do pacote
apt-cache stats
Verificar se o Pacote está Instalado:
# Método 1
dpkg -s nome-do-pacote
# Método 2
dpkg -l nome-do-pacote
# Método 3
apt list --installed nome-do-pacote
# Método 4 (código de saída 0 se instalado)
dpkg-query -W nome-do-pacote
Removendo Pacotes
Remover Pacotes:
# Remover pacote (mantém arquivos de configuração)
sudo apt remove nome-do-pacote
# Remover pacote e arquivos de configuração (purge)
sudo apt purge nome-do-pacote
# Remover com dependências
sudo apt autoremove nome-do-pacote
# Remover completamente pacote e configs
sudo apt purge nome-do-pacote && sudo apt autoremove
Limpar Sistema:
# Remover dependências não utilizadas
sudo apt autoremove
# Remover com purge
sudo apt autoremove --purge
# Excluir arquivos de pacotes baixados
sudo apt clean
# Excluir versões antigas de pacotes
sudo apt autoclean
Verificar Uso de Disco:
# Verificar tamanho do cache
du -sh /var/cache/apt/archives
# Verificar tamanho total dos pacotes
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n
Bloqueio de Pacotes (Prevenir Atualizações)
Bloquear Pacotes:
# Bloquear pacote na versão atual
sudo apt-mark hold nome-do-pacote
# Desbloquear pacote
sudo apt-mark unhold nome-do-pacote
# Mostrar pacotes bloqueados
apt-mark showhold
# Bloquear múltiplos pacotes
sudo apt-mark hold pacote1 pacote2 pacote3
Caso de Uso: Prevenir versões específicas de software de serem atualizadas automaticamente.
Usando dpkg - Ferramenta de Pacotes de Baixo Nível
dpkg é o gerenciador de pacotes subjacente que o APT usa:
Comandos dpkg Básicos:
# Instalar pacote
sudo dpkg -i pacote.deb
# Remover pacote
sudo dpkg -r nome-do-pacote
# Purgar pacote
sudo dpkg -P nome-do-pacote
# Listar pacotes instalados
dpkg -l
# Listar arquivos no pacote
dpkg -L nome-do-pacote
# Encontrar qual pacote possui um arquivo
dpkg -S /caminho/para/arquivo
# Verificar status do pacote
dpkg -s nome-do-pacote
# Reconfigurar pacote
sudo dpkg-reconfigure nome-do-pacote
# Verificar integridade do pacote
dpkg -V nome-do-pacote
Corrigir Pacotes Quebrados:
# Reconfigurar pacotes quebrados
sudo dpkg --configure -a
# Corrigir dependências ausentes
sudo apt install -f
# Forçar reinstalação
sudo apt install --reinstall nome-do-pacote
Gerenciamento de Repositórios
Visualizando Repositórios
Verificar Repositórios Configurados:
# Visualizar lista de fontes
cat /etc/apt/sources.list
# Visualizar fontes adicionais
ls /etc/apt/sources.list.d/
# Visualizar todos os repositórios habilitados
grep -r --include '*.list' '^deb ' /etc/apt/
Adicionando Repositórios
Adicionar PPA (Personal Package Archive):
# Adicionar repositório PPA
sudo add-apt-repository ppa:usuario/nome-ppa
sudo apt update
# Exemplo: Adicionar PPA do Git
sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install git
Adicionar Repositório Manualmente:
# Adicionar repositório a sources.list
echo "deb http://url-do-repositorio distribuicao componente" | sudo tee -a /etc/apt/sources.list.d/custom.list
# Adicionar chave GPG
wget -qO - https://exemplo.com/chave.gpg | sudo apt-key add -
# Atualizar listas de pacotes
sudo apt update
Gerenciamento Moderno de Chaves (Ubuntu 22.04+):
# Baixar e adicionar chave ao keyring
wget -qO - https://exemplo.com/chave.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/custom.gpg
# Adicionar repositório assinado
echo "deb [signed-by=/etc/apt/keyrings/custom.gpg] http://url-repo dist componente" | sudo tee /etc/apt/sources.list.d/custom.list
Removendo Repositórios
# Remover PPA
sudo add-apt-repository --remove ppa:usuario/nome-ppa
# Ou excluir o arquivo de lista
sudo rm /etc/apt/sources.list.d/nome-ppa.list
# Atualizar
sudo apt update
Gerenciadores de Pacotes Alternativos
O Ubuntu também suporta Snap e Flatpak para empacotamento universal de aplicativos:
-
Snap: Veja nosso guia abrangente Guia do Gerenciador de Pacotes Snap para informações detalhadas sobre instalação, uso, canais, confinamento e solução de problemas.
-
Flatpak: Veja nosso guia abrangente Guia do Gerenciador de Pacotes Flatpak para informações detalhadas sobre instalação, Flathub, permissões, runtimes e gerenciamento.
Gerenciamento Avançado de Pacotes
Simular Operações (Dry Run)
# Simular instalação
apt install -s nome-do-pacote
# Simular atualização
apt upgrade -s
# Mostrar o que seria instalado
apt-cache showpkg nome-do-pacote
Baixar Pacotes Sem Instalar
# Baixar apenas o pacote
apt download nome-do-pacote
# Baixar com dependências
apt install --download-only nome-do-pacote
# Baixar para diretório específico
cd /caminho/para/dir
apt download nome-do-pacote
Encontrar Arquivos de Pacote
# Qual pacote fornece um arquivo
dpkg -S /caminho/para/arquivo
# Pesquisar arquivos em pacotes (incluindo não instalados)
apt-file search nome-do-arquivo
# Instalar apt-file primeiro
sudo apt install apt-file
sudo apt-file update
Fixação de Pacotes (Package Pinning)
Crie /etc/apt/preferences para controlar versões de pacotes:
# Fixar pacote em versão específica
sudo nano /etc/apt/preferences
Adicionar:
Package: nome-do-pacote
Pin: version 1.2.3*
Pin-Priority: 1001
Verificar Vulnerabilidades de Pacotes
# Verificar atualizações de segurança
sudo apt list --upgradable | grep security
# Verificar pacote específico por CVEs
apt-cache policy nome-do-pacote
Solução de Problemas Comuns
Corrigir Pacotes Quebrados
# Método 1: Corrigir dependências
sudo apt install -f
# Método 2: Reconfigurar pacotes
sudo dpkg --configure -a
# Método 3: Limpar e atualizar
sudo apt clean
sudo apt update
sudo apt upgrade
# Método 4: Forçar correção
sudo apt --fix-broken install
Corrigir Banco de Dados “Bloqueado”
# Remover arquivos de bloqueio (apenas se nenhum processo apt estiver em execução!)
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock
sudo dpkg --configure -a
Verificar processos em execução primeiro:
ps aux | grep -i apt
sudo lsof /var/lib/dpkg/lock-frontend
Erro de Hash Sum Mismatch
# Limpar cache e tentar novamente
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update
Erros GPG/Chave
# Re-adicionar chave
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ID_DA_CHAVE
# Ou baixar chave
wget -qO - https://url-repo/chave.gpg | sudo apt-key add -
# Abordagem moderna (Ubuntu 22.04+)
wget -qO - https://url-repo/chave.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/repo.gpg
Dependências Não Atendidas
# Tentar aptitude (melhor resolvedor de dependências)
sudo apt install aptitude
sudo aptitude install nome-do-pacote
# Ou resolução manual
sudo apt install nome-do-pacote dependencia-do-pacote
Repositório Não Encontrado (404)
# Atualizar para repositório correto
sudo nano /etc/apt/sources.list
# Alterar nome da versão antiga para a atual
# Ou remover PPA desatualizado
sudo add-apt-repository --remove ppa:nome/ppa
Melhores Práticas
Manutenção Regular
Roteiro Semanal:
#!/bin/bash
# Script de atualização do sistema
echo "Atualizando listas de pacotes..."
sudo apt update
echo "Atualizando pacotes..."
sudo apt upgrade -y
echo "Removendo pacotes não utilizados..."
sudo apt autoremove -y
echo "Limpar cache de pacotes..."
sudo apt autoclean
echo "Atualização concluída!"
Atualizações de Segurança
Atualizações Automáticas para Correções de Segurança:
# Instalar unattended-upgrades
sudo apt install unattended-upgrades
# Configurar
sudo dpkg-reconfigure unattended-upgrades
# Editar configuração
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Configuração do Servidor: Se você estiver gerenciando o Ubuntu Server, a configuração de rede adequada é essencial para downloads de pacotes confiáveis e atualizações do sistema. Aprenda como alterar um endereço IP estático no Ubuntu Server para garantir conectividade estável para suas operações de gerenciamento de pacotes.
Fazer Backup da Lista de Pacotes
Exportar Pacotes Instalados:
# Criar backup
dpkg --get-selections > ~/lista-de-pacotes.txt
# Ou com pacotes instalados explícitos
apt-mark showmanual > ~/instalados-manualmente.txt
# Restaurar em outro sistema
sudo dpkg --set-selections < ~/lista-de-pacotes.txt
sudo apt-get dselect-upgrade
Verificar Saúde do Sistema
# Verificar dependências quebradas
sudo apt check
# Verificar todos os pacotes
sudo debsums -c
# Verificar logs do sistema
journalctl -xe | grep -i apt
tail -f /var/log/apt/history.log
Otimização de Desempenho
Downloads de Pacotes Mais Rápidos
Habilitar Downloads Paralelos:
Edite /etc/apt/apt.conf.d/99parallel:
echo 'Acquire::Queue-Mode "host";' | sudo tee /etc/apt/apt.conf.d/99parallel
echo 'Acquire::http::Pipeline-Depth "5";' | sudo tee -a /etc/apt/apt.conf.d/99parallel
Usar o Mirror Mais Rápido:
# Instalar apt-fast
sudo add-apt-repository ppa:apt-fast/stable
sudo apt update
sudo apt install apt-fast
# Usar apt-fast em vez de apt
sudo apt-fast install nome-do-pacote
Reduzir Tamanho do Cache
# Limitar cache a 100MB
echo 'APT::Archives::MaxSize "100";' | sudo tee /etc/apt/apt.conf.d/99max-cache
Scripts Úteis de Gerenciamento de Pacotes
Atualizar Todos os Gerenciadores de Pacotes
#!/bin/bash
# Atualizar todos os gerenciadores de pacotes
echo "=== Atualização APT ==="
sudo apt update && sudo apt upgrade -y
echo "=== Atualização Snap ==="
sudo snap refresh
echo "=== Atualização Flatpak ==="
flatpak update -y
echo "Todos os sistemas atualizados!"
Encontrar Pacotes Grandes
# Listar maiores pacotes instalados
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head -20
# Ou formato mais legível
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head -20 | awk '{printf "%.2f MB\t%s\n", $1/1024, $2}'
Auditoria de Pacotes
#!/bin/bash
# Auditoria do sistema de pacotes
echo "=== Estatísticas do Pacote do Sistema ==="
echo "Pacotes instalados: $(dpkg -l | grep ^ii | wc -l)"
echo "Pacotes atualizáveis: $(apt list --upgradable 2>/dev/null | grep -c upgradable)"
echo "Pacotes bloqueados: $(apt-mark showhold | wc -l)"
echo "Auto-removíveis: $(apt autoremove --dry-run | grep -Po '^\d+')"
echo "Tamanho do cache: $(du -sh /var/cache/apt/archives | cut -f1)"
Folha de Referência Rápida
Comandos Essenciais:
# Atualizar & Atualizar
sudo apt update && sudo apt upgrade -y
# Instalar pacote
sudo apt install nome-do-pacote
# Remover pacote
sudo apt remove nome-do-pacote
# Pesquisar pacote
apt search palavra-chave
# Mostrar info do pacote
apt show nome-do-pacote
# Listar instalados
apt list --installed
# Limpar sistema
sudo apt autoremove && sudo apt autoclean
# Corrigir pacotes quebrados
sudo apt install -f && sudo dpkg --configure -a
Conclusão
Dominar o sistema de gerenciamento de pacotes do Ubuntu é essencial para uma administração de sistemas eficiente. Seja usando o comando moderno apt para sessões interativas, apt-get para scripts, ou explorando pacotes universais com Snap e Flatpak, entender essas ferramentas ajudará você a manter um sistema Ubuntu seguro, atualizado e bem organizado.
Comece com os comandos básicos, incorpore gradualmente técnicas avançadas e mantenha sempre seu sistema atualizado. A manutenção regular, combinada com as melhores práticas, garante uma experiência Ubuntu suave e confiável.
Dica Profissional: Sempre execute sudo apt update antes de instalar ou atualizar pacotes para garantir que você está trabalhando com as informações de pacote mais recentes!
Links Úteis
- Documentação Oficial do Ubuntu
- Guia do Usuário APT
- Pesquisa de Pacotes do Ubuntu
- Loja Snap
- Repositório Flathub
- Manual do Administrador Debian
- Guia do Ubuntu Server
- Páginas man:
man apt,man apt-get,man dpkg
Artigos Relacionados neste Site
- Como Instalar Ubuntu 24.04 & ferramentas úteis
- Folha de Referência de Atalhos de Teclado do Ubuntu
- Menu de contexto em gerenciadores de arquivos para Ubuntu 24.04 - Nautilus vs Nemo vs Dolphin vs Caja
- Como Alterar um Endereço IP Estático no Ubuntu Server
- Aplicações de monitoramento de GPU no Linux / Ubuntu