Fix: Die Sperrdatei / var / lib / dpkg / lock konnte nicht geöffnet werden
Das Abrufen der Fehlermeldung “Sperrdatei / var / lib / dpkg / lock konnte nicht geöffnet werden” kann verwirrend sein, da Sie möglicherweise sofort danach gefragt werden, ob Sie root sind, selbst wenn Sie einen Aktualisierungsbefehl mit dem Präfix sudo ausgeführt haben. Dieser Fehlerbefehl wird bei fast allem angezeigt, was den Paketmanager apt-get verwendet. Unabhängig davon, ob Sie einen Desktop oder Laptop aktualisieren, auf dem eine der verschiedenen Versionen von Ubuntu oder ein Raspberry Pi mit dem Raspbian Debian-Spin ausgeführt wird, kann dies auf jeder dieser Plattformen ein Problem darstellen.
Trotzdem ist die Lösung ziemlich einfach. Normalerweise können Sie alles ignorieren, was Sie fragt, ob Sie root sind oder nicht, und direkt zum Kern des Problems gehen, das sich auf zwei Prozesse bezieht, die gleichzeitig versuchen, auf eine gesperrte Datei zuzugreifen.
Methode 1: Sicherstellen, dass sudo auf jeden Teil des Befehls zugreifen kann
Wenn Sie sudo apt-get update && apt-get upgrade ausführen, wird möglicherweise dieser Fehler angezeigt, da der zweite Prozess nicht über die richtige Berechtigung zum Zugriff auf die Datei / var / lib / dpkg / lock verfügt.
Versuchen Sie stattdessen, sudo apt-get update und sudo apt-get upgrade auszuführen, um festzustellen, ob dies einen Unterschied macht. Wenn dies der Fall ist, ist Ihr Problem bereits behoben, und dies lag lediglich daran, dass Sie dem zweiten Prozess nicht genügend Berechtigungen für den Zugriff auf die Datei erteilt haben. Beachten Sie, dass dieser Befehl alle Ihre Pakete aktualisiert und anschließend aktualisiert. Daher werden Sie möglicherweise aufgefordert, ihn zu genehmigen, und die Ausführung kann eine Weile dauern.
Ansonsten ist das Problem jedoch bereits vollständig behoben und Sie müssen nichts weiter tun.
Methode 2: Entfernen der Datei / var / lib / dpkg / lock
Diejenigen, die curl, wget oder einen anderen Befehl verwenden, der eine Datei diskret herunterlädt, müssen diesem Befehl möglicherweise auch sudo voranstellen, wenn sie von Raspbian aus arbeiten, da dies in einigen Fällen den Platz von apt-get einnimmt. Diejenigen, die mit reinem Debian, Xubuntu, Lubuntu, Linux Mint und anderen ähnlichen Desktop- / Laptop-orientierten arbeiten, müssen sich darüber keine Gedanken machen, aber es kann einen weiteren Versuch wert sein.
Wenn dies immer noch nicht funktioniert hat, müssen Sie möglicherweise überprüfen, ob kein anderes Programm versucht, auf die Datei zuzugreifen, während Sie Ihr Update ausführen. Versuchen Sie, sudo lsof / var / lib / dpkg / lock zu verwenden, um festzustellen, ob andere Prozesse ausgeführt werden, die es geöffnet haben. Wenn Sie es irgendwo geöffnet haben, können Sie die Anwendung einfach schließen.
Beachten Sie, dass Lese- und Schreibzugriff für eine Anwendung zum Öffnen dieser Datei per Erweiterung bedeutet, dass das Programm über Root-Rechte verfügen muss. Sie benötigen also Root-Rechte, um das Programm zu schließen. Sie können sogar versuchen, die Task-Manager-Anwendung zu durchsuchen, wenn Sie eine grafische Desktop-Umgebung verwenden, die diese Funktion unterstützt. Klicken Sie einfach mit der rechten Maustaste auf den fehlerhaften Prozess und schließen Sie ihn, wenn Sie die entsprechenden Berechtigungen haben. Probieren Sie die Befehle kill oder killall auch über die Befehlszeile aus.
Sie können jetzt versuchen, Ihre apt-get-Befehle erneut auszuführen und zu prüfen, ob dies einen Unterschied macht. Andernfalls müssen Sie jedoch nichts weiter tun. Wenn Sie immer noch Probleme haben, entfernen Sie die Sperrdateien sofort. Dies sollte zwar als letzter Ausweg betrachtet werden, verursacht jedoch normalerweise keine Probleme im Zusammenhang mit dem apt-get-Programm. Bevor Sie dies tun, sollten Sie noch andere Methoden ausschöpfen, da dies zu Problemen mit dem apt-System führen kann.
Ein Neustart hilft manchmal, aber wenn Sie sich auf einem Server oder einem Raspbian-Gerät befinden, ist dies möglicherweise keine praktikable Option. Versuchen Sie, sudo rm / var / lib / dpkg / lock && sudo rm / var / lib / apt / lists / lock auszuführen, um die bestimmten Dateien freizugeben, die apt beim Ausführen betrachtet. Achten Sie auf die Namen dieser Dateien, da das Ausführen von rm als root destruktiv ist.
Angenommen, Sie haben dies getan, nachdem Sie nur die anderen Optionen ausgeschöpft haben, können Sie versuchen, Ihre Aktualisierungsbefehle erneut auszuführen und zu sehen, was passiert. Sie sollten keine weiteren Probleme haben, da die Dateien zu diesem Zeitpunkt nicht mehr vorhanden wären, obwohl die apt-get-Routinen sie während der Ausführung neu erstellen können.