Note à propos des doublons possibles :
À ma connaissance, ceci n'est pas un doublon de Comment résoudre les dépendances non satisfaites après avoir ajouté un PPA? sinon veuillez le prouver en résolvant le problème de test que je mentionne ci-dessous en utilisant n'importe quelle réponse de là-bas.
Contexte :
J'ai rencontré ce problème auparavant Comment réparer l'installation de wine sur Ubuntu 14.04.3LTS 64 bits. Il a été résolu par une révision manuelle/humaine de toutes les dépendances récursives du package cible (wine
).
Reproduire le problème (Cas de test) :
Créons la même situation, simplifiée avec juste 1 package problématique.
-
Installez une nouvelle Ubuntu 14.04 sur VirtualBox.
-
Ouvrez
software-properties-gtk
et activez le dépôtbackports
. -
Obtenez la liste des derniers packages
sudo apt-get update
-
Exécutez
apt-get -s install wine
pour confirmer quewine
peut être installé. -
Installez le package problématique
libcgmanager0
depuis backports$ apt-cache policy libcgmanager0 libcgmanager0: Installé : 0.24-0ubuntu5 Candidat : 0.24-0ubuntu7.5 Table de version : 0.39-2ubuntu2~ubuntu14.04.1 0 100 http://dz.archive.ubuntu.com/ubuntu/ trusty-backports/main amd64 Packages 0.24-0ubuntu7.5 0 500 http://dz.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages 0.24-0ubuntu7.1 0 500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages *** 0.24-0ubuntu5 0 500 http://dz.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages 100 /var/lib/dpkg/status
Forcer
apt
à installerlibcgmanager0
version0.39-2ubuntu2~ubuntu14.04.1
sudo apt-get install libcgmanager0=0.39-2ubuntu2~ubuntu14.04.1
Nous nous retrouvons maintenant dans la même situation que l'utilisateur de la question mentionnée dans le contexte, l'installation de wine échoue avec une dépendance non satisfaite, ne montrant que les packages de dépendance de premier niveau.
-
apt-get -s install wine
Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Certains paquets ne peuvent être installés. Cela peut signifier que vous avez demandé l'impossible ou, si vous utilisez la distribution unstable, que certains paquets n'ont pas encore été créés ou ne sont pas sortis d'Incoming. Les informations suivantes peuvent aider à résoudre la situation : Les paquets suivants contiennent des dépendances non satisfaites : wine : Dépend: wine1.6 mais ne sera pas installé E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».
-
apt-get -s install wine1.6
Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Certains paquets ne peuvent être installés. Cela peut signifier que vous avez demandé l'impossible ou, si vous utilisez la distribution unstable, que certains paquets n'ont pas encore été créés ou ne sont pas sortis d'Incoming. Les informations suivantes peuvent aider à résoudre la situation : Les paquets suivants contiennent des dépendances non satisfaites : wine1.6 : Dépend: wine1.6-i386 (= 1:1.6.2-0ubuntu4) E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».
-
apt-get -s install wine1.6-i386
Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Certains paquets ne peuvent être installés. Cela peut signifier que vous avez demandé l'impossible ou, si vous utilisez la distribution unstable, que certains paquets n'ont pas encore été créés ou ne sont pas sortis d'Incoming. Les informations suivantes peuvent aider à résoudre la situation : Les paquets suivants contiennent des dépendances non satisfaites : wine1.6-i386:i386 : Dépend: libglu1-mesa:i386 mais ne sera pas installé ou libglu1:i386 Dépend: libgphoto2-6:i386 (>= 2.5.2) mais ne sera pas installé Dépend: libgphoto2-port10:i386 (>= 2.5.2) mais ne sera pas installé Recommande: libsane:i386 mais ne sera pas installé E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».
Il n'est pas pratique de suivre les dépendances avec apt-get install
une par une.
Solution idéale :
Le vrai problème ici
apt
n'a pas pu installerlibcgmanager0:i386
version0.39-2ubuntu2~ubuntu14.04.1
parce que le dépôt backports a une priorité inférieure100
moins que la version0.24-0ubuntu7.5
du dépôtupdates
avec500
apt
n'a pas pu installerlibcgmanager0:i386
version0.24-0ubuntu7.5
parce quelibcgmanager0:amd64
est installé avec une version différente0.39-2ubuntu2~ubuntu14.04.1
La solution la plus rapide est de forcer l'installation de la même version i386 depuis backports
sudo apt-get install libcgmanager0:i386=0.39-2ubuntu2~ubuntu14.04.1
ou de le rétrograder (amd64) vers n'importe quelle version des dépôts réguliers
sudo apt-get install libcgmanager0=0.24-0ubuntu7.5
Méthodes/outils que j'ai essayés :
- La désactivation des PPA n'a aucun lien avec le problème.
- L'utilisation de
aptitude
en mode interactif, ne propose que des solutions avec de nombreuses suppressions (>200 !!!). - Utiliser
apt-get install
manuellement en suivant l'arbre des dépendances. Impraticable, car les dépendances de premier et deuxième niveau n'ont pas donné de message significatif sur le conflit. debfoster
peut générer les dépendances récursives mais seulement pour les packages déjà installés. Cependant,wine
n'est pas encore installé.
Sujet / Mes intérêts :
Disons que je veux installer wine sans connaître le problème du package libcgmanager0
(ou exactement libcgmanager0:amd64=0.39-2ubuntu2~ubuntu14.04.1
qui est déjà installé).
Je cherche une méthode de débogage ou un moyen de connaître le nom du package problématique et de comprendre rapidement ce qui s'est passé.
-
Comment déboguer les problèmes de dépendances non satisfaites en général?
Il y a peut-être de nouvelles options dans
dpkg
/apt
/aptitude
qui tracent le résolveur de dépendances interne. Cela peut montrerlibcgmanager0
dans sa sortie. -
S'il n'y a pas de réponse canonique à cela, quelqu'un pourrait-il me montrer une meilleure façon de générer la liste des dépendances récursives ou simuler le résolveur de dépendances avec plus de détails qui pourraient aider à résoudre le problème?
Pourquoi toutes les dépendances? Parce que je veux vérifier la sortie des commandes ci-dessous pour tous les packages en une seule fois.
apt-cache policy
apt-get -s install