GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Welche Informationen benötige ich, um ein Apt-Abhängigkeitsproblem zu lösen?

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ühren
apt-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ühren
apt-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:

  1. Unerfüllte Abhängigkeiten nach Verwendung eines Backports
    -Repositorys:Der Benutzer
    hat Quellen für www.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ür www.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.

  2. 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 oben apt-cache policy pkgname wird es dir sagen.

  3. dpkg / apt-get will anderes
    Paket installieren und überschreiben:Der Benutzer hat versucht,
    Pakete zu installieren, obwohl sein zugrundeliegender dpkg Datenbank war
    defekt. Moral, wenn Sie Nachrichten sehen, die von dpkg kommen dass etwas
    in diesem Fall mit Ihren Paketen nicht stimmt

    0 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. Wenn apt-get -f install nicht funktioniert, müssen Sie möglicherweise
    am dpkg arbeiten Ebene, um Dinge zu reparieren.


Linux
  1. Was ist ein VPN? Alles, was Sie über VPNs wissen müssen

  2. Perl-Module benötigen Module::Build, sind aber nicht installiert

  3. Welche Tools benötige ich zum Entwickeln in ActionScript (unter Linux)

  4. Was ist das Äquivalent zu Posix popen() in der Win32-API?

  5. Was benötige ich, um Microsoft Access-Datenbanken mit Python zu lesen?

Zeigen Sie Netzwerkinformationen in Linux mit What IP Tool an

Was Sie über IPv6 wissen müssen

So überprüfen Sie, welche Linux-Kernel-Version ich verwende

So lösen Sie einen abgelaufenen Schlüssel (EXPKEYSIG) mit Apt

Was ist der Unterschied zwischen apt und dem Befehl apt-get?

Was ist die Linux-Prozesstabelle? Woraus besteht es?