Website-Suche

Fix „Das Administrationsverzeichnis (/var/lib/dpkg/) konnte nicht gesperrt werden“ in Ubuntu


Bei der Verwendung des apt-get-Befehls oder des relativ neuen APT-Paketverwaltungstools in Ubuntu Linux oder seinen Derivaten wie Linux Mint (das ich eigentlich als mein primäres Betriebssystem verwende). Bei der täglichen Arbeit ist möglicherweise der Fehler „Das Administrationsverzeichnis (/var/lib/dpkg/) kann nicht gesperrt werden, da es von einem anderen Prozess verwendet wird“ aufgetreten die Befehlszeile.

Dieser Fehler kann besonders für neue Linux-Benutzer (Ubuntu) sehr ärgerlich sein, da sie die Ursache des Fehlers möglicherweise nicht genau kennen.

Unten sehen Sie ein Beispiel, das den Sperrdateifehler in Ubuntu 16.10 zeigt:

tecmint@TecMint:~$ sudo apt install neofetch
[sudo] 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 oben genannten Fehler beheben, falls Sie in Zukunft darauf stoßen? Es gibt mehrere Möglichkeiten, mit diesen Fehlern umzugehen. In diesem Leitfaden gehen wir jedoch auf die beiden einfachsten und wahrscheinlich effektivsten Lösungswege ein.

1. Finden und beenden Sie alle apt-get- oder apt-Prozesse

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 mit allen apt oder apt-get< verarbeitet die Befehle ps und grep zusammen mit einer Pipeline.

ps -A | grep apt

Beenden Sie für jeden apt-get- oder apt-Prozess, den Sie in der Ausgabe des obigen Befehls sehen können, jeden Prozess mit dem folgenden Befehl.

Die Prozess-ID (PID) finden Sie in der ersten Spalte des obigen Screenshots.

sudo kill -9 processnumber
OR
sudo kill -SIGKILL processnumber

Beispielsweise wird im folgenden Befehl, bei dem 9 die Signalnummer für das SIGKILL-Signal ist, der erste apt-Prozess beendet:

sudo kill -9 13431
OR
sudo kill -SIGKILL 13431

2. Löschen Sie die Sperrdateien

Eine Sperrdatei verhindert einfach den Zugriff auf andere Dateien oder einige Daten auf Ihrem Linux-System. Dieses Konzept gibt es auch in Windows und anderen Betriebssystemen.

Sobald Sie einen apt-get- oder apt-Befehl ausführen, wird eine Sperrdatei unter einem dieser Verzeichnisse /var/lib/apt/lists/ erstellt. , /var/lib/dpkg/ und /var/cache/apt/archives/.

Dadurch wird verhindert, dass der bereits laufende apt-get- oder apt-Prozess durch einen Benutzer oder andere Systemprozesse unterbrochen wird, die mit den verwendeten Dateien arbeiten müssten apt-get oder apt. Wenn die Ausführung des Prozesses abgeschlossen ist, wird die Sperrdatei gelöscht.

Wichtig: Falls eine Sperre in den beiden oben genannten Verzeichnissen immer noch besteht und kein erkennbarer apt-get- oder apt-Prozess ausgeführt wird, kann dies bedeuten, dass der Prozess aus einem bestimmten Grund angehalten wurde oder das andere, daher müssen Sie die Sperrdateien löschen, 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 können Sie die Sperrdateien im Verzeichnis /var/lib/apt/lists/ und im Cache wie folgt löschen:

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock

Aktualisieren Sie als Nächstes die Liste Ihrer Paketquellen wie folgt:

sudo apt update
OR
sudo apt-get update

Abschließend haben wir zwei wichtige Methoden durchgespielt, um ein häufiges Problem zu lösen, mit dem Benutzer von Ubuntu (und seinen Derivaten) konfrontiert sind, wenn sie apt-get oder apt ausführen aptitude-Befehle.

Können Sie uns andere zuverlässige Methoden zur Behebung dieses häufigen Fehlers mitteilen? Dann nehmen Sie über das unten stehende Feedback-Formular Kontakt mit uns auf.

Darüber hinaus möchten Sie möglicherweise auch lernen, wie Sie laufende Prozesse finden und beenden, und eine einfache Anleitung zu den Befehlen kill, pkill und killall lesen, um einen Prozess unter Linux zu beenden.