He visto varias veces a personas con dependencias no satisfechas, que apt-get no dice claramente cuál es el problema, como este:
The following packages have unmet dependencies:
libgl1-mesa-dri:i386 : Depends: libdrm-intel1:i386 (>= 2.4.38) but it is not going to be installed
Depends: libdrm-nouveau2:i386 (>= 2.4.38) but it is not going to be installed
Depends: libdrm-radeon1:i386 (>= 2.4.31) but it is not going to be installed
Depends: libdrm2:i386 (>= 2.4.38) but it is not going to be installed
Depends: libglapi-mesa:i386 but it is not going to be installed
libgl1-mesa-glx:i386 : Depends: libdrm2:i386 (>= 2.3.1) but it is not going to be installed
Depends: libglapi-mesa:i386 (= 9.2.1-1ubuntu3) but it is not going to be installed
Depends: libx11-6:i386 (>= 2:1.4.99.1) but it is not going to be installed
Depends: libxcb-dri2-0:i386 (>= 1.8) but it is not going to be installed
Depends: libxcb-glx0:i386 (>= 1.8) but it is not going to be installed
Depends: libxcb1:i386 but it is not going to be installed
Depends: libxdamage1:i386 (>= 1:1.1) but it is not going to be installed
Depends: libxext6:i386 but it is not going to be installed
Depends: libxfixes3:i386 but it is not going to be installed
Depends: libxxf86vm1:i386 but it is not going to be installed
Sé que recorrer todas las dependencias apt-get install libgl1-mesa-dri:i386 libdrm-intel1:i386
hasta que llegue algo está disponible, pero en este caso será un trabajo doloroso debido a la cantidad de paquetes. ¿Hay una manera más fácil de hacer esto?
Respuesta aceptada:
Una primera cosa razonable a intentar es preguntarle a apt por qué está haciendo lo que está haciendo. Esto se puede hacer con -o Debug::pkgProblemResolver=yes
opción. Por ejemplo
apt-get -o Debug::pkgProblemResolver=yes install libgl1-mesa-dri:i386 libdrm-intel1:i386
Si apt no está disponible, el enfoque estándar para depurar tales problemas es verificar los números de prioridad de las versiones disponibles de cada paquete mencionado en el mensaje de error. Esto se hace comúnmente usando apt-cache policy
.
Por ejemplo, para usar solo la primera parte del mensaje de error, debe ejecutar
apt-cache policy libgl1-mesa-dri:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libglapi-mesa:i386
Cómo se procede entonces depende de lo que esto muestre. A menudo también es útil ejecutar solo
apt-cache policy
que mostrará todas las fuentes de paquetes disponibles, junto con sus números de prioridad. Esta información generalmente se especifica en uno o ambos de /etc/apt/sources.list
o /etc/apt/sources.list.d
.
Las personas que intentan obtener ayuda aquí deben publicar primero los resultados de estos comandos en su pregunta. . Es probable que sea suficiente información para determinar el problema.
Relacionado:¿Problema de UpdatePanel DataTable?Ejemplos de problemas de la vida real:
-
Dependencias no satisfechas después de usar un repositorio de backports
:El usuario
incluyó fuentes parawww.deb-multimedia.org
, sin fijarlo a una prioridad
inferior. Nunca incluya fuentes de terceros sin anclarlas a una
prioridad más baja. Tenga en cuenta que esto no debería ser necesario para
repositorios de buen comportamiento que proporcionan paquetes para la versión
predeterminada, perowww.deb-multimedia.org
es bien conocido por no jugar
bien con Debian y, en general, no debe confiar en fuentes desconocidas.
Más generalmente, si sabe que un repositorio no está diseñado para usarse con su sistema
, fíjelo en una prioridad más baja. P.ej. pruebas/fuentes inestables en Debian
estable. -
Dependencias no satisfechas:el usuario
de alguna manera logró instalar una versión de python que no era la versión
predeterminada en su sistema. Naturalmente, se desató el infierno.
Moraleja de la historia, asegúrese de que solo está instalando versiones de
paquetes que son correctos para su sistema. Como arribaapt-cache policy pkgname
te lo diré. -
dpkg / apt-get quiere instalar y sobrescribir diferentes
paquetes:El usuario intentó
instalar paquetes a pesar de que sudpkg
subyacente la base de datos estaba
rota. Moraleja, si ves mensajes provenientes dedpkg
que algo
o lo otro anda mal con tus paquetes, en este caso0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 2 not fully installed or removed.
su base de datos de paquetes tiene problemas. Primero arréglalos, antes de intentar instalar
cualquier otra cosa. Siapt-get -f install
no funciona, es posible que deba
operar en eldpkg
nivel para arreglar las cosas.