Wenn Sie ein normaler Ubuntu/Debian-Benutzer sind, ist Ihnen vielleicht irgendwann der Fehler begegnet:„Could not get lock /var/lib/dpkg/lock ’. Dies steht im Zusammenhang mit dem Fehler „Could not get lock /var/lib/apt/lists/lock“ . Unten ist ein Screenshot, der einen solchen Fehler anzeigt.
Dies ist ein nicht schwerwiegender Fehler und normalerweise kein Grund zur Besorgnis. Es kann leicht gelöst werden, wie wir später zeigen werden. Aber was verursacht es überhaupt? Finden wir es heraus.
Fehlerursachen
Die häufigste Ursache für diesen Fehler ist, wenn ein Prozess den APT-Paketmanager verwendet, um Software zu aktualisieren/aktualisieren/installieren oder eine Paketverwaltung auf dem System durchzuführen. Wenn dies geschieht, sperrt der Prozess die dpkg-Datei mit einer Sperrdatei, sodass ein anderer Prozess die Daten nicht ändert, was wahrscheinlich zu Fehlern und einer möglichen Beschädigung wichtiger Dateien im System führt.
Wann immer Sie auf diesen Fehler stoßen, besteht eine hohe Wahrscheinlichkeit, dass gleichzeitig ein anderer Prozess APT ausführt. Dies könnte ein Prozess sein, der gleichzeitig auf einem anderen Terminal ausgeführt wird. Der Fehler kann auch durch einen unterbrochenen Update- oder Upgrade-Vorgang auftreten, der durch Drücken von STRG + C im Terminal oder versehentliches Schließen des Terminalfensters vorzeitig beendet wurde.
So beheben Sie den Fehler „Sperre /var/lib/dpkg/lock konnte nicht abgerufen werden“
Hier sind ein paar Tipps, die helfen können, den Fehler zu beheben und Ihnen dabei helfen, den APT-Paketmanager wieder zu verwenden.
Warten Sie, bis der Vorgang abgeschlossen ist
Wenn Sie eine andere Terminalsitzung haben, in der der APT-Paketmanager von einem Befehl verwendet wird, z. B. zum Aktualisieren oder Aktualisieren des Systems oder zum Installieren einer Anwendung, warten Sie einfach, bis der Vorgang erfolgreich abgeschlossen wurde. Nach Abschluss können Sie den gewünschten Befehl ausführen und alle anderen Operationen mit APT ausführen.
Prozesse mit dem APT-Paketmanager beenden
Wenn Sie einen Prozess mit APT unterbrochen haben, wie z. B. das Abbrechen eines Upgrades oder eine Aktualisierung des Paketindex, identifizieren Sie zuerst die Prozesse mit APT mit dem gezeigten ps-Befehl:
$ ps aux | grep -i apt
Aus der Ausgabe können wir sehen, dass APT von zwei Prozessen verwendet wird, die von root gestartet wurden. Die Prozesse tragen die PIDs 3994 und 3999 . Sobald Sie die Prozesse mit APT identifiziert haben, besteht die nächste Vorgehensweise darin, die Prozesse zu beenden oder zu beenden.
Um dies zu erreichen, verwenden Sie den Kill-Befehl wie folgt.
$ kill -9 PID
Aus der Ausgabe werden wir die Prozesse beenden, die die PIDs von 3994 tragen und 3999 wie folgt:
$ kill -9 3994
$ kill -9 3999
Die -9 Flag löst ein SIGKILL-Signal aus, das einen Prozess sofort beendet, ohne dass er ordnungsgemäß beendet werden kann.
Ein viel einfacherer Weg ist die Verwendung von killall Befehl wie gezeigt.
$ killall apt apt-get
Nachdem Sie die problematischen Prozesse beendet haben, können Sie nun mit der Verwendung des APT-Paketmanagers in Ihrem Befehl fortfahren.
Entfernen Sie die Sperrdateien
Die andere Lösung, die Sie anwenden können, besteht darin, die Sperrdateien zu entfernen. Wie bereits erwähnt, verhindern die Sperrdateien den Zugriff auf Daten durch zwei verschiedene Prozesse. Führen Sie die folgenden Befehle aus, um die Sperrdateien loszuwerden.
$ sudo rm /var/lib/dpkg/lock
$ sudo rm /var/lib/dpkg/lock-frontend
Und schließlich konfigurieren Sie die Pakete neu.
$ sudo dpkg --configure -a
Schlussfolgerung
Jede dieser Lösungen hilft Ihnen, diesen Fehler zu umgehen, und lässt Sie den APT-Paketmanager für andere Vorgänge verwenden. Lassen Sie uns wissen, was für Sie funktioniert hat.