Nicht erfüllte Abhängigkeiten konnten nicht behoben werden

7

Ich verwende Ubuntu 14.04. Ich kann das Software Center nicht verwenden, um etwas zu installieren, auch nicht ein lokales Deb-Paket, daher muss ich mich auf Terminal verlassen.

Kürzlich habe ich versucht zu installieren, mysql-serverwelcher generierte Fehler, den ich genau bestimmen konnte, die erforderliche Version von libstdc ++ 6 war. Mein System hatte 4.8.x, während MySQL 5.6> = 4.9 benötigte. Während ich den üblichen Aktualisierungsprozess versuchte und erfolglos blieb, konsultierte ich meinen Systemadministrator, der versuchte, das 4.9-Paket manuell (unter Verwendung eines lokalen .deb-Pakets) zu installieren, was ebenfalls fehlschlug und nicht erfüllte Abhängigkeiten anführte.

Derzeit habe ich ein System mit dem Fehler, dass keine neue Software installiert werden kann.

Das sudo apt-get install -fgibt folgende Ausgabe:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... failed.
The following packages have unmet dependencies:
 libstdc++6 : Depends: gcc-4.9-base (= 4.9.2-10) but 4.9.1-0ubuntu1 is installed
 libstdc++6:i386 : Depends: gcc-4.9-base:i386 (= 4.9.2-10) but 4.9.1-0ubuntu1 is installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

Ich habe mit nach gespeicherten Paketen gesucht

dpkg -l | grep ^h
dpkg -l | grep hold

Ergebnis: nichts.

Es wurde auch versucht, das defekte Paket zu finden, falls vorhanden, aber die Datei /var/log/dist-upgrade/apt.logexistiert nicht.

Also, was soll / kann ich jetzt tun?

neo.one
quelle
Woher installieren Sie den MySQL-Server? Ein externes Repository oder Ubuntus Repositorys?
Zhongfu
Ich habe MySQL Apt Repository von Link verwendet .
neo.one

Antworten:

2

Ihr nicht erfülltes Abhängigkeitsproblem wird durch das MySQL APT Repository-Repository verursacht. MySQL Server 5.6 aus dem MySQL APT-Repository erfordert libstdc ++ 6> = 4.9, MySQL Server 5.6 ( mysql-server-5.6 ) aus den Standard-Ubuntu-Repositorys erfordert jedoch libstdc ++ 6> = 4.6. Wenn Sie die Version von MySQL Server 5.6 ( mysql-server-5.6 ) aus den Standard-Ubuntu-Repositorys installieren , werden automatisch alle Paketabhängigkeiten für Sie aufgelöst.

Um das Problem zu beheben, müssen Sie das MySQL APT-Repository entfernen und anschließend alle von Ihnen installierten Pakete aus dem MySQL APT-Repository deinstallieren.

Verwenden Sie zum Entfernen des MySQL APT-Repositorys einen Befehl des Formulars:

sudo dpkg --remove package-name

Hier ersetzen Sie den Paketnamen durch den Paketnamen des zuvor installierten MySQL APT Repository. Sie können auch im Ubuntu Software Center nach dem von Ihnen installierten MySQL APT Repository .deb-Paket suchen und es von dort entfernen.

Installieren Sie dann MySQL Server 5.6 mit dem folgenden Befehl:

sudo apt install mysql-server-5.6
Karel
quelle
Ich habe kein Paket installiert, nur das Repo. Das Entfernen von MySQL apt sollte also das Problem nicht erfüllter Abhängigkeiten lösen?
neo.one
Ja, dies sollte das Problem mit nicht erfüllten Abhängigkeiten beheben. Sie müssen das MySQL APT-Repository entfernen, andernfalls wird weiterhin versucht, dieselben Pakete aus dem MySQL APT-Repository zu installieren, die zuvor die nicht erfüllten Abhängigkeiten verursacht haben. Wenn Sie das MySQL APT-Repository entfernen, ruft Ubuntu MySQL Server 5.6 zusammen mit allen abhängigen Paketen aus den Standard-Ubuntu-Repositorys ab.
Karel
Versucht, apt zu entfernen: Immer noch der Abhängigkeitsfehler sudo apt-get remove mysql-apt-config Paketlisten lesen ... Fertig Erstellen des Abhängigkeitsbaums Lesen von Statusinformationen ... Fertig Möglicherweise möchten Sie 'apt-get -f install' ausführen Korrigieren Sie diese: Die folgenden Pakete haben nicht erfüllte Abhängigkeiten: libstdc ++ 6: Abhängig: gcc-4.9-base (= 4.9.2-10), aber 4.9.1-0ubuntu1 muss installiert werden libstdc ++ 6: i386: Abhängig: gcc -4.9-base: i386 (= 4.9.2-10), aber 4.9.1-0ubuntu1 soll installiert werden E: Nicht erfüllte Abhängigkeiten. Versuchen Sie 'apt-get -f install' ohne Pakete (oder geben Sie eine Lösung an).
neo.one
Okay, ich bin mir sicher, dass die Pakete, die sys admin installiert hat, das Problem verursachen. Sie wurden von meiner Ubuntu-Version nicht unterstützt. Die Pakete werden im Software Center unter "Unbekannt" aufgeführt. Wenn ich versuche zu entfernen, zeigt es alle Software, die vom GNU-Standard c ++ lib abhängen, und fragt nach 'Alle entfernen'. Ich denke, das Problem ist, wie ich die Täterpakete entfernen kann, ohne mein System zu beeinträchtigen.
neo.one
Ja, Sie haben die Ursache des Problems richtig identifiziert und auch die Gefahr erkannt, die mit dem Entfernen von Täterpaketen verbunden ist. Ihr System muss mindestens eine Version von libstdc ++ 6 haben, um ordnungsgemäß zu funktionieren. Wenn Sie zwei Versionen von libstdc ++ 6 installiert haben, können Sie die Version von libstdc ++ 6 aus der unbekannten Quelle entfernen. Wenn Sie zwei Versionen eines Pakets installiert haben, können Sie die Version auch aus der unbekannten Quelle entfernen. Sie müssen jedoch mindestens eine funktionierende Version installiert lassen, um größere Probleme zu vermeiden.
Karel
1

Verwenden Sie "Eignung", um das Problem zu lösen.

sudo apt-get install aptitude
sudo aptitude remove mysql-apt-config

Folgen Sie nun den vorgeschlagenen Lösungen.

AB
quelle
0

Dieser Fehler tritt auf, weil für das Paket, das Sie herunterladen und installieren möchten, libstdc ++ 6> = 4.9 erforderlich ist. Die neueste Version von libstdc ++ 6, die in den Ubuntu 14.04 LTS-Repositorys verfügbar ist, ist 4.8.2-19ubuntu1 und älter als 4.9.

Ich gehe davon aus, dass Sie Ubuntu 14.04 ausführen, da das libstdc ++ 6-Paket auf Ihrem Computer bei 4.8.2-19ubuntu1 hängen bleibt. Das MySQL APT-Repository enthält derzeit Pakete für drei Versionen von Ubuntu: 12.04, 14.04 und 14.10. Die Pakete für 12.04 und 14.04 erfordern beide nur libstdc ++ 6> = 4.6, während 14.10 die Version libstdc ++ 6> = 4.9 erfordert.

Bitte überprüfen Sie, ob Sie das richtige mysql-apt-config-Paket für Ihre Ubuntu-Version installiert haben.

zhongfu
quelle
Entschuldigung, ich habe Ihre Antwort nicht gesehen. Meine Antwort adressiert OP mit der falschen Version für das MySQL apt-Repository, es ist also kein vollständiges Duplikat. Trotzdem werde ich diese Antwort löschen und Ihre Antwort so bearbeiten, dass sie diese Details enthält, wenn ich nach Hause
komme
0

libstdc ++ 6: Abhängig von: gcc-4.9-base (= 4.9.2-10), aber 4.9.1-0ubuntu1 ist installiert

Das Paket gcc-4.9-base (= 4.9.2-10) ist nur für Ubuntu Vivid verfügbar.

Überprüfen Sie dies (utopisch) und dies (lebendig) .

Entfernen Sie das Paket mysql-apt-config, das anhand dieser Anweisungen installiert wurde , und verwenden Sie es mysql-server, um die neueste Version zu erhalten.

sudo dpkg --force-all -P mysql-apt-config
sudo apt-get install mysql-server
AB
quelle
Also muss ich gcc-4.9-base installieren? Im Moment geht es mir mehr darum, nicht erfüllte Abhängigkeiten wiederherzustellen.
neo.one
Natürlich: "libstdc ++ 6: Abhängig von: gcc-4.9-base (= 4.9.2-10), aber 4.9.1-0ubuntu1 ist installiert"
AB
Die Wohnung kann nicht entfernt werden, da derselbe Fehler wie in der obigen Frage angezeigt wird.
neo.one
Versuchen Sie diesen Befehl "sudo dpkg --force-all -P mysql-apt-config"
AB