GNU/Linux >> Tutoriels Linux >  >> Linux

De quelles informations ai-je besoin pour résoudre un problème de dépendance Apt ?

J'ai vu plusieurs fois des personnes avec des dépendances non satisfaites, dont apt-get ne dit pas directement quel est le problème, comme celui-ci :

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

Je sais que parcourir toutes les dépendances apt-get install libgl1-mesa-dri:i386 libdrm-intel1:i386 jusqu'à ce que je frappe quelque chose est disponible, mais dans ce cas, ce sera un travail pénible en raison de la quantité de colis. Existe-t-il un moyen plus simple de procéder ?

Réponse acceptée :

Une première chose raisonnable à essayer est de demander à apt pourquoi il fait ce qu'il fait. Cela peut être fait avec le -o Debug::pkgProblemResolver=yes option. Par exemple

apt-get -o Debug::pkgProblemResolver=yes install libgl1-mesa-dri:i386 libdrm-intel1:i386

Si apt n'est pas disponible, l'approche standard pour déboguer de tels problèmes consiste à vérifier les numéros de priorité des versions disponibles de chaque paquet mentionné dans le message d'erreur. Cela se fait généralement en utilisant apt-cache policy .

Par exemple, pour n'utiliser que la première partie du message d'erreur, vous devez exécuter

apt-cache policy libgl1-mesa-dri:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libglapi-mesa:i386

La manière dont on procède dépend alors de ce que cela montre. Il est souvent aussi utile d'exécuter simplement

apt-cache policy

qui affichera toutes les sources de paquets disponibles, ainsi que leurs numéros de priorité. Ces informations sont généralement spécifiées dans l'un ou les deux de /etc/apt/sources.list ou /etc/apt/sources.list.d .

Les personnes essayant d'obtenir de l'aide ici doivent d'abord publier les résultats de ces commandes dans leur question . Ce sera probablement assez d'informations pour déterminer le problème.

Connexe:Problème UpdatePanel DataTable?

Exemples concrets de problèmes :

  1. Dépendances non satisfaites après l'utilisation d'un référentiel de backports
     :l'utilisateur
    a inclus des sources pour www.deb-multimedia.org , sans l'épingler à une
    priorité inférieure. N'incluez jamais de sources tierces sans les épingler à une
    priorité inférieure. Notez que cela ne devrait pas être nécessaire pour
    les référentiels bien comportés qui fournissent des packages pour la version par défaut
    , mais www.deb-multimedia.org est bien connu pour ne pas jouer
    avec Debian, et en général, vous ne devriez pas faire confiance à des sources inconnues.
    Plus généralement, si vous savez qu'un dépôt n'est pas conçu pour être utilisé avec votre
    système , épinglez-le à une priorité inférieure. Par exemple. testing/unstable sources sur Debian
    stable.

  2. Dépendances non satisfaites :
    l'utilisateur a réussi à installer une version de python qui n'était pas la
    version par défaut sur son système. Naturellement, l'enfer s'est déchaîné.
    Morale de l'histoire, assurez-vous que vous n'installez que des versions de paquets
    qui sont correctes pour votre système. Comme ci-dessus apt-cache policy pkgname vous le dira.

  3. dpkg / apt-get veut installer et écraser différents
    packages :l'utilisateur a essayé
    d'installer des packages même si son dpkg sous-jacent la base de données était
    cassée. Moral, si vous voyez des messages provenant de dpkg que quelque chose
    ou autre ne va pas avec vos colis, dans ce cas

    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 2 not  
    fully installed or removed. 
    

    votre base de données de packages a des problèmes. Commencez par les corriger avant d'essayer d'installer
    quoi que ce soit d'autre. Si apt-get -f install ne fonctionne pas, vous devrez peut-être
    opérer sur le dpkg niveau pour arranger les choses.


Linux
  1. Sécurité de l'information 101 :ce que votre entreprise doit savoir

  2. Qu'est-il arrivé à /etc/apt/apt.conf ?

  3. Les modules Perl ont besoin du module ::Build mais n'est pas installé

  4. De quels outils ai-je besoin pour développer en ActionScript (sous Linux)

  5. Quel est l'équivalent de Posix popen() dans l'API Win32 ?

Afficher les informations réseau sous Linux à l'aide de What IP Tool

Ce que vous devez savoir sur IPv6

Comment vérifier quelle version du noyau Linux suis-je en cours d'exécution

Comment résoudre une clé expirée (EXPKEYSIG) avec Apt

Quelle est la différence entre la commande apt et apt-get ?

Qu'est-ce que la table des processus Linux ? En quoi cela consiste?