Es posible que cuando intentas instalar un paquete en Linux encuentres una temida línea que dice E: “Incapaz de corregir los problemas, has tenido paquetes rotos”. La instalación entonces se niega a progresar más allá de este punto. Puede encontrar esto en cualquier distribución de Linux que use apt-get para manejar paquetes, que incluye Debian así como los diversos spin-offs de Linux Mint y Ubuntu.
Es causado por dependencias rotas, que son un efecto secundario de tener paquetes instalados que dependen de otros paquetes que no están instalados. Cuando apt-get va a instalar algo, se da cuenta de que no tiene acceso a algo que necesita y por lo tanto no puede continuar. Unos cuantos trucos básicos de línea de comandos, así como una herramienta gráfica, pueden arreglar todo rápidamente.
Método 1: Usando dpkg -configure para arreglar paquetes rotos retenidos
Mientras trabaja en la terminal, intente ejecutar sudo dpkg -configure -a para iniciar un proceso de actualización automático que busque cualquier dependencia rota en su sistema causada por paquetes que no estén instalados. Esta herramienta debería instalar automáticamente cualquier paquete que crea que te falta sin la intervención del usuario, aunque si se te pide que instales algo, debes pulsar la tecla y para responder al mensaje.
Si no encuentra ningún paquete roto, entonces no debería ver ninguna salida. Hemos ejecutado esto en una máquina de prueba limpia que ejecuta Xubuntu, por lo que no encontró ningún error, pero si has estado teniendo problemas de “Incapaz de corregir los problemas, has retenido paquetes rotos” entonces esto podría encontrar varios paquetes que necesitas instalar. Una vez que lo hayas ejecutado, intenta sudo apt-get install -f desde la línea de comandos.
Este programa pasará y construirá una lista de dependencia y luego leerá la información del estado. Si recibes un mensaje diciendo que había paquetes “0 actualizado, 0 recién instalado, 0 para eliminar y 0 no actualizado”, entonces o bien estabas trabajando sin dependencias rotas o el comando anterior lo arregló todo. En este punto, puedes ejecutar sudo apt-get clean && sudo apt-get update seguido de sudo apt-get upgrade para actualizar todos los paquetes de tu sistema. Esto puede llevar un tiempo, dependiendo de cuánto tiempo su sistema haya tenido estos problemas con los paquetes.
Método 2: Usando el comando dist-upgrade
Si recibes un mensaje diciendo que “algunos paquetes han sido retenidos” por lo que no pudiste completar con éxito el comando anterior, entonces deberías ejecutar sudo apt-get dist-upgrade para instalar el resto de estos paquetes. Además de realizar la función de una actualización regular, la opción dist-upgrade maneja las dependencias cambiadas con las nuevas versiones de los paquetes. Dado que apt-get tiene un sistema especial de conflictos, normalmente intenta actualizar los paquetes más importantes a costa de no hacer nada con los menos vitales para su sistema. El uso de este comando obliga incluso a aquellos a actualizar.
Dicho esto, si no se detectan paquetes rotos, acabará con un tercer mensaje sobre que no hay nada actualizado ni nada nuevo instalado. Si este es el caso, entonces podrías intentar sudo apt-get upgrade de nuevo para que si hubiera algún cambio la subrutina de actualización automática pueda hacerse cargo. Por otro lado, si conoces el nombre específico del paquete que necesitas, entonces podrías instalarlo manualmente.
Por ejemplo, supongamos que el componente de tiempo de ejecución de GNUStep era lo que le faltaba, ya que quería usar la síntesis de voz. Podrías simplemente escribir sudo apt-get install gnustep-gui-runtime para instalar este vital paquete. Tenga en cuenta que esto es sólo un ejemplo y podría reemplazar gnustep-gui-runtime con el nombre de cualquier paquete que necesite instalar. Las distribuciones modernas basadas en el estándar apt-get tienen varios miles de paquetes, pero mientras sepa el nombre del que está buscando esto lo obligará a instalarlo.
Método 3: Arreglar los paquetes rotos con Synaptic
Si tienes el gestor gráfico de paquetes Synaptic, también puedes usar esta herramienta para arreglar cualquier paquete roto que tengas. Abre el programa y luego selecciona el menú desplegable Editar lista de selección. Deberías tener la opción “Arreglar paquetes rotos” en este menú, así que selecciónala si la tienes. No tardará mucho en ejecutarse si no hay muchos paquetes rotos, pero podría encontrar una serie de errores que ralentizarían la ejecución.
Una vez que termine de recorrer todo, notará las palabras “Problemas de dependencia arreglados con éxito” en la línea de estado final.
Ahora puedes actualizar e instalar los paquetes como de costumbre. La mayoría de los usuarios sólo harán las cosas de esta manera si ya estaban trabajando en Synaptic, pero está ahí cuando lo necesitas. Una vez que se ejecuta, puedes cerrar Synaptic y trabajar desde la línea de comandos de nuevo o continuar haciendo cambios aquí.