Ich habe mich nur gefragt, ob mir jemand sagen könnte, was das bedeutet:
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
reidsr@ubuntu:~$ sudo dpkg --configure -a
dpkg: error: dpkg status database is locked by another process
reidsr@ubuntu:~$
Wie laufe ich sudo dpkg --configure -a
manuell?
Antworten:
Erster Lauf:
Stellen Sie dann sicher, dass der Prozess nicht ausgeführt wird:
Wenn es läuft:
Stellen Sie sicher, dass der Vorgang abgeschlossen ist:
Dann entfernen Sie die Sperrdatei:
Lass dpkg sich selbst reparieren:
Du solltest danach in Ordnung sein :)
quelle
lsof /var/lib/dpkg/lock
.Sie können nicht mehrere Paketanwendungen / Befehle / Tools gleichzeitig ausführen. Manchmal bedeutet dies, dass synaptic, apt-get oder das Paketaktualisierungstool im Hintergrund ausgeführt werden. Schließen Sie einfach andere Pakettools oder warten Sie, bis sie fertig sind. Und dpkg läuft.
quelle
Man könnte auch versuchen:
So beheben Sie beschädigte Pakete:
quelle
Folgendes sollte helfen:
quelle
Ein Ansatz ist nur, den PC neu zu starten. Das hat bei mir funktioniert.
quelle
Dies kann passieren, wenn der Upgrade-Prozess unterbrochen wurde (als ob Ihre Verbindung unterbrochen wurde). Sie können versuchen, screen als root (
sudo su
) zu verwenden, um in die Sitzung zurückzukehren.quelle
Hier gibt es einige gute Antworten, aber ich wollte nur eine andere Methode hinzufügen, um den Benutzer der dpkg-Sperre zu finden
Schritt 1: Finden Sie heraus, wer dpkg sperrt:
Option 1: Verwenden von lsof (nicht immer auf dem Computer installiert)
lsof /var/lib/dpkg/lock
Option 2: Verwenden von Bash
for pid in $(ls /proc | egrep [0-9]+); do sudo ls -l /proc/$pid/fd 2>/dev/null | grep /var/lib/dpkg/lock && echo $pid; done
Schritt 2: Entscheiden Sie, was Sie mit dem aktuellen dpkg-Benutzer tun möchten
Wenn es keinen solchen Prozess gibt, muss nichts entschieden werden. Fahren Sie einfach mit dem nächsten Schritt fort.
Andernfalls müssen Sie entscheiden, ob Sie den Prozess beenden oder ordnungsgemäß beenden möchten. Wenn Sie es töten möchten, verwenden Sie einfach
kill <pid>
. Wenn der Prozess immer noch nicht zum Erliegen kommt, können Sie in Betracht ziehen, ihn mit zu töten. Eskill -9 <pid>
kann jedoch zu gewissen Inkonsistenzen kommen, und ich rate davon ab, es sei denn, Sie wissen, was Sie tun.Schritt 3: Entfernen Sie die Sperrdatei
sudo rm /var/lib/dpkg/lock
Schritt 4: Fixieren Sie den internen Zustand von dpkg
sudo dpkg --configure -a
quelle
In unserem Fall gab es keinen laufenden Prozess (PID), also habe ich den VPS hart gestoppt und neu gestartet.
Als Nächstes müssen möglicherweise mehrere Sperrdateien entfernt werden:
Dann können Sie
dpkg
wie vorgeschlagen beheben :quelle