sábado, 14 de marzo de 2020

Solución: dpkg: error fatal irrecuperable, abortando. E: Sub-process /usr/bin/dpkg returned an error code (2)


Hola amigos del software libre.

En este artículo os mostraré la solución que he adoptado para remediar el error surgido durante la actualización de paquetes mediante el gestor "apt".

Este error me apareció usando la distribución Xubuntu 18.04. En el momento que me dispuse a actualizar los nuevos paquetes con el comando:

$ sudo apt upgrade

No empezó la descarga. El mensaje de error completo que me apareció concretamente fué: "dpkg: error fatal irrecuperable, abortando: falta un salto de línea nueva al final del fichero de la lista de ficheros del paquete 'gcc-7-multilib'. E: Sub-process /usr/bin/dpkg returned an error code (2)"




La información de los paquetes que se van instalando quedan relacionados en el archivo "/var/lib/dpkg/status". También se crea el archivo "/var/lib/dpkg/status-old", como listado de los paquetes instalados la última vez.

Así que nos iremos a dicho directorio:

$ cd /var/lib/dpkg

Y listaremos para ver los dos archivos mencionados anteriormente:

$ ls -l


Deberemos buscar y modificar el contenido del archivo "status", pero antes haremos una copia del mismo, por precaución, por si cometemos un error. Deberemos ser usuario root o utilizar el comando sudo para serlo temporalmente:

$ sudo cp status status.bak


Mediante el editor "nano" buscaremos si se encuentra relacionado en su interior el paquete "gcc-7-multilib", que nos está causando un error:

$ sudo nano status






Realizamos una búsqueda, mediante la combinación de teclas: "Ctrl" + "w", e introduciremos el nombre del paquete, en mi caso "gcc-7-multilib":



Una vez hayamos encontrado el paquete, deberemos eliminarlo por completo. Todas sus líneas, desde que empieza con el título "Package" hasta "Original-Maintainer", pudiendo ver el próximo "Package".


Cuando lo hayamos eliminado, guardaremos los cambios con "Ctrl"+"o" y saldremos del editor.

Si volvemos a ejecutar la actualización de paquetes con apt:

$ sudo apt upgrade



Vemos que nos insta a ejecutar una opción del gestor de paquetes "apt" para solucionar una instalación rota. Así que lo ejecutaremos:

$ sudo apt --fix-broken install


Y aquí tenemos ya los paquetes instalados y actualizados sin ningún error ni problema.

Por último eliminamos ese duplicado del archivo "status" que creamos como seguridad. El archivo "status.bak":

$ sudo rm status.bak


Y fin del tutorial, tip o consejo, como prefiráis llamarlo. Espero os sirva de ayuda.

Saludos y hasta el próximo artículo.

6 comentarios:

Gracias por participar en este blog.