Sintomas comuns
apt installrelata “dependência não satisfeita”dpkgé interrompido e não pode continuar a instalação- A mensagem “pacotes quebrados retidos” aparece
- O status do pacote é “meio instalado” ou “meio configurado”
Note
A maioria dos problemas de pacotes podem ser resolvidos com as três primeiras etapas (dpkg --configure -a, apt --fix-broken install, apt update && apt upgrade). Experimente-os em ordem e não se apresse em usar métodos de reparo avançados.
Procedimento de reparo padrão
Experimente as etapas a seguir em ordem. As primeiras etapas geralmente resolvem o problema.
Etapa 1: corrigir dpkg interrompido
sudo dpkg --configure -aEtapa 2: corrigir dependências
sudo apt --fix-broken installEtapa 3: atualizar e limpar
sudo apt update
sudo apt upgrade
sudo apt autoremove
sudo apt autocleanReparo Avançado
Forçar pacotes de correção
# View problematic packages
dpkg -l | grep -E "^..[^i ]"
# Force reinstall a package
sudo apt install --reinstall PACKAGE_NAME
# Force remove a broken package
sudo dpkg --remove --force-remove-reinstreq PACKAGE_NAMELimpar cache do pacote
# Delete all downloaded package cache
sudo apt clean
# Delete only outdated packages
sudo apt autoclean
# Manual cleanup
sudo rm /var/cache/apt/archives/*.deb
sudo rm /var/cache/apt/archives/partial/*.debCorrigir bloqueio do dpkg
Se você receber “Não é possível bloquear o diretório de administração”:
# Check if other apt/dpkg processes are running
ps aux | grep -E "apt|dpkg"
# If you confirm no other processes are running, delete the lock files
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock
sudo dpkg --configure -aReconstruir banco de dados dpkg
Em casos extremos onde o banco de dados dpkg está corrompido:
# Back up existing database
sudo cp -r /var/lib/dpkg /var/lib/dpkg.backup
# Restore the status file from the system's daily backup (status is dpkg's core database)
ls -t /var/backups/dpkg.status.* # List available backup snapshots
sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status # .0 is newest; use an older snapshot if needed
sudo dpkg --clear-avail
sudo apt updateSolução de problemas de conflitos de dependência
Ver dependências do pacote
# View dependencies of a package
apt depends PACKAGE_NAME
# View which packages depend on a package
apt rdepends PACKAGE_NAME
# Simulate installation to see conflicts
apt install -s PACKAGE_NAMEConflitos causados por PPAs
PPAs de terceiros são uma fonte comum de conflitos de dependência:
# List added PPAs
grep -rh "^deb " /etc/apt/sources.list.d/ | sort
# Disable a problematic PPA
sudo add-apt-repository --remove ppa:xxx/yyy
# Downgrade PPA-installed packages to official versions
sudo apt install ppa-purge
sudo ppa-purge ppa:xxx/yyyConflitos de retenção de versão
# View held packages
apt-mark showhold
# Unhold a package
sudo apt-mark unhold PACKAGE_NAMEProblemas com o pacote Snap
# View snap status
snap list
# Fix snap
sudo snap refresh
# Reinstall a problematic snap
sudo snap remove PACKAGE_NAME
sudo snap install PACKAGE_NAMEÚltimo recurso
Se nenhum dos métodos acima funcionar, tente:
# Completely reinstall the package management system (use with caution)
sudo apt install --reinstall dpkg apt
# Or use aptitude for interactive conflict resolution
sudo apt install aptitude
sudo aptitude install PACKAGE_NAME
# aptitude will offer multiple solutions to choose fromDicas de prevenção
- Evite adicionar PPAs de terceiros não confiáveis
- Não misture fontes de software de diferentes versões do Ubuntu
- Execute regularmente
sudo apt update && sudo apt upgrade - Use
apt install -spara simular a instalação e verificar conflitos - Mantenha as versões dos pacotes do sistema consistentes; evite instalar manualmente arquivos
.debque substituem pacotes do sistema