¿Qué es el error 'Sub-process /usr/bin/dpkg returned an error code (1)' en Linux?
Este error es uno de los problemas más frecuentes que experimentan los usuarios y administradores de sistemas en distribuciones basadas en Debian, como Ubuntu, Linux Mint o Pop!_OS. Ocurre cuando el gestor de paquetes de bajo nivel, dpkg, encuentra una falla durante la ejecución de los scripts de preinstalación, configuración o postinstalación de un paquete de software, interrumpiendo abruptamente el proceso en la terminal.
Causas comunes del error
- Instalaciones incompletas: Una interrupción abrupta de la terminal o pérdida de energía durante un comando
apt upgrade. - Scripts post-instalación defectuosos: Fallos en los scripts que configuran los servicios recién instalados en el directorio
/var/lib/dpkg/info/. - Conflictos de dependencias: Paquetes obsoletos o versiones incompatibles que no pueden resolverse automáticamente.
- Corrupción en la base de datos de paquetes: Registros dañados dentro del catálogo local de
dpkg.
Método 1: Reparar paquetes rotos y reconfigurar la base de datos de dpkg
La primera medida consiste en forzar a dpkg y a apt a finalizar cualquier configuración pendiente y resolver árboles de dependencias rotos.
- Abre tu terminal y ejecuta el siguiente comando para forzar la configuración de paquetes pendientes:
sudo dpkg --configure -a - Limpia la caché local de paquetes descargados:
sudo apt clean - Corrige las dependencias rotas que puedan haber quedado colgadas:
sudo apt install -f - Actualiza la lista de repositorios y finaliza cualquier actualización pendiente:
sudo apt update && sudo apt upgrade -y
Método 2: Mover los archivos de información del paquete defectuoso
Si la terminal indica un nombre de paquete específico causante del conflicto (por ejemplo, mysql-server o python3-minimal), el fallo suele residir en los scripts de ejecución de /var/lib/dpkg/info.
- Identifica el nombre exacto del paquete señalado en las líneas previas al mensaje de error.
- Mueve temporalmente todos los archivos asociados a ese paquete fuera del directorio de control:
sudo mv /var/lib/dpkg/info/nombre-del-paquete.* /tmp/ - Vuelve a reconfigurar la base de datos de paquetes:
sudo dpkg --configure -a - Actualiza tus repositorios para reestablecer los archivos correctos:
sudo apt update
Método 3: Forzar la eliminación del paquete corrupto
Si el paquete dañado no es crítico para el arranque del sistema operativo y los métodos anteriores fallan, puedes forzar su desinstalación directa.
- Fuerza la desinstalación del paquete defectuoso ignorando sus dependencias rotas:
sudo dpkg --remove --force-remove-reinstreq nombre-del-paquete - Limpia los restos del paquete en el sistema:
sudo apt purge nombre-del-paquete - Repara el árbol de dependencias residual:
sudo apt install -f - Vuelve a instalar el paquete de forma limpia si aún lo necesitas mediante
sudo apt install nombre-del-paquete.