Paquetes rotos o dependencias no resueltas en Debian y sus distribuciones dependientes

Al instalar un programa puede que no se instale correctamente o que no sea compatible con el resto de paquetes (programas), y, si esto pasa, podremos tener el sistema bloqueado sin poder actualizar o instalar y desinstalar programas. Es lo que se llaman paquetes rotos. Los programas acostumbran a romperse en casos como los siguientes:

- Si se interrumpe accidentalmente la instalación de un programa por cualquier problema de red.
- Si se interrumpe accidentalmente la actualización del sistema operativo.
- Si se utilizan repositorios externos a nuestro sistema, como por ejemplo con deb-multimedia es muy típico.

Primero comprobaremos si tenemos instalado los gestores de programas  (software) synaptic  o aptituide.


$ sudo apt install synaptic aptitude

- Synaptic es un programa gráfico extremadamente correcto y potente para instalar y desinstalar aplicaciones, programas o paquetes.

- Aptitude se utiliza por expertos, sobretodo en servidores cuando no hay entorno gráfico, pero es extremadamente potente y preciso en la información, aunque un poco engorroso de manipular si no se tiene práctica.

- Problema simple

Para solucionar el problema de paquetes rotos, la opción más sencilla es abrir el programa Synaptic.  Primero recargamos datos y si tenemos un paquete roto el nos lo indicará.

Para ello, vamos la sección inferior izquierda de filtro y luego en la parte superior en rotos, si tenemos un paquete roto nos lo indicara en rojo.























Para solucionar esto,  vamos a Editar (1) y observamos que hay a la opción que indica: reparar paquetes rotos (2).

Si no es un problema grave se solucionará y se arreglará.


Puede ser interesante consultar más datos sobre el problema para ello abrimos Synaptic con el filtro de rotos y, sobre el paquete concreto roto señalado en rojo, presionamos el botón derecho del ratón sobre el paquete roto y accedemos a propiedades y podremos consultar el problema. Lo podemos ver a título de ejemplo en la dos imágenes siguientes, el paquete roto y las dependencias tanto las resueltas como las que no:



Para solucionar los paquetes rotos desde terminal hemos de seguir las siguientes órdenes:

$ sudo apt update
$ sudo apt autoremove
$ sudo apt autoclean
$ sudo apt install -f

O bien;

$ sudo apt  --fix-broken install
$ sudo apt dist-upgrade


Y si el problema no es muy grave quedará resuelto.

Observar, a nivel de ejemplo, el siguiente caso de dependencias no resueltas como apt nos guía hacia su resolución:


- Problema más grave

Si el problema es más grave, puede ser que todo lo anterior no funcione. Entonces el problema se complica y es una cuestión de paciencia para encontrar que programas faltan, esto suele producirse cuando se agregan repositorios de otras comunidades externos a la comunidad que substituyen librerías originales por otras adaptadas a los programas de ellos y, claro, al desinstalar uno de estos programas y ejecutar la orden "apt autoremove" desaparecen librerías y no se recuperan las anteriores y aquí aparece el problema de dependencias no resueltas.
 
Lo primero será inhabilitar  los repositorios externos que ayamos agregado.
 
Para lo cual simplemente  editamos el o los ficheros de la carpeta /etc/apt... y agregamos al inicio de la línea  el símbolo # para inhabilitarlo.

A partir que aquí debe estarse atentos a la información que suministra tanto Synaptic, como Aptitude como las acciones que realizamos desde el terminal que nos va indicando que dependencias no están resueltas.

Seguramente nos faltan librerías, deberemos conseguir instalarlas al principio  una a una  las que el sistema nos vaya permitiendo, ello es debido a que cuando intentamos instalar alguna nos dice que no continua porque depende de otras que no sabe resolver.


Se va probando hasta que se consigue que se instale alguna de las que nos faltan y así sucesivamente observaremos que cada vez se van instalando más de una. A medida que el sistema se recupera al instalar la siguiente ya va identificando todas las que faltan.

No hay reglas solo paciencia y, sobretodo,  ver con detalle que información nos va dando el sistema. Aptitude suele informar muy precisamente de las que faltan o tienen algún problema. Si os cuesta manipular Aptitude veis el problema que tenéis en Aptitude y instaláis desde terminal o Synaptic.


______________________________

Recordatorio simple de órdenes apt para terminal
  
Recordemos las órdenes apt más importantes que utilizamos en consola para gestionar programas del sistema.

$ sudo apt install: para instalar un paquete o software.
$ sudo apt remove: eliminar.
$ sudo apt purge: eliminar archivo de configuración, software paquete, etc.
$ sudo apt show: ver detalles de un paquete.
$ sudo apt search: buscar paquete.
$ sudo apt update: actualizar la lista de programas del sistema
$ sudo apt upgrade: actualizar los paquetes indicados en la lista anterior.
$ sudo apt dist-upgrade: actualizar paquetes incluyendo los que se tengan que desinstalar.
$ sudo apt autoclean: se elimina lo que no se usa.
$ sudo apt clean: limpiar archivos de descargas.
$ sudo apt --fix-broken install: resuelve, si puede, las dependencias no instaladas.
$ sudo  apt install -f, igual que la anterior pero menos precisa.