Instalação, atualização e remoção de software com apt e dpkg no Debian/Ubuntu.
apt
Gerenciador de alto nível
dpkg
Baixo nível arquivos .deb
.deb
Formato do pacote
PPA
Repositório externo
📦 O que são Pacotes?
No Linux, um pacote é um arquivo compactado (.deb no Debian/Ubuntu) que contém tudo que um programa precisa para funcionar.
🏪 Analogia: pense num pacote como um aplicativo da Play Store ou App Store — mas instalado pelo terminal. Você informa o nome, o sistema baixa, instala e configura tudo automaticamente.
O que há dentro de um pacote .deb
⚙️
BináriosPrograma compilado pronto para executar
📄
ConfiguraçõesArquivos padrão em /etc
📖
DocumentaçãoPáginas de manual (man)
🔗
DependênciasLista de outros pacotes necessários
📜
ScriptsPós-instalação e configuração
🏷️
MetadadosNome, versão, mantenedor, descrição
🏪 O que são Repositórios?
Um repositório é um servidor na internet que armazena milhares de pacotes organizados e verificados. O apt consulta esses servidores para baixar e instalar softwares.
🌐RepositórioServidor com milhares de pacotes
➡
📥aptBaixa, verifica e resolve dependências
➡
💻Seu SistemaPrograma instalado e pronto
Tipos de repositórios no Ubuntu
mainSoftware oficial mantido pela Canonical. Suporte garantido.
universeSoftware da comunidade. Sem suporte oficial, mas vasto.
multiverseSoftware não-livre ou com restrições legais.
arquivos de configuração de repositórios
# Arquivo principal de repositórios/etc/apt/sources.list# Repositórios adicionais (PPAs e terceiros)/etc/apt/sources.list.d/# Ver o conteúdouser@srv:~$cat/etc/apt/sources.listdeb http://br.archive.ubuntu.com/ubuntu jammy main restricteddeb http://br.archive.ubuntu.com/ubuntu jammy universe multiversedeb http://security.ubuntu.com/ubuntu jammy-security main restricted
🔧 apt vs dpkg: qual usar?
Existem duas ferramentas principais para gerenciar pacotes no Debian/Ubuntu. Entender a diferença é essencial para escolher a correta em cada situação.
apt — Alto Nível
✅ Resolve dependências automaticamente
✅ Baixa da internet (repositórios)
✅ Fácil de usar no dia a dia
✅ Atualiza pacotes instalados
❌ Não instala .deb locais diretamente
dpkg — Baixo Nível
❌ Não resolve dependências
❌ Não baixa da internet
✅ Instala arquivos .deb locais
✅ Lista e inspeciona pacotes
✅ Opera sem acesso à rede
💡 Regra prática: use apt para quase tudo. Use dpkg -i apenas quando tiver um arquivo .deb local que não está nos repositórios (ex: Google Chrome, VS Code, Discord).
🔄 Atualizando o Sistema
São dois comandos distintos que muita gente confunde. É essencial entender a diferença:
apt updateAtualiza o CATÁLOGO
Consulta os repositórios
Baixa a lista de pacotes disponíveis
Não instala NADA
Deve ser o primeiro passo sempre
apt upgradeAtualiza os PACOTES
Compara versões instaladas vs disponíveis
Instala as novas versões
Não remove pacotes antigos
Deve vir sempre após o update
update e upgrade
# 1. Atualiza a LISTA (não instala nada)root@srv:~#aptupdateAtingido:1 http://br.archive.ubuntu.com/ubuntu jammy InReleaseObtido:2 http://security.ubuntu.com jammy-security InReleaseLendo lista de pacotes... Pronto# 2. Instala as atualizações dos pacotes já instaladosroot@srv:~#aptupgradeOs seguintes pacotes serão atualizados: base-files bash coreutils...Deseja continuar? [S/n]S# Combo recomendado: update + upgrade automáticoroot@srv:~#aptupdate&&apt-yupgrade
⚠️ update ≠ upgrade:apt update apenas atualiza o catálogo — não instala nada. É o apt upgrade que instala as novas versões. Sempre execute na ordem: update primeiro, upgrade depois.
📥 Instalando Pacotes
O comando apt install busca o pacote nos repositórios, resolve as dependências automaticamente e instala tudo de uma vez.
apt install
# Instalar um único pacoteroot@srv:~#aptinstallhtopLendo listas de pacotes... ProntoOs seguintes NOVOS pacotes serão instalados: htopDeseja continuar? [S/n]S# Instalar vários de uma vezroot@srv:~#aptinstallvim git curl wget# -y: responde "sim" automaticamente (útil em scripts)root@srv:~#aptinstall-ynginx# Reinstalar um pacote corrompidoroot@srv:~#aptinstall--reinstallbash
💡 A flag -y responde “sim” automaticamente a todas as confirmações. Muito útil em scripts de provisionamento, mas use com atenção em servidores de produção.
🗑️ Removendo Pacotes
Há três níveis de remoção, cada um com um grau diferente de limpeza. Escolha conforme sua necessidade:
apt remove
⚠️ Remove o programa, mas mantém as configurações em /etc. Útil se for reinstalar depois.
apt purge
🧹 Remove o programa E todos os arquivos de configuração. Como se nunca tivesse instalado.
apt autoremove
♻️ Remove dependências que foram instaladas automaticamente e não são mais usadas.
remove vs purge vs autoremove
# Remove o programa, mantém configsroot@srv:~#aptremovenginx# Remove tudo: programa + configuraçõesroot@srv:~#aptpurgenginx# Limpa dependências que ficaram órfãsroot@srv:~#aptautoremoveOs seguintes pacotes serão REMOVIDOS: libx264-163 libx265-199 libnginx-mod-http-gzip...Deseja continuar? [S/n]S
📌 Quando usar cada um: remove → vai reinstalar em breve e quer manter as configs purge → remoção completa, "limpa do sistema" autoremove → após remover pacotes, para limpar dependências órfãs
🔍 Buscando e Consultando Pacotes
Antes de instalar, pesquise por nome ou descrição e veja informações detalhadas de um pacote.
apt search, show e list
# Buscar por nome ou descriçãouser@srv:~$aptsearcheditorvim/jammy - Vi IMproved - enhanced vi editornano/jammy - small, friendly text editorgedit/jammy - official text editor of GNOME# Detalhes completos de um pacoteuser@srv:~$aptshowhtopPackage: htopVersion: 3.2.1-1Description: interactive process viewerDepends: libc6, libncursesw6, libnl-3-200# Listar pacotes instaladosuser@srv:~$aptlist--installed# Ver o que pode ser atualizadouser@srv:~$aptlist--upgradable
💾 dpkg — Instalando Arquivos .deb Locais
Quando um programa não está nos repositórios — como Google Chrome, VS Code ou Discord — você baixa o arquivo .deb manualmente e usa o dpkg.
Principais flags do dpkg
dpkg -iInstall — instala um .deb local
dpkg -rRemove — remove, mantém configs
dpkg -PPurge — remove tudo inclusive configs
dpkg -lList — lista pacotes instalados
dpkg -SSearch — qual pacote criou este arquivo?
apt install -fFix-broken — corrige dependências
fluxo completo: baixar e instalar .deb
# 1. Baixar o .deb (exemplo: Google Chrome)user@srv:~$wgethttps://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb# 2. Instalar com dpkgroot@srv:~#dpkg-igoogle-chrome-stable_current_amd64.deb# 3. Se der erro de dependências, corrija com aptroot@srv:~#aptinstall-fCorrigindo dependências... Pronto# 4. Verificar instalaçãouser@srv:~$dpkg-l | grepchromeii google-chrome-stable 120.0.6099.71 amd64 The web browser from Google
➕ Adicionando Repositórios Externos (PPA)
Quando um software não está nos repositórios oficiais, é possível adicionar um PPA (Personal Package Archive) — repositório mantido por terceiros no Launchpad da Canonical.
adicionando e removendo PPA
# 1. Adicionar o PPAroot@srv:~#add-apt-repositoryppa:nome/ppa# 2. SEMPRE atualize a lista após adicionar um PPAroot@srv:~#aptupdate# 3. Instalar o pacote do PPAroot@srv:~#aptinstall-ynome-do-pacote# Remover um PPAroot@srv:~#add-apt-repository--removeppa:nome/ppa
⚠️ Cuidado com PPAs! São mantidos por terceiros, sem garantia de qualidade ou segurança. Adicione apenas PPAs de fontes confiáveis e reconhecidas. Em servidores de produção, evite ao máximo o uso de PPAs.
🧹 Limpeza do Sistema
Com o tempo, o sistema acumula cache de pacotes e dependências órfãs. Esses três comandos liberam espaço em disco:
♻️apt autoremoveRemove dependências órfãs — pacotes instalados automaticamente que nenhum programa usa mais
🧹apt autocleanRemove do cache só os .deb de versões antigas — mantém os pacotes atuais
🗑️apt cleanApaga todos os arquivos .deb do cache local em /var/cache/apt/archives/
limpeza completa
# Remove dependências órfãsroot@srv:~#aptautoremove# Limpa .deb de versões antigas do cacheroot@srv:~#aptautoclean# Combo recomendado de manutençãoroot@srv:~#aptautoremove&&aptautocleanOs seguintes pacotes serão REMOVIDOS: libx264-163...Após esta operação, 124 MB de espaço em disco serão liberados.
📌 Em servidores, execute o combo de limpeza após grandes atualizações. Em ambientes com disco limitado, o cache de pacotes pode ocupar centenas de megabytes.
📋 Referência Rápida: Comandos Essenciais
apt updateAtualiza CatálogoBaixa lista dos repos. Não instala nada.
apt upgradeAtualiza PacotesInstala versões novas dos já instalados.
apt install nomeInstalaBaixa, resolve dependências e instala.
Arraste cada descrição para o comando correto do gerenciamento de pacotes.
Descrição
Atualiza o catálogo de pacotes disponíveis nos repositórios — não instala nada
Instala um programa buscando automaticamente nos repositórios e resolvendo dependências
Remove o programa e todos os seus arquivos de configuração do sistema
Pesquisa pacotes disponíveis por nome ou trecho da descrição
Instala um arquivo .deb baixado manualmente, sem usar repositórios
Remove dependências instaladas automaticamente que não são mais necessárias
Comando
apt update
apt install
apt purge
apt search
dpkg -i
apt autoremove
❓ Verifique seu Conhecimento
Qual é a principal diferença entre apt update e apt upgrade?
Aupdate instala pacotes novos e upgrade atualiza os já instalados
Bupdate atualiza o catálogo (não instala nada) e upgrade instala as novas versões
CSão sinônimos e fazem a mesma coisa
Dupdate é para o kernel e upgrade para os demais pacotes
✓ apt update apenas baixa a lista de pacotes disponíveis nos repositórios — não instala nada. apt upgrade compara versões e instala as atualizadas. Sempre update antes de upgrade!
Qual comando remove o programa e todos os seus arquivos de configuração?
Aapt remove
Bapt autoremove
Capt purge
Ddpkg -r
✓ apt purge remove o programa e seus arquivos de configuração. remove mantém as configs. autoremove limpa dependências órfãs. dpkg -r também remove mas mantém configs.
Você baixou o arquivo vscode.deb. Qual comando instala esse arquivo?
Adpkg -i vscode.deb
Bapt install vscode.deb
Capt-get vscode.deb
Dinstall vscode.deb
✓ dpkg -i arquivo.deb instala um arquivo .deb local. Se houver erro de dependências, corrija com apt install -f. Alternativa moderna: apt install ./vscode.deb (resolve dependências automaticamente).
🛠️ Atividade Prática — Gerenciando Pacotes no Servidor
⏱ ~30 min💻 Ubuntu Server / Terminal📸 Tirar screenshot da saída
1
Atualize o sistema
Execute apt update && apt upgrade -y. Observe os repositórios sendo consultados e os pacotes atualizados. Tire screenshot da saída final mostrando os pacotes atualizados.
2
Instale e teste o htop
Execute apt install -y htop. Após instalado, rode htop para visualizar os processos em tempo real. Pressione q para sair.
3
Pesquise e inspecione um pacote
Busque editores de texto com apt search editor | head -10. Depois veja os detalhes do nano: apt show nano. Identifique a versão e as dependências listadas.
4
Remova com remove e depois com purge
Remova o htop com apt remove htop. Use dpkg -l | grep htop para ver o status — deve aparecer como rc (removido, configs mantidas). Depois faça apt purge htop e verifique novamente.
5
Faça a limpeza do sistema
Execute apt autoremove && apt autoclean. Observe quantos pacotes e megabytes foram liberados. Tire screenshot mostrando o resultado da limpeza.
📌 Para refletir: O gerenciador de pacotes é uma das maiores vantagens do Linux em relação ao Windows. Com um único comando, você instala, atualiza ou remove centenas de programas, com resolução automática de dependências e sem acessar sites de terceiros.