Gerenciamento de pacotes do Debian
Resumo Conciso
dpkg — Ferramenta de Pacotes do Debian
| Comando | Função |
|---|---|
dpkg -i PACKAGENAME | Instalar/atualizar um pacote .deb |
dpkg -r PACKAGENAME | Remover um pacote (mantém configs) |
dpkg -P PACKAGENAME | Remover pacote e configurações (purge) |
dpkg -I FILENAME | Inspecionar pacote (versão, dependências, etc.) |
dpkg --get-selections | Listar todos os pacotes instalados |
dpkg -L PACKAGENAME | Listar arquivos instalados por um pacote |
dpkg-query -S FILENAME | Descobrir qual pacote possui um arquivo |
dpkg-reconfigure PACKAGENAME | Reconfigurar pacote instalado |
dpkg -i --force-all PACKAGENAME | Forçar instalação (perigoso!) |
APT — Advanced Package Tool
| Comando | Função |
|---|---|
apt-get update | Atualizar índice do pacote |
apt-get install PACKAGENAME | Instalar pacote + dependências |
apt-get remove PACKAGENAME | Remover pacote |
apt-get purge PACKAGENAME | Remover pacote e configurações |
apt-get remove --purge PACKAGENAME | Remover pacote e configurações |
apt-get upgrade | Atualizar todos os pacotes |
apt-get upgrade PACKAGENAME | Atualizar um pacote específico |
apt-get install -f | Corrigir dependências quebradas |
apt-get clean | Limpar cache de pacotes |
apt-cache search PATTERN | Buscar pacote por padrão |
apt-cache show PACKAGENAME | Exibir informações do pacote |
apt-file update | Atualizar cache do apt-file |
apt-file search FILENAME | Buscar pacote que contém um arquivo |
apt-file list PACKAGENAME | Listar conteúdo de um pacote |
Equivalentes com apt:
apt update=apt-get updateapt install=apt-get installapt remove=apt-get removeapt upgrade=apt-get upgradeapt clean=apt-get cleanapt search=apt-cache searchapt show=apt-cache show
Cache Local
- Diretório:
/var/cache/apt/archives - Parcialmente baixados:
/var/cache/apt/archives/partial/ - Limpar:
apt-get clean
Arquivo /etc/apt/sources.list
Sintaxe:
tipo URL distribuição componentesExemplo:
deb http://us.archive.ubuntu.com/ubuntu/ disco main restricted universe multiverseTipos: deb (binários), deb-src (código fonte)
Componentes Ubuntu
| Componente | Descrição |
|---|---|
main | Código aberto oficialmente suportado |
restricted | Código fechado oficialmente suportado (drivers) |
universe | Código aberto mantido pela comunidade |
multiverse | Não suportado, código fechado ou patenteado |
Componentes Debian
| Componente | Descrição |
|---|---|
main | Compatível com DFSG, sem dependências externas |
contrib | Compatível com DFSG, mas depende de pacotes fora do main |
non-free | Não compatível com DFSG |
security | Atualizações de segurança |
backports | Versões mais recentes de pacotes do main |
Diretório /etc/apt/sources.list.d/
- Arquivos
.listcom a mesma sintaxe dosources.list - Permite adicionar repositórios sem modificar o arquivo principal
Exercícios Exploratórios
Exercício Exploratório 1 — Adicionar repositório fonte
Enunciado: Considere um repositório com pacotes de fontes Debian para a distribuição xenial, hospedado em http://us.archive.ubuntu.com/ubuntu/ e com pacotes para o componente universe. Qual seria a linha correspondente a adicionar a /etc/apt/sources.list?
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial universeEssa linha também poderia ser adicionada a um arquivo .list em /etc/apt/sources.list.d/, como xenial_sources.list.
Exercício Exploratório 2 — Arquivo de cabeçalho ausente
Enunciado: Ao compilar um programa, aparece uma mensagem de erro reclamando que o arquivo de cabeçalho zzip-io.h não está presente no seu sistema. Como você pode descobrir qual pacote fornece esse arquivo?
apt-file search zzip-io.hExercício Exploratório 3 — Forçar remoção com dpkg
Enunciado: Como podemos ignorar um aviso de dependência e remover um pacote usando dpkg, mesmo que haja pacotes que dependam dele no sistema?
O parâmetro --force-all poderia ser usado, mas isso jamais deve ser feito a menos que se saiba exatamente o que se está fazendo, já que existe um risco enorme de que o sistema seja deixado em um estado inconsistente ou "quebrado".
Exercício Exploratório 4 — Informações com apt
Enunciado: Como é possível obter mais informações sobre um pacote chamado midori usando apt?
apt-cache show midoriExercício Exploratório 5 — Atualizar índice do pacote
Enunciado: Antes de instalar ou atualizar pacotes com o apt, qual comando deve ser usado para garantir que o índice do pacote esteja atualizado?
apt-get update deve ser usado. Ele baixa os índices mais recentes do pacote dos repositórios descritos no arquivo /etc/apt/sources.list ou no diretório /etc/apt/sources.list.d/.