Bei der Verwendung des apt-get-Befehls oder des relativ neuen APT-Paketverwaltungswerkzeugs in Ubuntu Linux oder seinen Derivaten wie Linux Mint (das ich tatsächlich als mein primäres Betriebssystem für die tägliche Arbeit verwende), sind Sie vielleicht auf der Kommandozeile auf den Fehler gestoßen – „unable to lock the administration directory (/var/lib/dpkg/) is another process using it“.
Dieser Fehler kann sehr ärgerlich sein, vor allem für neue Linux (Ubuntu)-Benutzer, die vielleicht nicht genau die Ursache des Fehlers kennen.
Unten ist ein Beispiel, das den Fehler der Sperrdatei in Ubuntu 16.10:
tecmint@TecMint:~$ sudo apt install neofetch password for tecmint:E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to lock the administration directory (/var/lib/dpkg), is another process using it?
Die folgende Ausgabe ist ein weiterer möglicher Fall desselben Fehlers:
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)E: Unable to lock directory /var/lib/apt/lists/ E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
Wie können Sie den obigen Fehler lösen, falls Sie in Zukunft darauf stoßen? Es gibt mehrere Möglichkeiten, mit diesem Fehler umzugehen, aber in diesem Leitfaden werden wir die beiden einfachsten und wahrscheinlich effektivsten Möglichkeiten zur Lösung des Problems durchgehen:
Alle apt-get- oder apt-Prozesse finden und beenden
Führen Sie den folgenden Befehl aus, um eine Liste aller Prozesse zu erstellen, deren Name das Wort apt enthält. Sie erhalten eine Liste aller apt- oder apt-get-Prozesse, indem Sie die Befehle ps
und grep zusammen mit einer Pipeline verwenden.
$ ps -A | grep apt
Für jeden apt-get- oder apt-Prozess, den Sie in der Ausgabe des obigen Befehls sehen können, beenden Sie jeden Prozess mit dem folgenden Befehl.
Die Prozess-ID (PID) finden Sie in der ersten Spalte des obigen Screenshots.
$ sudo kill -9 processnumberOR$ sudo kill -SIGKILL processnumber
Der folgende Befehl, bei dem 9
die Signalnummer für das SIGKILL-Signal ist, beendet beispielsweise den ersten apt-Prozess:
$ sudo kill -9 13431OR$ sudo kill -SIGKILL 13431
Löschen Sie die Sperrdateien
Eine Sperrdatei verhindert einfach den Zugriff auf andere Dateien oder Daten auf Ihrem Linux-System, dieses Konzept gibt es auch in Windows und anderen Betriebssystemen.
Wenn Sie einen apt-get- oder apt-Befehl ausführen, wird eine Sperrdatei in einem der folgenden Verzeichnisse angelegt: /var/lib/apt/lists/, /var/lib/dpkg/ und /var/cache/apt/archives/.
Damit wird verhindert, dass der bereits laufende apt-get- oder apt-Prozess von einem Benutzer oder anderen Systemprozessen unterbrochen wird, die mit den von apt-get oder apt verwendeten Dateien arbeiten müssten. Wenn die Ausführung des Prozesses beendet ist, wird die Sperrdatei gelöscht.
Wichtig: Falls eine Sperre in den beiden obigen Verzeichnissen immer noch besteht, ohne dass ein apt-get- oder apt-Prozess läuft, kann dies bedeuten, dass der Prozess aus dem einen oder anderen Grund aufgehalten wurde, weshalb Sie die Sperrdateien löschen müssen, um den Fehler zu beheben.
Führen Sie zunächst den folgenden Befehl aus, um die Sperrdatei im Verzeichnis /var/lib/dpkg/
zu entfernen:
$ sudo rm /var/lib/dpkg/lock
Erzwingen Sie anschließend die Neukonfiguration der Pakete wie folgt:
$ sudo dpkg --configure -a
Alternativ löschen Sie die Sperrdateien im Verzeichnis /var/lib/apt/lists/
und im Cache-Verzeichnis wie folgt:
$ sudo rm /var/lib/apt/lists/lock$ sudo rm /var/cache/apt/archives/lock
Als Nächstes aktualisieren Sie Ihre Paketquellenliste wie folgt:
$ sudo apt updateOR$ sudo apt-get update
Abschließend sind wir zwei wichtige Methoden durchgegangen, um ein häufiges Problem zu lösen, mit dem Benutzer von Ubuntu (und seinen Derivaten) konfrontiert sind, während sie apt-get oder apt sowie aptitude-Befehle ausführen.
Haben Sie noch andere zuverlässige Methoden, die Sie uns mitteilen möchten, um diesen häufigen Fehler zu beheben? Dann kontaktieren Sie uns über das untenstehende Feedback-Formular.
Außerdem können Sie lernen, wie man laufende Prozesse findet und beendet und eine einfache Anleitung zu den Befehlen kill, pkill und killall lesen, um einen Prozess in Linux zu beenden.