⬅ Voltar ao Dashboard 1º Bimestre — Linux Básico
Aula 1.6

📦 Pacotes e Repositórios

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ários Programa compilado pronto para executar
📄
Configurações Arquivos padrão em /etc
📖
Documentação Páginas de manual (man)
🔗
Dependências Lista de outros pacotes necessários
📜
Scripts Pós-instalação e configuração
🏷️
Metadados Nome, 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ório Servidor com milhares de pacotes
📥 apt Baixa, verifica e resolve dependências
💻 Seu Sistema Programa instalado e pronto

Tipos de repositórios no Ubuntu

main Software oficial mantido pela Canonical. Suporte garantido.
universe Software da comunidade. Sem suporte oficial, mas vasto.
restricted Drivers proprietários (ex: NVIDIA, firmware Wi-Fi).
multiverse Software 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údo user@srv:~$ cat /etc/apt/sources.list deb http://br.archive.ubuntu.com/ubuntu jammy main restricted deb http://br.archive.ubuntu.com/ubuntu jammy universe multiverse deb 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 update Atualiza 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 upgrade Atualiza 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:~# apt update Atingido:1 http://br.archive.ubuntu.com/ubuntu jammy InRelease Obtido:2 http://security.ubuntu.com jammy-security InRelease Lendo lista de pacotes... Pronto # 2. Instala as atualizações dos pacotes já instalados root@srv:~# apt upgrade Os seguintes pacotes serão atualizados: base-files bash coreutils... Deseja continuar? [S/n] S # Combo recomendado: update + upgrade automático root@srv:~# apt update && apt -y upgrade

⚠️ 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 pacote root@srv:~# apt install htop Lendo listas de pacotes... Pronto Os seguintes NOVOS pacotes serão instalados: htop Deseja continuar? [S/n] S # Instalar vários de uma vez root@srv:~# apt install vim git curl wget # -y: responde "sim" automaticamente (útil em scripts) root@srv:~# apt install -y nginx # Reinstalar um pacote corrompido root@srv:~# apt install --reinstall bash

💡 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 configs root@srv:~# apt remove nginx # Remove tudo: programa + configurações root@srv:~# apt purge nginx # Limpa dependências que ficaram órfãs root@srv:~# apt autoremove Os 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ção user@srv:~$ apt search editor vim/jammy - Vi IMproved - enhanced vi editor nano/jammy - small, friendly text editor gedit/jammy - official text editor of GNOME # Detalhes completos de um pacote user@srv:~$ apt show htop Package: htop Version: 3.2.1-1 Description: interactive process viewer Depends: libc6, libncursesw6, libnl-3-200 # Listar pacotes instalados user@srv:~$ apt list --installed # Ver o que pode ser atualizado user@srv:~$ apt list --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 -i Install — instala um .deb local
dpkg -r Remove — remove, mantém configs
dpkg -P Purge — remove tudo inclusive configs
dpkg -l List — lista pacotes instalados
dpkg -S Search — qual pacote criou este arquivo?
apt install -f Fix-broken — corrige dependências
fluxo completo: baixar e instalar .deb
# 1. Baixar o .deb (exemplo: Google Chrome) user@srv:~$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb # 2. Instalar com dpkg root@srv:~# dpkg -i google-chrome-stable_current_amd64.deb # 3. Se der erro de dependências, corrija com apt root@srv:~# apt install -f Corrigindo dependências... Pronto # 4. Verificar instalação user@srv:~$ dpkg -l | grep chrome ii 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 PPA root@srv:~# add-apt-repository ppa:nome/ppa # 2. SEMPRE atualize a lista após adicionar um PPA root@srv:~# apt update # 3. Instalar o pacote do PPA root@srv:~# apt install -y nome-do-pacote # Remover um PPA root@srv:~# add-apt-repository --remove ppa: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 autoremove Remove dependências órfãs — pacotes instalados automaticamente que nenhum programa usa mais
🧹 apt autoclean Remove do cache só os .deb de versões antigas — mantém os pacotes atuais
🗑️ apt clean Apaga todos os arquivos .deb do cache local em /var/cache/apt/archives/
limpeza completa
# Remove dependências órfãs root@srv:~# apt autoremove # Limpa .deb de versões antigas do cache root@srv:~# apt autoclean # Combo recomendado de manutenção root@srv:~# apt autoremove && apt autoclean Os 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 update Atualiza Catálogo Baixa lista dos repos. Não instala nada.
apt upgrade Atualiza Pacotes Instala versões novas dos já instalados.
apt install nome Instala Baixa, resolve dependências e instala.
apt remove nome Remove Desinstala, mantém configurações.
apt purge nome Remove Tudo Programa + todas as configurações.
apt show nome Detalhes Versão, dependências, descrição.
dpkg -i arquivo.deb Instala .deb Local Arquivo baixado manualmente.
apt autoremove Limpa Órfãos Remove dependências inutilizadas.

Rotina recomendada de atualização:
apt update && apt upgrade -y && apt autoremove

🎯 Exercício — Arraste e Conecte

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.