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. Es kill -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