So sieht die Meldung aus
$ sudo apt upgrade
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.Häufige Ursachen
- Der vorherige apt- oder dpkg-Lauf wurde abgebrochen: SSH-Verbindung verloren, Neustart, Stromausfall oder ein beendeter Prozess.
- Ein Paketskript (postinst) ist gescheitert, das Paket blieb halb konfiguriert.
- Die Platte oder
/varwar während der Installation voll. - Unattended Upgrades wurden durch ein Herunterfahren unterbrochen.
Prüfen
- Läuft apt oder dpkg noch? Wenn ja, abwarten.
ps -eo pid,etime,cmd | grep -E '[a]pt|[d]pkg' - Welche Pakete sind in einem kaputten Zustand?
sudo dpkg --audit - Ist Speicherplatz frei?
df -h / /var /boot - Was ist im letzten Lauf passiert?
tail -n 30 /var/log/dpkg.log
Lösung
- Sicherstellen, dass kein apt- oder dpkg-Prozess läuft. Die Lock-Dateien niemals löschen, solange einer läuft.
- Die unterbrochene Arbeit beenden:
sudo dpkg --configure -a. - Danach die Abhängigkeiten reparieren:
sudo apt --fix-broken install. - Scheitert ein Paket immer wieder, dessen Fehler lesen. War die Platte voll, zuerst Platz schaffen und die beiden Befehle wiederholen.
- Letzter Ausweg für ein Paket, das sich nicht konfigurieren lässt: mit
sudo dpkg --remove --force-remove-reinstreq PAKETentfernen und neu installieren. Bei Systempaketen Vorsicht.
Häufige Fragen
Kann ich einfach die Lock-Datei löschen?
Nein. Die Meldung betrifft keine Sperre. Führe dpkg --configure -a aus. Locks zu löschen, während ein Prozess arbeitet, kann die Paketdatenbank beschädigen.
Ist dpkg --configure -a auf einem Produktivserver sicher?
Ja, es beendet nur, was begonnen wurde. Prüfe vorher den freien Platz und starte es in screen oder tmux, damit eine verlorene Verbindung es nicht erneut unterbricht.