Síntomas comunes
apt installinforma “dependencia no satisfecha”dpkgse interrumpe y no puede continuar con la instalación- Aparece el mensaje “paquetes rotos retenidos”
- El estado del paquete es “medio instalado” o “medio configurado”
Note
La mayoría de los problemas de paquetes se pueden resolver con los primeros tres pasos (dpkg --configure -a, apt --fix-broken install, apt update && apt upgrade). Pruébelos en orden y no se apresure a utilizar métodos de reparación avanzados.
Procedimiento de reparación estándar
Pruebe los siguientes pasos en orden. Los primeros pasos suelen resolver el problema.
Paso 1: Reparar dpkg interrumpido
sudo dpkg --configure -aPaso 2: arreglar las dependencias
sudo apt --fix-broken installPaso 3: actualizar y limpiar
sudo apt update
sudo apt upgrade
sudo apt autoremove
sudo apt autocleanReparación avanzada
Forzar paquetes de reparación
# 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_NAMEBorrar caché de paquetes
# 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/*.debReparar bloqueo dpkg
Si aparece “No se puede bloquear el directorio de administración”:
# 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 la base de datos dpkg
En casos extremos en los que la base de datos dpkg esté dañada:
# 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 updateSolución de problemas de conflictos de dependencia
Ver dependencias de paquetes
# 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_NAMEConflictos causados por los PPA
Los PPA de terceros son una fuente común de conflictos de dependencia:
# 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/yyyConflictos de retención de versiones
# View held packages
apt-mark showhold
# Unhold a package
sudo apt-mark unhold PACKAGE_NAMESnap Problemas con el paquete
# 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
Si ninguno de los métodos anteriores funciona, intente:
# 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 fromConsejos de prevención
- Evite agregar PPA de terceros que no sean de confianza
- No mezcle fuentes de software de diferentes versiones de Ubuntu
- Ejecute regularmente
sudo apt update && sudo apt upgrade - Utilice
apt install -spara simular la instalación y comprobar si hay conflictos - Mantenga las versiones de los paquetes del sistema consistentes; evite instalar manualmente archivos
.debque anulan los paquetes del sistema