Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg

Manutenção (instalação, remoção, limpeza, pacotes quebrados, etc) de sistemas Linux Debian e derivados (Ubuntu, Linux Mint, etc) dirimindo dúvidas entre as ferramentas apt-get, apt, aptitude e dpkg. A idéia básica pode ser adaptada para outras distribuições, pois o que muda são somente as ferramentas.

[ Hits: 1.489 ]

Por: Buckminster em 22/04/2024


Explanações



"O APT (Advanced Package Tool) é um projeto amplo, cujos planos originais incluem uma interface gráfica. Ele é baseado numa biblioteca que contém as aplicações principais, e o apt-get é a primeira interface — em linha de comando — que foi desenvolvida dentro do projeto. O apt é uma segunda interface baseada em linha de comando fornecida pelo APT que supera alguns erros de projeto do apt-get.
Ambas as ferramentas foram construídas sobre a mesma biblioteca e são, portanto, bastante parecidas, mas o comportamento padrão do apt foi melhorado para uso interativo e para fazer o que o usuário realmente espera. Os desenvolvedores do APT se reservam o direito de mudar a interface pública da ferramenta para melhorar ela. Por outro lado, a interface pública do apt-get é bem definida e não vai mudar em nada que quebre a retrocompatibilidade."

O dpkg é o comando básico para lidar com pacotes Debian no sistema. Se você tem pacotes .deb é com o dpkg que você instala ou analisa seu conteúdo. Mas este programa tem apenas uma visão parcial do universo Debian: ele sabe o que está instalado no sistema e o que for dado na linha de comando, porém, não sabe nada dos outros pacotes disponíveis. Assim, ele vai falhar se uma dependência não for satisfeita.
Ferramentas como o apt e aptitude, ao contrário, criarão uma lista de dependências para instalar tudo o mais automaticamente possível.

dpkg ou apt?

dpkg deve ser vista como uma ferramenta de sistema (dos bastidores) e apt como uma ferramenta mais próxima do usuário, que supera as limitações das antigas. Estas ferramentas trabalham juntas, cada uma com suas particularidades, adequadas para tarefas específicas. Em 1998, o apt-get foi lançado com a distribuição Debian 2.0 (Hamm), enquanto o apt foi lançado em 2014 com a distribuição Debian 8 (Jessie). Depois de 2014 o apt substituiu o apt-get como a ferramenta padrão de gerenciamento de pacotes para todas as distribuições Linux baseadas em Debian. A interface mais recomendada atualmente nos manuais do Debian (links ao final) é o apt, porém, a sintaxe de linha de comando do apt-get e aptitude são muito semelhantes ao apt.
Obs.: quando tiver 'apt*' significa que o comando serve para os três (apt-get, apt e aptitude). Em outros casos será indicado.

apt* update
update é usado para sincronizar os arquivos de índices de pacotes a partir das suas fontes. Os índices dos pacotes disponíveis são obtidos a partir das localizações em /etc/apt/sources.list.

apt* upgrade
upgrade é usado para instalar as versões mais recentes de todos os pacotes presentemente instalados no sistema a partir das fontes enumeradas em /etc/apt/sources.list. Os pacotes já instalados e que tem versões novas são obtidos e instalados; em nenhuma circunstância os pacotes instalados serão removidos, nem pacotes já instalados serão obtidos e instalados. Sempre execute primeiro apt-get update para que o apt-get fique sabendo que novas versões estão disponíveis. Se a atualização de um pacote necessitar da remoção de um pacote instalado, a atualização deste pacote não será executada.

apt* dist-upgrade
dist-upgrade executa também a função do upgrade e também lida inteligentemente com as alterações de dependências das novas versões de pacotes; o apt-get tem um sistema de resolução de conflitos 'inteligente' que tentará atualizar os pacotes mais importantes a custo dos pacotes menos importantes, caso necessário. Portanto, o comando dist-upgrade pode remover alguns pacotes.

apt* reinstall pacote
Reinstala pacotes que já estão instalados e, caso tiver, reinstala a versão mais recente.

apt* remove pacote
Remove o pacote, mas deixa os arquivos de configurações.

apt* purge pacote
Remove o pacote e os arquivos de configurações.

apt-get e apt autoremove
autoremove é usado para remover pacotes que foram instalados automaticamente para satisfazer dependências de outros pacotes e que já não são necessários.

apt-get e apt autopurge
A mesma coisa que autoremove, porém, remove também os arquivos de configurações.

apt* autoclean
Limpa o cache do repositório de arquivos para que não cresça demais. Remove apenas os pacotes que não podem mais ser baixados (por terem sumido dos espelhos Debian).

apt* clean
Esvazia completamente o diretório, use em caso de necessidade como, por exemplo, quando aparecem pacotes quebrados.

apt* -f install
apt* -f remove

"-f" é um álias para 'apt-get --fix-broken install/remove'. Ele tenta corrigir um sistema com dependências quebradas, pode ser usada com install ou remove.

aptitude safe-upgrade
Atualiza os pacotes instalados para sua versão mais recente. Os pacotes já instalados não serão removidos a menos que não sejam utilizados (veja a seção Gerenciando Pacotes Instalados Automaticamente” no manual de referência do aptitude). Pacotes que não estão instalados atualmente podem ser instalados para resolver dependências, a menos que a opção de linha de comando --no-new-installs seja fornecida. Às vezes é necessário remover um pacote para atualizar outro; este comando não é capaz de atualizar pacotes em tais situações. Use o comando full-upgrade para atualizar tantos pacotes quanto possível.

full-upgrade
Para atualizações mais importantes, como mudar de uma versão principal do Debian para a seguinte, você precisa usar 'apt full-upgrade'. Com esta instrução o apt vai completar a atualização mesmo se ele tiver que remover alguns pacotes obsoletos ou instalar novas dependências. Este também é o comando usado pelos usuários que trabalham diariamente com a versão Debian Unstable e seguem sua evolução dia após dia. É tão simples que dispensa explicações: a reputação do APT é baseada nesta fantástica funcionalidade.

Diferente do apt e aptitude, o apt-get não reconhece o comando full-upgrade. Em seu lugar, você deve usar 'apt-get dist-upgrade' (”atualização de distribuição”), comando este que o apt e aptitude também aceitam. Os resultados destas operações são registrados em /var/log/apt/history.log e /var/log/apt/term.log, enquanto que o dpkg guarda seu log num arquivo chamado /var/log/dpkg.log.

apt list --upgradable
Somente apt. Fornece uma lista de pacotes que podem ser atualizados.

apt e aptitude search pacote
Pesquisa um pacote específico. Para o apt-get o comando é 'apt-cache search pacote'.

apt e aptitude show pacote
Fornece informações sobre o pacote, inclusive informa se o pacote está ou não instalado e recomenda e sugere dependências. Para o apt-get o comando é 'apt-cache show pacote'.

dpkg --configure -a
Configura um pacote que foi desempacotado, mas ainda não configurado. Se for fornecido -a ou --pending em vez de 'pacote', todos os pacotes desempacotados, mas não configurados serão configurados.

dpkg -C pacote
ou para todos os pacotes:
dpkg -C
Executa testes de sanidade e consistência para package-name ou todos os pacotes se omitido (verificações por pacote desde dpkg 1.17.10). Por exemplo, procura por pacote que foram instalados apenas parcialmente no seu sistema ou têm ficheiros ou dados de controle em falta, errados ou obsoletos. O dpkg irá sugerir o que fazer com eles para os corrigir.

dpkg -V pacote
ou para todos os pacotes
dpkg -V
Verifica a integridade de package-name ou todos os pacotes se omitido, ao comparar informação dos arquivos instalados com a informação de metadados de arquivos guardada na base de dados do dpkg (desde dpkg 1.17.2). A origem da informação de metadados de arquivos na base de dados é os próprios pacotes binários. Esses metadados são colecionados ao desempacotar os arquivos durante o processo de instalação. O uso do dpkg -V pode eventualmente demorar de acordo com os erros encontrados.

Referências

manpages do apt-get, apt, aptitude, dpkg e fsck presente nas distribuições e acessados pelo comando, por exemplo, man fsck
https://debian-handbook.info/browse/pt-BR/stable/sect.manipulating-packages-with-dpkg.html
https://debian-handbook.info/browse/pt-BR/stable/apt.html
https://www.debian.org/doc/manuals/aptitude/
https://manpages.ubuntu.com/manpages/trusty/pt/man1/debsums.1.html
https://www.vivaolinux.com.br/artigo/Como-utilizar-de-forma-correta-os-repositorios-e-pacotes-Backports/
https://www.vivaolinux.com.br/dica/Como-encontrar-e-remover-pacotes-instalados-que-nao-foram-fornecidos-pelo-Debian-e-encontrar-e-desmarcar-pacotes-retidos-hold/
https://askubuntu.com/questions/867844/dpkg-error-cannot-scan-updates-directory-var-lib-dpkg-updates
https://aws.amazon.com/pt/compare/the-difference-between-apt-and-apt-get/
https://docs.fedoraproject.org/pt_BR/quick-docs/dnf-vs-apt/
https://wiki.archlinux.org/title/Fsck_(Portugu%C3%AAs)
https://phoenixnap.com/kb/fsck-command-linux

Página anterior    

Páginas do artigo
   1. Comandos 1
   2. Comandos 2
   3. Explanações
Outros artigos deste autor

Instalar Minecraft, League of Legends e Fortnite no Linux

Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha

Instalando e Configurando o pgAgent no Linux (pgAdmin e PostgreSQL)

Instalar e configurar o Nftables com exemplos básicos de configurações

Instalação do PostgreSQL com Apache 2, PHP 5, OpenSSL no Debian Wheezy 7.7 64 bits com systemd e chroot

Leitura recomendada

Programação (I) - Planejamento e Otimização

Criando vídeo com características de DVD

Embutindo legenda e fazendo autoração de um vídeo para DVD

Entendendo os números binários

Grade Computacional com OurGrid no Debian Lenny

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts