Wenn ich etwas installiere, erhalte ich gelegentlich eine Fehlermeldung wie die folgende:
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
package1 : Depends: package2 (>= 1.8) but 1.7.5-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.
Wie kann ich das beheben?
Antworten:
APT ist ein Paketverwaltungssystem für Debian und andere darauf basierende Linux-Distributionen wie Ubuntu. Zum größten Teil ist APT für die Installation, Deinstallation und Aktualisierung von Paketen einfach zu verwenden. In seltenen Fällen, wenn Sie Abhängigkeiten von Drittanbietern einbinden,
apt-get
kann es vorkommen, dass Ihnen eine Fehlermeldung angezeigt wird, dass eine Paketinstallation nicht abgeschlossen werden konnte.Lösungen:
Es ist immer eine gute Idee, Konfigurationsdateien wie
/etc/apt/sources.list
diese zu sichern, damit Sie die Änderungen bei Bedarf rückgängig machen können.Wenn das
error
so aussieht:<some-package>: Depends: <other-package> (= version) but this-version is to be installed
Stellen Sie dann sicher, dass die Repositorys
restricted
unduniverse
aktiviert sind. Drücken Sie Alt+ F2, tippen Siesoftware-properties-gtk
und drücken Sie Enter.Unter
Ubuntu Software
Registerkarte aktivieren Sie alle Repositories.Eine mögliche Ursache für nicht erfüllte Abhängigkeiten könnte eine beschädigte Paketdatenbank sein und / oder einige Pakete wurden nicht ordnungsgemäß installiert. Um dieses Problem zu beheben, drücken Sie Alt+ Ctrl+ T, um das Terminal zu öffnen, und versuchen Sie, einen der folgenden Befehle auszuführen:
oder,
apt-get clean
Löscht das lokale Repository der abgerufenen Paketdateien (die .deb-Dateien). Es entfernt alles außer der Sperrdatei aus / var / cache / apt / archives / und / var / cache / apt / archives / partial /.apt-get autoclean
Löscht das lokale Repository von abgerufenen Paketdateien, entfernt jedoch im Gegensatzapt-get clean
dazu nur Paketdateien, die nicht mehr heruntergeladen werden können und größtenteils unbrauchbar sind.Eine der grundlegendsten Korrekturen zur Behebung von Abhängigkeitsproblemen besteht darin, Folgendes auszuführen:
Das
-f
hier steht für "fix broken".Apt
wird versuchen, defekte Abhängigkeiten zu korrigieren. Wenn Sie ein Paket mit nicht erfüllten Abhängigkeiten manuell installiert haben,apt-get
werden diese Abhängigkeiten nach Möglichkeit installiert. Andernfalls wird möglicherweise einfach das installierte Paket entfernt, um das Problem zu beheben.Dann renne:
Führen Sie dies dann erneut aus:
Wenn die Ausgabe ist:
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Das heißt, es ist gescheitert.
Die nächste Lösung lautet:
Wenn angehaltene Pakete angezeigt werden, sollten Sie diese entfernen. Pakete werden aufgrund von Abhängigkeitskonflikten zurückgehalten,
apt
die nicht aufgelöst werden können. Versuchen Sie diesen Befehl, um die Konflikte zu finden und zu reparieren:Wenn es die Konflikte nicht beheben kann, wird es beendet mit:
0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.
Löschen Sie die angehaltenen Pakete nacheinander
dist-upgrade
, bis keine angehaltenen Pakete mehr vorhanden sind. Installieren Sie dann alle benötigten Pakete neu. Stellen Sie sicher--dry-run
, dass Sie die Option verwenden, damit Sie umfassend über die Konsequenzen informiert sind:Da das Entfernen des Pakets, das Sie installieren möchten, möglicherweise nicht ideal ist, können Sie auch versuchen, ein Repository mit den Paketen zu finden, die Sie zur Erfüllung der Abhängigkeiten benötigen.
Wenn alles andere fehlschlägt, können Sie versuchen, die Abhängigkeiten selbst zu erfüllen, indem Sie entweder die erforderlichen Pakete suchen und installieren oder sie aus dem Quellcode installieren und dann deb- Pakete für sie erstellen .
Deaktivieren / Entfernen / Löschen von PPAs:
PPAs (Personal Package Archive) sind auf Launchpad gehostete Repositorys . Sie können PPAs verwenden, um Pakete zu installieren oder zu aktualisieren, die nicht in den offiziellen Ubuntu-Repositories verfügbar sind.
Eine der häufigsten Ursachen für nicht erfüllte Abhängigkeiten sind PPAs, insbesondere beim Upgrade des vorhandenen Pakets in Ubuntu-Repositorys. Um das Problem zu lösen, haben Sie drei Möglichkeiten: Deaktivieren, Löschen (Zurücksetzen auf das ursprüngliche Paket in Ubuntu-Repositorys) oder Entfernen von PPA.
Deaktivieren:
Das Deaktivieren einer PPA bedeutet, dass für die von dieser PPA installierten Pakete keine Updates mehr durchgeführt werden. So deaktivieren Sie eine PPA: Öffnen Sie
Software Center > Edit > Software Sources
oder,Drücke Alt+ F2und renne
software-properties-gtk
.Wenn Sie auf die
Other Software
Registerkarte klicken , sehen Sie, dass jede PPA hier zwei Zeilen enthält, eine für die kompilierten Pakete und eine für die Quelle.Uncheck
Beide Zeilen deaktivieren eine PPA. Hier können Sie auch PPAs hinzufügen und entfernen.Reinigen:
Eine PPA bereinigen bedeutet, dass die Pakete in der ausgewählten PPA auf die Version in den offiziellen Ubuntu-Repositories heruntergestuft und diese PPA deaktiviert werden. PPA Purge macht genau das. Führen Sie den folgenden Befehl aus, um PPA Purge zu installieren:
Wenn man bedenkt, dass die Frage nicht
apt
funktioniert, schlägt der obige Befehl fehl. Also benutze diesen BefehlSo verwenden Sie PPA Purge:
Wenn ‚ppa-purge‘ Befehl aus irgendeinem Grund ausfällt, können Sie nicht ‚ppa-purge‘ erneut ausführen , wenn Sie die PPA wieder aktivieren (um die PPA folgen die gleichen Schritte wie eine PPA deaktivieren und aktivieren Sie
Check
die beiden Linien eines bestimmten PPA, um es zu aktivieren).Hinweis:
PPA Purge
Entfernt keine PPAs ( möglicherweise in Zukunft ). Sie müssen die PPAs daher manuell entfernen.Entfernen:
Wenn das von einem PPA installierte Paket in offiziellen Ubuntu-Repositories nicht vorhanden
PPA Purge
ist , wird die Verwendung nicht empfohlen, da es nichts gibt, was heruntergestuft werden könnte, undPPA Purge
es auch nicht löschen würde. Führen Sie die folgenden Befehle aus, um einen PPA und installierte Pakete zu entfernen: (Ignorieren Sie den ersten Befehl, wenn Sie die installierten Pakete nicht entfernen möchten.)Alternativ können Sie
Y PPA Manager
PPAs deaktivieren / entfernen / entfernen (Details am Ende der Antwort).Vorsichtsmaßnahmen:
Wie können wir also verhindern, dass dies überhaupt geschieht?
Halten Sie Ubuntu auf dem Laufenden. Ubuntu benachrichtigt automatisch, wenn Updates verfügbar sind. Sie können auch nach verfügbaren Updates suchen, indem Sie
Session Indicator
im Unity-Bedienfeld auf klicken :Oder drücken Sie Alt+ Ctrl+ T, um das Terminal zu öffnen und die folgenden Befehle auszuführen:
Update: Synchronisiert Ihre Liste der verfügbaren Pakete mit den Servern in den Quellrepositorys. Upgrade: Lädt neuere Versionen Ihrer installierten Pakete herunter und installiert sie.
Entfernen Sie doppelte PPAs.
Y PPA Manager
(Installationsanleitung am Ende der Antwort) kann doppelte PPAs leicht scannen und entfernen.y-ppa-manager
Y PPA Manager aus.Advanced
.Scan and remove duplicate PPAs
Sie im daraufhin angezeigten Fenster und klicken Sie auf OK.Hilfe bekommen:
Wenn Sie in Askubuntu oder einem anderen Hilfeforum um Hilfe bitten , sollten Sie die Ausgabe der folgenden Befehle in Ihre Frage einbeziehen :
Ausgabe des aktuellen Fehlers:
Daraufhin wird Ihre sources.list angezeigt:
Dies zeigt die Liste der PPAs (falls vorhanden):
Zusätzliche Quellen:
Y PPA Manager : Y PPA Manager ist ein One-Stop-Shop für alle Ihre PPA-Anforderungen.
Hier sind einige seiner Funktionen:
Um zu installieren
Y PPA Manager
, öffne das Terminal indem du Alt+ Ctrl+ drückst Tund führe die folgenden Befehle aus:In Anbetracht der Frage,
apt
ist kaputt, verwenden Sie stattdessen diese Befehleund
32 Bit:
64 Bit:
quelle
Ist es wirklich kaputt?
Führen Sie den folgenden Befehl aus und versuchen Sie, die Software, die Sie installieren wollten, erneut zu installieren
Pre-Performance-Schritte
Sichern
Sichern Sie die folgenden Dateien:
/etc/apt/sources.list
/var/lib/dpkg/status
Verwenden Sie dazu diese Befehle
und
Leeren Sie Ihren Apt-Cache
apt
Bewahrt einen Cache mit kürzlich heruntergeladenen Paketen auf, um Bandbreite zu sparen, wenn diese installiert werden müssen. Dies kann in einigen Fällen kontraproduktiv seinZum Reinigen haben Sie zwei Möglichkeiten
Dadurch werden alle zwischengespeicherten Pakete entfernt, die zum Ordner gehören,
/var/cache/apt/archives/
mit/var/cache/apt/archives/partial
Ausnahme der .lock-Dateien. Dies wird empfohlenDieser scannt die Ordner
/var/cache/apt/archives/
und/var/cache/apt/archives/partial
und prüft , ob das Paket noch in den Repositories und entfernt diejenigen , die nicht sindAbhängigkeiten beheben
Verwenden des Fix-Break-Modus von apt
Dies führt dazu, dass apt nach fehlenden Abhängigkeiten sucht und diese aus den Repositorys behebt
Wenn in der Ausgabe angegeben wird, dass nichts Neues installiert oder aktualisiert wurde, ist ein Fehler aufgetreten.
Überprüfen Sie, ob alle erforderlichen Quellen aktiviert sind
Geben
gksu software-properties-gtk
Sie ein und Sie erhalten dieses FensterStellen Sie sicher, dass alle Quellen aktiviert sind.
Gehen Sie als nächstes zur Registerkarte Andere Software und überprüfen Sie, ob die erforderlichen PPAs für die zu installierende Software vorhanden und aktiviert sind. Deaktivieren Sie auch einige PPAs, bei denen möglicherweise Pakete beschädigt sind
jetzt renn
sudo apt-get update
Versuchen Sie jetzt, die Software zu installieren
Auswählen eines besseren Servers zum Herunterladen
Geben
gksu software-properties-gtk
Sie ein und Sie erhalten dieses FensterKlicken Sie im Dropdown-Feld auf Download und wählen Sie eine andere aus
Klicken Sie auf Select Best Server
Lauf
sudo apt-get update
Versuchen Sie, die Software zu installieren
Versuchen Sie es auch mit
sudo apt-get install -f
PPA Purge
Dies ist ein Tool, das verwendet wird, um defekte / unerwünschte PPAs und deren Anwendungen zu entfernen
Um es zu installieren, führen Sie es aus
Wenn man bedenkt, dass die Frage nicht
apt
funktioniert, schlägt der obige Befehl fehl. Also benutze diesen BefehlVerwenden Sie jetzt ppa purge
Y-PPA Manager
Y-PPA Manager ist eine GUI-App, mit der Sie PPAs und verschiedene damit verbundene Probleme verwalten können
Um es zu installieren
und
und
In Anbetracht der Frage,
apt
die nicht funktioniert, verwenden Sie stattdessen diesen Befehlund
32 Bit:
64 Bit:
Geben Sie jetzt ein
y-ppa-manager
Ihnen wird dieses Fenster angezeigt
Doppelklicken Sie auf Erweitert, und Sie erhalten dieses Fenster
Führen Sie die folgenden Aufgaben aus, die schwarz umrissen sind
Vorbeugung ist besser als Heilung
Es ist besser zu verhindern, als auf AskUbuntu nach dieser Frage zu suchen: D
Hier sind die Richtlinien, um Sie zu schützen
Halten Sie Ihr System auf dem neuesten Stand
Führen Sie den folgenden Befehl immer regelmäßig aus
Mit diesem Befehl können Sie auch immer den Update Manager verwenden
Verwenden Sie nur vertrauenswürdige PPAs
Verwenden Sie nur PPAs, die auch unter Ubuntu verwendet werden sollen. Verwenden Sie nur PPAs mit vertrauenswürdigen Quellen. Tatsächlich befindet sich das Paket möglicherweise bereits in den Ubuntu-Repositorys
Sichern, wenn die Dinge gut sind und später wiederherstellen
Hierzu benötigen Sie den Y-PPA-Manager. Die Installationsschritte sind oben angegeben.
Führen Sie diesen Befehl aus, um Y-PPA-Manager zu öffnen
Ihnen wird dieses Fenster angezeigt
Doppelklicken Sie auf Erweitert, und Sie erhalten dieses Fenster
Führen Sie Folgendes aus:
Sie werden aufgefordert, eine tar.gz-Datei mit einem Dialogfeld zu speichern, das dem folgenden ähnelt. Speichern Sie es in einer anderen Partition oder an einem sicheren Ort
Wenn Sie es später erneut wiederherstellen müssen, befolgen Sie ähnliche Schritte. Wenn Sie zum erweiterten Dialogfeld gelangen, klicken Sie auf Folgendes:
Sie werden aufgefordert, die zuvor gespeicherte Sicherung mit einem ähnlichen Dialogfeld wie dem folgenden wiederherzustellen
Funktioniert immer noch nicht?
Paketabhängigkeitsfehler sind nicht immer allgemein und hängen vom zu installierenden Paket ab.
Wenn das Befolgen aller Schritte zur Behebung des Fehlers bei Ihnen nicht funktioniert, können Sie immer auf Ask Ubuntu nachfragen
Hier sind einige Befehle, deren Ausgabe Sie veröffentlichen müssen
und
und
(Danke an Basharat Sial )
Es gibt auch andere Dateien / Befehle, deren Ausgabe möglicherweise fehlerspezifisch ist, und Benutzer werden Sie wahrscheinlich in den Kommentaren auffordern, die Datei / den Befehl zu veröffentlichen.
quelle
apt-get update
Nähe der Spitze der Liste setzen. Manchmal hat Ihr System ein Update durchgeführt, bei dem ein neueres Paket remote aktualisiert wurde, aber eines, von dem es abhängt, ist noch nicht fertig. Oder die Version, die Sie in Ihrem lokalen Cache haben, wurde aktualisiert. In diesen Fällenapt-get update
aktualisiert ein einfacher Befehl Ihren lokalen Cache und Sie können weitermachen.apt-get install -f
es nicht behoben habe.-f
Flagge für Kraft steht und es immer vermieden, sie zu verwendenBisher konzentrieren sich diese Antworten auf die automatische Behebung eines solchen Problems, hauptsächlich in der Hoffnung, dass es sich von selbst beheben lässt, nicht jedoch auf das Verständnis, wie Abhängigkeiten untersucht werden können. Es ist wichtig, Dinge zu versuchen, wie sicherzustellen, dass Ihre Paketlisten auf dem neuesten Stand sind, denn Sie müssen sicherstellen, dass ein einfaches Update oder Löschen des Caches das Problem nicht behebt, bevor Sie tiefer gehen. Wenn alles hinter den Kulissen funktioniert, wie es sollte, ist es wichtig zu lernen, wie man Abhängigkeiten versteht. Manchmal scheinen die Ebenen der Abhängigkeiten überwältigend zu sein, aber das Konzept ist einfach und der Schlüssel zum Verständnis, wie Software in einem Ubuntu-System installiert / deinstalliert wird.
Ich kann Aptitude jedem empfehlen , der ein .deb-basiertes System wie Ubuntu verwendet. Die Baumstruktur ermöglicht es Ihnen, Abhängigkeiten einschließlich empfohlener und vorgeschlagener Pakete auf einfache Weise zu durchsuchen sowie Konflikte und nicht erfüllte Abhängigkeiten zu visualisieren. Es ist ein unschätzbares Werkzeug, wenn apt-get keine einfache Lösung bietet und um Abhängigkeiten im Allgemeinen zu visualisieren. ( Synaptic ist auch in Ubuntu verfügbar, aber ich finde es nicht so intuitiv.)
Aptitude bietet auch einen Konfliktlöser, der Sie durch alle möglichen Kombinationen von installierten / entfernten / aktualisierten / etc-Paketen führt, um alle Anforderungen ohne Konflikte oder Probleme zu erfüllen. Dies kann auch dann erfolgreich sein, wenn apt keine Lösung finden kann. Als Ubuntu-Benutzer treten normalerweise keine Situationen auf, in denen Sie untersuchen müssen, warum dieses bestimmte Paket installiert wird, aber es ist fast unvermeidlich, wenn Sie das System häufiger verwenden.
quelle
aptitude
Konfliktlöser verbessert werden .sudo aptitude --full-resolver my_package
. Das gibt normalerweiseThe following packages have unmet dependencies
eine Liste und darunter7) <my_package> [Not Installed]
(7 ist nur ein Beispiel). Bei jedem Schritt bietet aptitude neue Möglichkeiten. Was für mich gearbeitet wurde zuerst wählen7
, dannr 7
(was die Beschreibung entsprichtRejecting the removal of my_package
) und dannn
(für NO) als die Entscheidungen vorher nicht waren , was ich wollte: aber nach , dass neue Möglichkeiten bot einige Pakete zusammen mit der Installation von my_package Herabstufung;Y
package1: Hängt ab von: package2 (> = 1.8), aber 1.7.5-1ubuntu1 muss installiert werden
Erklärung der Nachricht:
Fix
Für diese Frage gibt es KEINE einzige richtige Antwort, und es gibt KEINE einfache Antwort.
Es gibt viele Szenarien, in denen dies passieren kann, und man muss alle Optionen untersuchen und versuchen, die Voraussetzungen zu lösen, die zu diesem Fehler führen.
Szenario A:
Auf alle Repositorys, auf die Sie Zugriff haben, ist package2 in Version> = 1.8 nicht vorhanden, daher müssen Sie ein Repository finden, das dies tut. Wenn Sie kein Repository mit Versionen> = 1.8 finden, müssen Sie möglicherweise package2 aus dem Quellcode erstellen und installieren. Versuchen Sie dann, package1 zu installieren.
Wenn Sie wissen möchten, wie ein Paket aus dem Quellcode erstellt wird, überprüfen Sie andere Fragen / Antworten oder veröffentlichen Sie eine neue.
Szenario B:
In den Repositorys ist package2 in einer Version> = 1.8 enthalten, der Paketmanager möchte jedoch weiterhin eine ältere Version (1.7.5) installieren.
Der Grund dafür kann sein, dass die späteren Versionen von package2 von einer neueren Technologie erstellt wurden, die von anderen Paketen, die Sie bereits installiert haben, nicht unterstützt wird.
Dies kann möglicherweise gar nicht behoben werden. Sie können versuchen, apt oder synaptic zu verwenden und nach allen Versionen des Pakets2 zu suchen, die in den Repositorys verfügbar sind, und versuchen, eine bestimmte Version> = 1.8 zu installieren
Wenn Sie andere inkompatible Pakete haben und dies tun, erhalten Sie eine Liste ähnlicher Fehlermeldungen für alle anderen Pakete, die die Installation von package2> = 1.8 verhindern.
In diesem Fall haben Sie ein größeres Problem. Sie wollten package1 installieren, für das package2> = 1.8 sein muss, für package2 in Version> = 1.8 muss package3 jedoch Version> = 6.7 sein, und Sie haben package3 Version 6.3
Die Sache ist, dass der Paketmanager (APT) versucht, alle diese Abhängigkeiten automatisch zu lösen, wenn es möglich ist. Wenn es heißt, dass es nicht möglich ist (und eine Nachricht wie in der Frage ausgibt), sollten Sie ihr vertrauen.
Wenn Sie dem Paketmanager nicht vertrauen und sicher sind, dass Sie keine Probleme haben, können Sie versuchen, die Installation der jeweils benötigten Versionen aller Pakete nacheinander zu erzwingen, und hoffen, dass alles in Ordnung ist.
Beachten Sie, dass dies bei Systempaketen schwerwiegende Probleme verursachen kann. Sie können sich aus dem System ausschließen, wichtige Dienste blockieren usw.
Szenario C:
Unabhängig von den Gründen für das Problem können Sie jederzeit die manuelle Kompilierung einrichten und das benötigte Paket und alle Abhängigkeiten in den genau benötigten Versionen aus dem Quellcode erstellen. Mit dieser Option können Sie das, was Sie erstellt haben, in einem separaten Verzeichnis und außerhalb des Systempfads aufbewahren, damit keine Konflikte mit dem System entstehen. Dies ist wahrscheinlich die sauberste Lösung und kann manchmal schneller erledigt werden.
Szenario D:
Der Paketmanager hat Zugriff auf veraltete Informationen zu Paketen und kann daher keine Lösung finden. Schau in die anderen Antworten.
Szenario E:
Der Paketmanager hat einen Fehler im Code für die Abhängigkeitsauflösung.
Sie müssen untersuchen, ob dies wirklich der Fall ist, und dann eine Fehleranforderung ausgeben.
...
Szenario Z:
Möglicherweise gibt es andere Szenarien.
Zum Beispiel könnten Paketbetreuer falsch gelegen haben und haben nicht überprüft, ob package1 auch mit einer Version von package2 <1.8 funktioniert, und in der Spezifikation haben sie falsche Abhängigkeiten festgelegt.
quelle
Diese Methoden müssen befolgt werden, wenn Sie Fehler in Bezug auf nicht erfüllte Abhängigkeiten erhalten
Versuchen Sie nach dem Befolgen der Anweisungen, die Software zu installieren. Zumindest eine dieser Methoden sollten für Sie arbeiten
1 . Versuchen Sie dies, bevor Sie einen neuen Befehl ausführen oder einen neuen ppa hinzufügen
Aufräumen des Apt-Cache:
Aufräumen nicht verwendeter Abhängigkeiten:
Apt-cache wird aktualisiert
Dadurch wird der gesamte Cache entfernt und ein neuer Cache heruntergeladen. Dies sollte erfolgen, um neue Cache-Pakete und neuere Updates zu erhalten.
2 . Versuchen Sie es
sudo apt-get install -f
.Es wird wahrscheinlich einige Vorschläge zum Entfernen und Installieren von Paketen geben, was vernünftig erscheint.
3 . Ändern Sie das
Download Server
von,Software Sources
da manchmal die Dateien auf einem Server beschädigt sind.4 . Dies passiert auch, wenn Sie zuvor ein externes ppa für die unterbrochene Abhängigkeit hinzugefügt haben. Versuchen Sie, dieses ppa durch zu entfernen
sudo add-apt-repository --remove ppa:someppa/ppa
die von ppa installierten Dateien / Bibliotheken ein und entfernen Sie sie manuelloder
ppa löschen (dadurch werden auch die installierten Dateien gelöscht)
5 . Wenn dies nicht der Fall ist, versuchen Sie mindestens, das Paket zu entfernen, das als fehlerhafte Abhängigkeit angezeigt wird. Versuchen Sie dann erneut, die Installation durchzuführen.
6 . Fügen Sie immer die stabile Version eines Repository / PPA hinzu.
7 Stellen Sie außerdem sicher, dass alle offiziellen Repositorys aktiviert sind (In
Software Sources
).Bitte aktivieren Sie die nicht,
Proposed Updates
da sie für Tests / Entwickler gedacht sind.Wie Doug sagte:
Außerdem wird nicht erwähnt, dass in vielen, wenn nicht in den meisten Fällen "zu installierendes <whatever>" wirklich "installiertes <whatever>" bedeutet und versucht werden sollte, entfernt zu werden, wenn nichts anderes funktioniert (wie in Punkt 5).
Ich werde weitere Dinge hinzufügen, die ich nicht finden kann
unmet dependencies
.quelle
apt-get update
nicht nicht die Aktualisierung apt - Cache (die von heruntergeladenen besteht.deb
Dateien und eine Datei , die Informationen darüber , welche speichert.deb
Dateien , die Sie gespeichert haben). Es aktualisiert die Paketindexdateien (die Informationen darüber enthalten, welche Pakete von jeder verfügbaren Softwarequelle heruntergeladen und installiert werden können). Wie ich schon sagte,apt-get clean
bereinigt nicht das Gleiche, wasapt-get update
aktualisiert wird. Sieheman apt-get
für weitere Einzelheiten.In den meisten Fällen werden durch die Installation des Pakets
aptitude
nicht erfüllte Abhängigkeiten behoben. Das Standardpaketaptitude
wurde nicht auf Ihrem PC installiert.dann,
Zum Beispiel,
Installieren Sie das Paket durch
aptitude
quelle
aptitude
sollte das Abhängigkeitsproblem nicht behoben werden?aptitude
ohne das Problem zuerst zu lösen?aptitude
beschädigten Pakete beheben, andernfalls können Sie nicht installieren. Wenn aufgrund beschädigter Pakete kein Fehler aufgetreten ist, können Sie aptitude installieren.Meine Antwort ist ähnlich wie oben bei Rick.
Mit
apt-get clean
,apt-get autoclean
,apt-get autoremove
,apt-get upgrade
,apt-get update
,apt-get -u dist-upgrade
, etc. alle nicht für mich arbeiten.Ich habe dieses Problem endgültig gelöst, indem ich über in den Abhängigkeitsbaum heruntergestiegen bin (siehe
apt-get install
Beispiel unten). In meinem Fall wollte ich installierenlibmagickwand-dev
:Ich habe diesen Fehler bekommen:
Also bin ich
apt-get install
für eine der fehlgeschlagenen Abhängigkeiten gelaufen :Ich stieg weiter den Baum hinunter:
mit einem anderen Fehler:
Noch einmal tiefer im Baum:
Aus irgendeinem Grund war dies erfolgreich und ich konnte das Originalpaket installieren, mit dem ich wollte
apt-get install libmagickwand-dev
:quelle
Hervorragende Antworten! Aber heute scheint sich mein Fall von Ihrem zu unterscheiden. Hier ist mein Rat.
Problem:
Ich konnte Apache2 in Ubuntu 10.10 nicht installieren.
Lösung:
Mein Weg ist, das abhängige Paket in die Installationsliste aufzunehmen.
Wenn "sudo apt-get install apache2" fehlgeschlagen ist, versuchen Sie " sudo apt-get install apache2 apache2.2-common ".
Sehen? apache2.2-common stammt aus dem Fehlerprotokoll des vorherigen Schritts.
Endlich habe ich festgestellt, dass es eine Abhängigkeitskette wie diese gibt:
Bei den ersten drei Paketen hat apt-get log gemeldet, dass keine Installation stattfindet.
Für das letzte Paket wird jedoch angezeigt, dass libaprutil1-ldap: Depends: libaprutil1 (= 1.3.9 + dfsg-3build1), aber 1.3.9 + dfsg-3ubuntu0.10.10.1 installiert werden soll.
Ich habe eine andere Version in meiner Bibliothek, also:
Jetzt ist es ok.
quelle
Was sind unerfüllte Abhängigkeiten?
Unter Ubuntu werden Softwarepakete in erster Linie erstellt, bereitgestellt und installiert. Pakete sind ganz einfach eine Alternative zum Herunterladen, Erstellen und Installieren von Software von Grund auf. Sie bieten eine Vielzahl von Vorteilen in Bezug auf Installation, Deinstallation, Überwachung und Handhabung von Interaktionen zwischen Softwareteilen gegenüber dem Standardmodell "Build from Source". Ubuntu verwendet ein zentrales Paketsystem, dh jedes Paket hängt von einigen anderen Paketen ab. Wenn wir ein Paket installieren, werden dessen Abhängigkeiten installiert. Der Fehler "Nicht erfüllte Abhängigkeiten" tritt auf, wenn die Abhängigkeiten des Pakets nicht für die Installation verfügbar sind
Mögliche Ursachen
Versuchen wir es zu lösen
Stellen Sie sicher, dass alle Standardrepositorys aktiviert sind
-> Sie können sie einfach in das hinzufügen
Software Center
-> Bearbeiten-> Softwarequellen-> Andere Quellen-> Hinzufügen "hinzufügen.-> Starten Sie die
Software Center
.->. Gehen Sie im Panel zu
Edit
und wählen SieSoftware Sources
.-> Stellen Sie sicher, dass alle Repositorys überprüft wurden
Aktualisieren Sie den Softwarekatalog
Klicken Sie auf das Symbol oben rechts und wählen Sie im Menü den Eintrag "Update verfügbar"
und drücken Sie die Check-Taste
4.Tippen Sie ctrl+ alt+ t, um das Terminal zu öffnen und tippen Sie
sudo apt-get install -f
5.Leeren Sie das kürzlich hinzugefügte ppa mit ppa-purge ppa-purge
Syntax
Beispiel
Else Art ctrl+ alt+ töffnen Terminal und geben Sie
sudo apt-get install -f
Sie und folgen Sie den Anweisungen auf dem BildschirmWenn immer noch ein Fehler auftritt, können Sie ihn in askbuntu nachfragen
quelle
... vergessen Sie nicht "build-dep"
Zusätzlich zu den obigen Antworten muss ich zugeben, dass ich überrascht bin, dass niemand diesen Ansatz erwähnt hat, den ich immer als "Wundermittel" verwendet habe, wenn ich auf Konflikte oder ungelöste Pakete gestoßen bin (oder sogar wenn das System hartnäckig ist .... ha!).
BEARBEITET: Verwendung
sudo dpkg -r [package]
wird empfohlen, da es eine ziemlich leistungsstarke Entfernungsfunktion hat. Daapt-get
arbeitet nebenbei mitdpkg
, was bedeutetapt-get
,dpkg
Funktion zu gehorchen .Sie rufen apt-get auf, um das fehlerhafte Paket zu bereinigen, das Sie auf dem System installieren wollten, und rufen dann den Befehl build-dep auf, mit dem apt-get die zu diesem Paket gehörenden Abhängigkeiten abruft und installiert, damit sie erfüllt werden das Paket vor. Rufen Sie dann abschließend die apt-get-Installation auf:
....'Pfui! Lass uns deinen Arm drehen, bis du "Onkel" schreist! '
Dies geschah in meinen langen Jahren der Linux-Nutzung selten, aber ich fand mich mit diesem Ansatz selten und erfolgreich. Dies ist ein Beispiel für den jüngsten Kampf, den ich vor einem Monat mit Paketen hatte
mysql-client/mysql-server
. Nach einem Dutzend fehlgeschlagener Versuche, mein Root-Passwort mit mysql-server zurückzusetzen (sogar über --skip-grant-tables techqiue, aber dennoch fehlgeschlagen), ist es mir endlich gelungen, den Arm von Linux zu drehen, bis es "Onkel!" Rief:apt-get autoclean
ist der Schlüssel in dieser Lösungquelle
Während der Installation von i386-Paketen in 64-Bit-Multiarch-Ubuntu-Systemen
Wenn Sie versuchen, ein Paket zu installieren, das von vielen i386-Paketen abhängt, wird der oben angegebene Abhängigkeitsfehler auch verursacht, wenn Sie die i386-Architektur nicht durch Ausführen des
sudo dpkg --add-architecure i386
Befehls hinzufügen .Beispiel:
quelle
vlc
nach der Installation von Skype versuchte, ein anderes Paket zu installieren (zum Beispiel ), bekam ich die unerfüllte Abhängigkeit. Ich kam aus einer ähnlichen Situation heraus, indem ich:amd64
am Ende des Paketnamens hinzufügte , was den Fehler verursachte. Wie hast du dich erholt? Was wäre die beste Lösung?Nachdem ich beinahe alle Methoden ausprobiert hatte, die in diesem Thread (und in anderen) erwähnt wurden, war ich kurz davor aufzugeben. Ich hatte mein Debian Lenny auf Squeeze upgegradet und konnte mein Leben lang nicht herausfinden, warum PHP5, Apache, MySQL usw. nicht installiert werden wollten. Am Ende habe ich versucht, zu verwenden
..und es hat einwandfrei funktioniert! ( Vorsicht, es könnte Ihre Konfigurationsdateien zerstören, sichern Sie sie also! )
quelle
Was für mich funktioniert hat, ist die Neuinstallation der Abhängigkeit. In diesem Fall ist die installierte Version aktueller als die neueste (was synaptic anzeigt). Es ist eigentlich gleichbedeutend damit, dass synaptic das Abhängigkeitspaket herunterstufen kann.
Eine andere Sache, die funktioniert hat, ist die Verwendung von "aptitude":
quelle
Wenn Sie einen Fehler wie diesen erhalten:
Dies sagt Ihnen, dass die Pakete bereits installiert sind, aber nicht alle anderen Pakete installiert wurden, die für die Arbeit benötigt werden. Sie sollten in der Lage sein, dies zu lösen, indem Sie Folgendes ausführen:
(Dieser Befehl sollte die nicht erfüllten Abhängigkeiten automatisch installieren.)
oder so ähnlich (mit den entsprechenden Paketen) :
Aber wenn Sie mit dieser Art von Fehler enden:
Sie können dann hier oder hier nach Möglichkeiten suchen, diese zu installieren .
Mit dem obigen Beispiel sollten Sie in der Lage sein, eine Seite wie diese zu finden und dann einen PPA zu verwenden oder eine .deb-Datei für 32-Bit oder eine .deb-Datei für 64-Bit zu installieren .
quelle