APT ist aufgrund einer Nichtübereinstimmung mit der Kernelversion eingeklemmt

18

Apt ist anscheinend nicht in der Lage, irgendetwas Nützliches für mich zu tun und wiederholt Nachrichten dieser Form zu übermitteln:

dpkg: dependency problems prevent configuration of linux-server:
 linux-server depends on linux-image-server (= 3.2.0.37.44); however:
  Version of linux-image-server on system is 3.2.0.37.45.
 linux-server depends on linux-headers-server (= 3.2.0.37.44); however:
  Version of linux-headers-server on system is 3.2.0.37.45.
dpkg: error processing linux-server (--configure):
 dependency problems - leaving unconfigured

Dies ist im Grunde das gleiche Problem, da ich kein Paket (Linux-Image-Server, Linux-Server-Abhängigkeitsfehler) installieren kann, das geschlossen wurde. Keiner der Ratschläge in dieser sehr allgemeinen Antwort zu Abhängigkeiten hilft.

Ausdrücklich:

sudo apt-get clean
sudo apt-get autoclean
sudo apt-get update

alle haben keine nicht wirkung. Während

sudo apt-get -f install
sudo dpkg --configure -a
sudo apt-get -u dist-upgrade
sudo apt-get -o Debug::pkgProblemResolver=yes dist-upgrade

Alle geben eine Form der obigen Fehlermeldung an.

Leopd
quelle

Antworten:

20

Sie sind gelaufen sudo apt-get updateund das Problem tritt immer noch auf. Sie haben wahrscheinlich nur eine neuere Version von linux-image-serverund linux-headers-serverals jedes linux-serverPaket, das von Ihren konfigurierten Softwarequellen verfügbar ist .

Dies kann für eine sehr kurze Zeit geschehen, selbst wenn Sie den zentralen Server verwenden (oder für eine längere Zeit, wenn beim Aktualisieren ein Problem aufgetreten ist). Ich verstehe, dass es für längere Zeiträume auftreten kann, wenn Sie einen Spiegel verwenden. Das bedeutet nicht, dass Sie keinen Spiegel verwenden sollten - der zentrale Server ( http://archive.ubuntu.com) ist normalerweise sehr langsam und nationale, regionale oder andere Spiegel sind viel schneller.

Eine Paketsuche zeigt , dass die Version 3.2.0.37.45 von beiden linux-image-serverund linux-servergibt es für Ubuntu 12.04. Also hängt es wahrscheinlich mit deinem Spiegel zusammen.

Hier sind ein paar alternativen:

Ignoriere es

Wenn Sie den Paketmanager für andere Zwecke verwenden können, z. B. um andere Pakete zu installieren, können Sie dies einfach ignorieren. Wenn Ihr Spiegel aktualisiert wird, erhalten Sie wahrscheinlich nur das Paket.

Es ist kein Problem, nicht das neueste linux-serverPaket zu haben , da es sich um ein Metapaket handelt , das keine tatsächliche Software enthält. Es ist nur vorhanden, um drei Pakete als Abhängigkeiten aufzulisten und sicherzustellen, dass sie installiert bleiben:

Sie haben bereits die neuesten Versionen von linux-headers-serverund linux-image-server. Ich vermute, dass dies ein 64-Bit-System ist, weshalb keine Nachricht darüber linux-generic-paeangezeigt wurde. Anscheinend ist alles in Ordnung.

Jedoch:

  • Wenn das Problem verhindert , dass andere Pakete aktualisiert und installiert werden ( anstatt diese Meldungen immer anzuzeigen, ohne sie zu beeinträchtigen), sollten Sie eine andere Lösung anwenden.
  • Möglicherweise möchten Sie dies auch tun, wenn Sie diese Nachrichten nicht immer sehen und sie entfernen möchten.
  • Es ist ein wenig seltsam, dass Sie dieses Paket nicht erhalten, selbst wenn Sie einen Spiegel verwenden, der etwas hinter dem Hauptdownloadserver zurückliegt, da dieses Paket auch von bereitgestellt wird http://security.ubuntu.com. Dieser Server sollte immer aktiviert sein /etc/apt/sources.list. Ich empfehle daher zu überprüfen, ob dies aktiviert ist. Möglicherweise möchten Sie eine Sicherungskopie erstellen, sources.listbevor Sie sie bearbeiten ( sudo cp /etc/apt/sources.list /etc/apt/sources.list.old). Das Problem kann auch eine Folge eines zwischengespeicherten Web-Proxys (falls Sie einen verwenden) mit veralteten Daten sein. (Die folgenden Lösungen werden auch das umgehen.)

Wechseln Sie zu einem anderen Download-Server

Ich würde vermuten, dass Sie ein Ubuntu Server-System ausführen und wahrscheinlich keine GUI installiert haben. Also, siehe:

Führen Sie nach dem Wechseln des Spiegels Folgendes aus:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Wenn Sie möchten, können Sie Ihren Server nach der linux-serverAktualisierung zurücksetzen.

Laden Sie die .debPaketdatei manuell herunter und installieren Sie sie

Sie können die .debDatei für die neueste Version des linux-serverMetapakets in Ubuntu 12.04 manuell herunterladen und installieren .

cd wohin Sie das Paket herunterladen möchten.

Wenn dies ein 64-Bit-System ist, führen Sie Folgendes aus:

wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-server_3.2.0.23.25_amd64.deb

Wenn es sich um ein 32-Bit-System handelt, führen Sie stattdessen Folgendes aus:

wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-server_3.2.0.23.25_i386.deb

(Ich habe beide Links auf der Launchpad-Seite für das linux-metaQuellpaket in Ubuntu erhalten .)

Führen Sie nun (für 64-Bit und 32-Bit) den folgenden Befehl aus, um das Paket zu installieren:

sudo dpkg -i linux-server_3.2.0.23.25_*.deb

(Oder geben Sie einfach den Namen des Pakets ein und Tabvervollständigen Sie ihn mit.)

Entfernen Sie das Paket

Da es sich um ein Metapaket handelt, das bereits vorhandene Software bereitstellt, können Sie das Paket entfernen. Dann wird der Fehler nicht mehr angezeigt. Sie können es später erneut installieren, wenn Sie möchten (Sie können regelmäßig überprüfen apt-get update && apt-cache policy linux-server, ob die neue Version verfügbar ist).

Es gibt zwei Schritte, wenn Sie es entfernen möchten. Die erste ist die Deinstallation linux-server. Die zweite besteht darin, sicherzustellen, dass die Pakete später nicht automatisch entfernt werden.

Die Abhängigkeiten werden nicht entfernt werden sofort . Es spielt also keine Rolle, welchen dieser Schritte Sie zuerst ausführen.

1. Deinstallieren linux-server.

Zum Deinstallieren linux-servereinfach ausführen:

sudo apt-get remove linux-server

2. Markieren Sie die Abhängigkeiten als manuell installiert

Wenn Sie APT (den Paketmanager) über Pakete informieren möchten, die Sie installieren möchten, auch wenn nichts mehr übrig ist, das sie als abhängig deklariert, markieren Sie sie als manuell installiert.

Führen Sie dazu diesen Befehl aus, wenn es sich um ein 64-Bit-System handelt:

sudo apt-mark manual linux-image-server linux-headers-server

Wenn es sich um ein 32-Bit-System handelt, führen Sie stattdessen Folgendes aus:

sudo apt-mark manual linux-image-server linux-headers-server linux-generic-pae

( apt-markSollte dies nicht apt-get installder apt-mark manualFall sein und Sie können keine Software installieren, können Sie anstelle von - ein Paket manuell für die Installation angeben, um es als manuell installiert zu markieren, auch wenn es bereits installiert wurde.)

Quelle: Markieren Sie ein Deb-Paket als verwendet, damit es nicht automatisch entfernt werden kann.
(Insbesondere die Antwort von Lekensteyn .)

Eliah Kagan
quelle
3
Danke für die ausführliche Antwort. Das Wechseln der Spiegel änderte nichts an der Situation. Die manuelle Installation der neueren Version von linux-server ( linux-server_3.2.0.37.45) hat das Problem behoben.
Leopd
2
In meinem Fall konnte ich apt-get für nichts verwenden. Ich habe immer den unerfüllten Abhängigkeitsfehler für Linux-Server erhalten. Inspiriert von Ihrem Rat, habe ich Folgendes ausprobiert, was funktioniert und viel einfacher ist:sudo apt-get remove linux-server && sudo apt-get install linux-server
Andrew Ensley
4

Wenn Sie ein vollständiges / Booten hatten und die automatische Sicherheitsaktualisierung pleite war, befinden Sie sich möglicherweise im selben Boot wie ich.

Ich konnte nicht in der Lage sein, irgendetwas zu tun, so dass die traditionellen Ratschläge zum vollständigen / Booten nicht funktionierten. Ich habe alte Kerneldaten manuell entfernt. Entferne nicht den aktuell laufenden Kernel, prüfe mit 'uname -a'. Ich entfernte mit 'sudo rm / boot / -3.2.0- {23,24,25,26} - .

Dann musste ich 'sudo apt-get entferne Linux-Server' und 'sudo apt-get installiere Linux-Server' ausführen, um das Durcheinander des 1/2 installierten Kernel-Problems zu korrigieren. Nach all dem konnte ich endlich „sudo apt-get upgrade“ und die Dinge wieder in Bewegung bringen.

Um sicherzugehen, dass das Boot-Menü korrekt war und andere Pakete bereinigt wurden, warf ich ein 'sudo update-grub' und 'sudo apt-get autoremove' ein.

Flackerfliege
quelle
Ich habe hier ein gutes Stück mehr über diesen Prozess geschrieben: askubuntu.com/a/430944/47461 Als Auftragnehmer bin ich häufig auf dieses Problem gestoßen .
Flickerfly