Ich erhalte diesen Fehler nach dem Upgrade

7

Ich habe diese Fehlermeldung nach dem letzten Upgrade erhalten:

dpkg: dependency problems prevent configuration of initramfs-tools:
 initramfs-tools depends on initramfs-tools-bin (<< 0.99ubuntu13.2.1~); however:
  Version of initramfs-tools-bin on system is 0.103ubuntu0.2.
 klibc-utils (2.0.1-1ubuntu2) breaks initramfs-tools (<< 0.103) and is installed.
  Version of initramfs-tools to be configured is 0.99ubuntu13.2.
dpkg: error processing initramfs-tools (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of plymouth:
 plymouth depends on initramfs-tools; however:
  Package initramfs-tools is not configured yet.
dpkg: error processing plymouth (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of mountall:
 mountall depends on plymouth; however:
  Package plymouth is not configured yet.
dpkg: error processing mountall (--configure):
 dependency problems - leaving unconfigured
No apport report written because MaxReports is reached already
                                                              No apport report written because MaxReports is reached already
      No apport report written because MaxReports is reached already
                                                                    dpkg: dependency problems prevent configuration of initscripts:
 initscripts depends on mountall (>= 2.28); however:
  Package mountall is not configured yet.
dpkg: error processing initscripts (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of upstart:
 upstart depends on initscripts; however:
  Package initscripts is not configured yet.
 upstart depends on mountall; however:
  Package mountall is not configured yet.
dpkg: error processing upstart (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of passwd:
 passwd depends on upstart-job; however:
  Package upstart-job is not installed.
  Package upstart which provides upstart-job is not configured yet.
dpkg: error processing passwd (--configure):
 dependency problems - leaving unconfigured
No apport report written because MaxReports is reached already
                                                              No apport report written because MaxReports is reached already
      No apport report written because MaxReports is reached already
                                                                    Errors were encountered while processing:
 initramfs-tools
 plymouth
 mountall
 initscripts
 upstart
 passwd
E: Sub-process /usr/bin/dpkg returned an error code (1)
user203404
quelle
Da mein Vorschlag etwas lang war, zog ich es vor, ihn als Antwort zu posten. Versuchen Sie es einmal und antworten Sie.
Saurav Kumar

Antworten:

7

Öffnen Sie das Terminal und führen Sie die folgenden Befehle aus:

sudo apt-get autoremove
sudo apt-get --purge remove && sudo apt-get autoclean
sudo apt-get -f install
sudo dpkg-reconfigure -a

Der letzte Befehl würde einige Zeit dauern, abhängig von den auf Ihrem System installierten Paketen. Also bitte haben Sie etwas Geduld. Wenn Sie keine defekten / verbleibenden Pakete haben, wird es ohne Meldung unbeaufsichtigt ausgeführt.

sudo apt-get update
sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo dpkg-reconfigure -a
sudo dpkg --configure -a
sudo update-initramfs -u

Starten Sie dann Ihr System neu.

Saurav Kumar
quelle
1
@diyism: Gibt es einen Unterschied zwischen sudo apt-get -f installund sudo aptitude install -f?
Saurav Kumar
funktioniert nicht, mach das von live iso: fsck / dev / sdXY
diyism
sudo dpkg-reconfigure -afunktioniert nicht unter Ubuntu 16.04, unbekannte Option.
Kek
@kek_kek: Hast du einen Fehler bekommen? Bitte posten Sie es hier .. Versuchen Sie es herauszufinden ..
Saurav Kumar
2
@ SauravKumar die Ausgabe von sudo dpkg-reconfigure -aunter Ubuntu 16.04: "Unbekannte Option: a"
David dein Freund
2

Mein Einzeiler zum Entfernen alter Kernel (dadurch wird auch Speicherplatz frei):

dpkg --list | grep linux-image | awk '{ print $2 }' | sort -V | sed -n '/'`uname -r`'/q;p' | xargs sudo apt-get -y purge

Erläuterung (Denken Sie daran, dass |die Ausgabe des vorherigen Befehls als Eingabe für den nächsten verwendet wird.)

  • dpkg --list listet alle installierten Pakete auf
  • grep linux-image sucht nach den installierten Linux-Images
  • awk '{ print $2 }' gibt nur die 2. Spalte aus (das ist der Paketname)
  • sort -V ordnet die Artikel nach Versionsnummer
  • sed -n '/'`uname -r`'/q;p' druckt die Zeilen vor dem aktuellen Kernel
  • xargs sudo apt-get -y purge löscht die gefundenen Kernel

sedAufruf aufrufen :

  • -nsagt sed, ruhig zu sein
  • `uname -r` gibt die aktuell installierte Kernel-Version aus - wir fügen sie in Backticks ein, damit die Ausgabe als Teil des Befehls enthalten ist (möglicherweise sehen Sie dies auch als $(uname -r)
  • /something/qsagt stop, wenn Sie mit 'etwas' übereinstimmen (in diesem Fall wird etwas ausgegeben uname -r) - der /Surround ein regulärer Ausdruck
  • p ist drucken
  • Das ;ist der Befehl separtor, /something/q;psagt also beenden, wenn Sie etwas übereinstimmen, sonst drucken

Insgesamt werden sed -n '/'`uname -r`'/q;p'die Zeilen gedruckt, bis sie mit dem aktuellen Kernelnamen übereinstimmen.

Wenn Sie paranoid sind (wie ich), können Sie den letzten Teil xargs echo sudo apt-get -y purgeso erstellen, dass der Befehl zum Löschen der alten Kernel gedruckt wird. Anschließend können Sie überprüfen, ob nichts Unerwartetes enthalten ist, bevor Sie ihn ausführen.


Geänderte Version zum Entfernen von Headern:

dpkg --list | grep 'linux-image' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs sudo apt-get -y purge
dpkg --list | grep 'linux-headers' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs sudo apt-get -y purge

Hinweis: Der sedAufruf wird geändert. "$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"extrahiert nur die Version (zB "3.2.0-44"), ohne "-generic" oder ähnliches ausuname -r


All-in-One-Version zum Entfernen von Bildern und Headern (kombiniert die beiden oben genannten Versionen):

echo $(dpkg --list | grep linux-image | awk '{ print $2 }' | sort -V | sed -n '/'`uname -r`'/q;p') $(dpkg --list | grep linux-headers | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p') | xargs sudo apt-get -y purge
arukaen
quelle
1
Warum löst das Entfernen alter Kernel die Abhängigkeitsprobleme? Auch der Befehl ist sehr kompliziert. Es sollte eine Erklärung geben, warum es das tut, was Sie behaupten. Ich würde das nicht im Glauben ausführen wollen.
Nephente