Tutorial de Ubuntu 26.04 / Remova, retenha e repare pacotes com cuidado

Separe remoções, retenções, bloqueios e falhas de dependências ao corrigir pacotes Ubuntu. Primeiro examine o estado e as alterações propostas, simule a operação e aplique apenas a ação necessária.

Entenda o alcance da remoção

Operação Efeito
remove Remove o programa; algumas configurações de sistema podem permanecer
purge Também remove configurações gerenciadas pelo pacote, não todos os arquivos do usuário
autoremove Remove dependências marcadas como instaladas automaticamente e consideradas desnecessárias
hold Impede alterações normais do pacote e pode bloquear atualizações de segurança

Use o pacote não essencial hello em uma VM de prática e registre se já estava instalado. Se necessário, instale-o seguindo o procedimento de instalação com APT. Não use kernels ou pacotes de rede e login para praticar remoção.

Simule e examine a remoção

apt-get -s remove hello
apt-get -s purge hello
apt-get -s autoremove

Compare os pacotes cuja remoção foi proposta. Não prossiga se aparecerem drivers ou serviços inesperados. Aplique apenas o que foi examinado, por exemplo sudo apt remove hello, sem eliminar a confirmação com -y.

Confira e reverta uma retenção

O exemplo exige hello instalado e consulta as retenções antes de alterá-las. Se a consulta inicial falhar, a prática para sem aplicar retenção. A comparação abaixo usa o nome hello; em ambientes com nomes qualificados por arquitetura, confira a saída e não execute o exemplo sem adaptá-lo corretamente.

(
set -eu
if [ "$(dpkg-query -W -f='${Status}' hello 2>/dev/null)" != "install ok installed" ]; then
    printf 'Install the nonessential hello lab package first.\n' >&2
    exit 1
fi
holds=$(apt-mark showhold)
was_held=no
while IFS= read -r name; do
    if [ "$name" = hello ]; then was_held=yes; fi
done <<< "$holds"
sudo apt-mark hold hello
apt-mark showhold
if [ "$was_held" = no ]; then
    sudo apt-mark unhold hello
fi
apt-mark showhold
)

O exemplo preserva uma retenção prévia e só libera hello quando a prática a criou. Liberar uma retenção não instala atualizações. Uma interrupção ou erro depois de aplicar a retenção pode impedir a etapa de liberação: confira a saída e o estado real e restaure manualmente apenas o estado anterior do pacote de prática. Preserve as demais retenções; para retenções prolongadas, registre motivo, data de revisão e impacto de segurança. Consulte a documentação apt-mark do Ubuntu 26.04.

Investigue trabalhos em andamento antes de tratar bloqueios

systemctl status apt-daily.service apt-daily-upgrade.service --no-pager
ps -eo pid,etime,args | grep -E "[a]pt|[d]pkg|[u]nattended"

Se outra atualização estiver avançando normalmente, aguarde. Apagar arquivos de bloqueio ou encerrar processos de pacotes sem diagnóstico pode interromper operações da base de dados. Um serviço inativo, sozinho, não prova que o bloqueio está abandonado; examine processos e logs relevantes.

Repare configuração incompleta e dependências

sudo dpkg --audit
apt-get -s --fix-broken install

Para configuração interrompida, consulte logs e backups antes de usar sudo dpkg --configure -a. Esse comando executa scripts de manutenção e pode afetar serviços. Leia as instalações e remoções propostas pela simulação antes de decidir se executa sudo apt-get --fix-broken install.

Se a causa for um repositório sem suporte ou com versões misturadas, corrija a origem em vez de repetir comandos de reparo. Termine com sudo dpkg --audit, sudo apt-get check e testes funcionais dos serviços afetados. Consistência de pacotes não comprova a recuperação dos dados da aplicação.

A documentação oficial de gerenciamento de pacotes explica remoção e dependências.