Ich habe mehrere Male Leute mit unerfüllten Abhängigkeiten gesehen, denen apt-get nicht direkt sagt, was das Problem ist, wie diese hier:
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
Ich weiß, dass beim Durchlaufen aller Abhängigkeiten apt-get install libgl1-mesa-dri:i386 libdrm-intel1:i386
bis ich treffe, ist etwas verfügbar, aber in diesem Fall wird es aufgrund der Menge an Paketen eine mühsame Arbeit sein. Gibt es einen einfacheren Weg, dies zu tun?
Akzeptierte Antwort:
Ein vernünftiger erster Versuch ist, apt zu fragen, warum es tut, was es tut. Dies kann mit dem -o Debug::pkgProblemResolver=yes
erfolgen Möglichkeit. Z. B.
apt-get -o Debug::pkgProblemResolver=yes install libgl1-mesa-dri:i386 libdrm-intel1:i386
Wenn apt nicht verfügbar ist, besteht der Standardansatz zum Debuggen solcher Probleme darin, die Prioritätsnummern der verfügbaren Versionen jedes Pakets zu überprüfen, das in der Fehlermeldung erwähnt wird. Dies geschieht üblicherweise mit apt-cache policy
.
Um beispielsweise nur den ersten Teil der Fehlermeldung zu verwenden, sollten Sie
ausführenapt-cache policy libgl1-mesa-dri:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libglapi-mesa:i386
Wie man dann vorgeht, hängt davon ab, was dies zeigt. Oft ist es auch sinnvoll, nur
auszuführenapt-cache policy
die alle verfügbaren Paketquellen zusammen mit ihren Prioritätsnummern anzeigt. Diese Informationen werden normalerweise in einer oder beiden von /etc/apt/sources.list
angegeben oder /etc/apt/sources.list.d
.
Leute, die hier Hilfe suchen, sollten zuerst die Ergebnisse dieser Befehle in ihrer Frage posten . Das wird wahrscheinlich genug Informationen sein, um das Problem zu bestimmen.
Verwandt:UpdatePanel DataTable-Problem?Beispiele aus der Praxis für Probleme:
-
Unerfüllte Abhängigkeiten nach Verwendung eines Backports
-Repositorys:Der Benutzer
hat Quellen fürwww.deb-multimedia.org
eingefügt , ohne es an eine niedrigere
Priorität anzuheften. Schließen Sie niemals Quellen von Drittanbietern ein, ohne sie einer
niedrigeren Priorität zuzuordnen. Beachten Sie, dass dies nicht notwendig sein sollte für
gut erzogene Repositories, die Pakete für die Standardversion
bereitstellen, aber fürwww.deb-multimedia.org
ist bekannt dafür,
nicht gut mit Debian zu spielen, und im Allgemeinen sollten Sie unbekannten Quellen nicht vertrauen.
Allgemeiner gesagt, wenn Sie wissen, dass ein Repository nicht dafür ausgelegt ist, mit Ihrem
System verwendet zu werden , fixieren Sie es mit einer niedrigeren Priorität. Z.B. Testen/Unstable-Quellen auf Debian
stable. -
Unerfüllte Abhängigkeiten:Der
Benutzer hat es irgendwie geschafft, eine Version von Python zu installieren, die nicht die
Standardversion auf seinem System war. Natürlich brach die Hölle los.
Moral der Geschichte, stellen Sie sicher, dass Sie nur Versionen von
Paketen installieren, die für Ihr System geeignet sind. Wie obenapt-cache policy pkgname
wird es dir sagen. -
dpkg / apt-get will anderes
Paket installieren und überschreiben:Der Benutzer hat versucht,
Pakete zu installieren, obwohl sein zugrundeliegenderdpkg
Datenbank war
defekt. Moral, wenn Sie Nachrichten sehen, die vondpkg
kommen dass etwas
in diesem Fall mit Ihren Paketen nicht stimmt0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 2 not fully installed or removed.
Ihre Paketdatenbank hat Probleme. Reparieren Sie sie zuerst, bevor Sie versuchen,
irgendetwas anderes zu installieren. Wennapt-get -f install
nicht funktioniert, müssen Sie möglicherweise
amdpkg
arbeiten Ebene, um Dinge zu reparieren.