GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué información necesito para resolver un problema de dependencia de Apt?

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:

  1. Dependencias no satisfechas después de usar un repositorio de backports
    :El usuario
    incluyó fuentes para www.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, pero www.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.

  2. 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 arriba apt-cache policy pkgname te lo diré.

  3. dpkg / apt-get quiere instalar y sobrescribir diferentes
    paquetes:El usuario intentó
    instalar paquetes a pesar de que su dpkg subyacente la base de datos estaba
    rota. Moraleja, si ves mensajes provenientes de dpkg que algo
    o lo otro anda mal con tus paquetes, en este caso

    0 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. Si apt-get -f install no funciona, es posible que deba
    operar en el dpkg nivel para arreglar las cosas.


Linux
  1. Seguridad de la información 101:lo que su empresa necesita saber

  2. ¿Qué es una VPN? Todo lo que necesita saber sobre las VPN

  3. Los módulos de Perl necesitan módulo::construir pero no está instalado

  4. ¿Qué necesito para leer bases de datos de Microsoft Access usando Python?

  5. Analizador de espectro de audio de Linux

Mostrar información de red en Linux usando la herramienta What IP

Lo que necesita saber sobre IPv6

Cómo comprobar qué versión del kernel de Linux estoy ejecutando

Cómo Solucionar una Clave Caducada (EXPKEYSIG) con Apt

¿Cuál es la diferencia entre el comando apt y apt-get?

¿Qué es la tabla de procesos de Linux? ¿En qué consiste?