En Linux es muy común que una instalación falle con mensajes como “no se pueden resolver las dependencias”, “el paquete requerido no está disponible” o “hay conflicto con otro paquete”. Esto no significa solamente que una aplicación concreta no puede instalarse. Muchas veces indica que el estado de los paquetes del sistema ya se ha vuelto inconsistente. Gestores de paquetes como apt, dnf y pacman funcionan suponiendo que bibliotecas, runtimes y paquetes auxiliares existen en combinaciones de versión compatibles. Cuando esa cadena se rompe, la instalación se detiene.
Lo importante es no tratar un error de dependencias como un problema pequeño del tipo “solo falta instalar una cosa más”. Detrás puede haber cachés dañadas, repositorios antiguos, mezcla de fuentes de terceros, actualizaciones interrumpidas, actualizaciones parciales, paquetes retenidos, bibliotecas instaladas a mano o conflictos de arquitectura. Por eso no conviene borrar archivos sin criterio ni descargar paquetes .deb o .rpm aleatorios desde sitios dudosos. Primero hay que entender qué dependencia falla exactamente y por qué.
Qué es un error de dependencias
La mayoría de los paquetes en Linux no funcionan de forma aislada. Un programa puede requerir bibliotecas concretas, una versión determinada de un runtime, herramientas auxiliares u otros componentes del sistema. Si falta alguno de ellos o si la versión disponible no coincide con lo solicitado, el gestor de paquetes detiene la instalación para no empeorar el estado del sistema.
Por eso, un error de dependencias no significa solo que “falta algo”. También puede significar que dos condiciones no pueden cumplirse al mismo tiempo, que un paquete entra en conflicto con otro o que las versiones disponibles ya no forman una combinación coherente.
Síntomas frecuentes
- Aparecen mensajes con
Depends:,requiresounresolved dependency - El sistema habla de paquetes rotos o dependencias imposibles de resolver
- Al intentar instalar un paquete, se pide eliminar otros
- Se necesita una biblioteca concreta, pero no existe la versión adecuada
- Después de una actualización, las instalaciones empiezan a fallar
- Los problemas aparecen tras añadir un repositorio de terceros
- Después de una actualización parcial, el sistema queda incoherente
Qué conviene comprobar primero
A veces parece un error de dependencias, pero en realidad el problema está en la red, en el DNS o en los mirrors. Por eso, lo primero es verificar si el acceso a los repositorios funciona bien.
ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route
Después conviene comprobar si la actualización de las listas de paquetes se completa sin errores.
sudo apt update
sudo dnf makecache
sudo pacman -Sy
Si aquí ya aparecen errores 404, problemas de resolución de nombres, errores de firma o timeouts, entonces la causa real puede no estar directamente en las dependencias.
Principales causas de los errores de dependencias
1. Mezcla de repositorios
Es una de las causas más habituales. Los repositorios oficiales, PPAs antiguos, repositorios de otra versión de la distribución, fuentes de pruebas o repositorios de terceros pueden ofrecer el mismo nombre de paquete con versiones y reglas de dependencias distintas. El resultado es que un paquete exige una biblioteca nueva y otro solo funciona con una antigua, y ambas condiciones no pueden cumplirse al mismo tiempo.
2. Actualización interrumpida
Si una actualización se corta por un apagón, un terminal cerrado, una sesión SSH interrumpida o un fallo del entorno gráfico, una parte del sistema queda actualizada y otra parte no. Ese estado intermedio suele romper fácilmente la cadena de dependencias.
3. Actualización parcial
Esto es especialmente conocido en Arch Linux, donde las actualizaciones parciales están fuertemente desaconsejadas. Pero también en Debian, Ubuntu o Fedora puede ocurrir si se fuerzan versiones nuevas de algunos paquetes clave sin actualizar el resto del sistema.
4. Paquetes retenidos o fijados
Si un paquete está retenido o anclado a una versión concreta, otros paquetes pueden no ser capaces de avanzar a la versión que necesitan. Así se bloquea toda la cadena de dependencias.
5. Instalaciones manuales fuera del gestor de paquetes
Instalar bibliotecas manualmente, copiar archivos a mano o usar paquetes sueltos sin una gestión limpia de fuentes puede provocar que el estado real del sistema no coincida con lo que el gestor de paquetes cree que está instalado.
6. Paquetes en conflicto
No todo error de dependencias significa que falte algo. A veces el problema es que dos paquetes no pueden coexistir porque proporcionan el mismo archivo o porque, por diseño, son incompatibles entre sí.
7. Incompatibilidad de arquitectura
Puede que el paquete exista, pero no para la arquitectura correcta. Mezclar 32 y 64 bits sin la configuración adecuada, o intentar usar un paquete de otra arquitectura, también puede presentarse como error de dependencias.
8. Caché o metadatos incoherentes
Listas de paquetes antiguas, cachés dañadas o metadatos desincronizados pueden hacer que el gestor no “vea” una dependencia que realmente sí existe en el repositorio.
Qué revisar en sistemas apt
En Debian y Ubuntu hay que mirar no solo apt, sino también el estado de dpkg.
Reparar estados incompletos
sudo dpkg --configure -a
sudo apt --fix-broken install
Después de una actualización interrumpida, estos dos comandos suelen ser el primer paso correcto.
Ver paquetes retenidos
apt-mark showhold
Un paquete retenido puede bloquear toda la cadena de dependencias.
Comprobar versiones y procedencia
apt-cache policy nombre-del-paquete
Esto ayuda a ver qué versiones existen y desde qué repositorios llegan.
Qué revisar en sistemas dnf
En Fedora y RHEL es importante comprobar la integridad del estado del sistema y la historia de transacciones.
Comprobar el estado actual
sudo dnf check
Sirve para detectar dependencias no satisfechas en el conjunto del sistema.
Sincronizar con el estado esperado de la distribución
sudo dnf distro-sync
Si unas versiones quedaron adelantadas y otras atrasadas, esto puede devolver el sistema a un estado coherente.
Ver requisitos no satisfechos
sudo dnf repoquery --unsatisfied
Permite identificar mejor qué dependencias no se están cumpliendo.
Qué revisar en sistemas pacman
En Arch Linux es especialmente importante recuperar la coherencia completa del sistema y evitar las actualizaciones parciales.
Actualizar todo el sistema
sudo pacman -Syu
Cuando ya existe un error de dependencias, intentar actualizar paquetes individuales suele empeorar la situación.
Refrescar la base de sincronización
sudo pacman -Syy
Es útil cuando la información local ya no coincide con los mirrors.
Los logs son clave
Un error de dependencias rara vez se entiende mirando solo la última línea. Hay que ver qué paquete exige qué versión, qué candidato fue descartado y por qué.
apt / dpkg
sudo tail -n 100 /var/log/apt/history.log
sudo tail -n 100 /var/log/dpkg.log
dnf
sudo journalctl -xe --no-pager | tail -n 100
sudo dnf history
pacman
sudo tail -n 100 /var/log/pacman.log
Orden práctico para diagnosticar
Paso 1: Comprobar red y acceso a repositorios
ping -c 4 8.8.8.8
ping -c 4 google.com
Paso 2: Actualizar listas de paquetes
sudo apt update
sudo dnf makecache
sudo pacman -Syy
Paso 3: Reparar estados incompletos
En apt con dpkg --configure -a, en dnf con dnf check y en pacman con un enfoque de sincronización completa.
Paso 4: Revisar versiones y fuentes del paquete problemático
Hay que identificar de qué repositorio viene, qué versiones existen y si alguna está retenida.
Paso 5: Sospechar de repositorios de terceros y configuraciones antiguas
Muchísimos errores de dependencias nacen en realidad de una mezcla incorrecta de fuentes.
Qué conviene evitar
- Instalar paquetes adicionales al azar sin entender el error
- Descargar .deb / .rpm sueltos desde sitios poco fiables
- Seguir haciendo actualizaciones parciales
- Desactivar la verificación de firmas o dependencias
- Añadir más repositorios de terceros sin conocer la causa
Cómo evitar que vuelva a pasar
- Usar preferentemente repositorios oficiales
- No conservar PPAs viejos o fuentes incorrectas
- No interrumpir las actualizaciones
- Evitar actualizaciones parciales en Arch
- Crear snapshots o copias de seguridad antes de grandes cambios
Conclusión
Cuando en Linux no se puede instalar software por errores de dependencias, el problema suele ser más profundo que la simple falta de una biblioteca. Mezcla de repositorios, actualizaciones interrumpidas, actualizaciones parciales, paquetes retenidos, instalaciones manuales y conflictos de arquitectura son causas muy comunes. La clave es leer el error con atención y entender qué paquete necesita qué versión y por qué el sistema no puede proporcionarla. Solo después conviene aplicar la estrategia correcta: dpkg --configure -a y apt --fix-broken install en apt, dnf check y distro-sync en dnf, y sincronización completa con actualización total en pacman.