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 :
-
Dépendances non satisfaites après l'utilisation d'un référentiel de backports
:l'utilisateur
a inclus des sources pourwww.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
, maiswww.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. -
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-dessusapt-cache policy pkgname
vous le dira. -
dpkg / apt-get veut installer et écraser différents
packages :l'utilisateur a essayé
d'installer des packages même si sondpkg
sous-jacent la base de données était
cassée. Moral, si vous voyez des messages provenant dedpkg
que quelque chose
ou autre ne va pas avec vos colis, dans ce cas0 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. Siapt-get -f install
ne fonctionne pas, vous devrez peut-être
opérer sur ledpkg
niveau pour arranger les choses.