Gründe und Lösungen für den Fehler "Unable to block (/var / lib / dpkg /)" in Ubuntu

Manchmal erhalten wir beim Installieren / Aktualisieren eines Pakets über die Befehlszeile (mit apt-get oder apt) in Ubuntu diesen Fehler: E: Das Admin-Verzeichnis kann nicht gesperrt werden (/var / lib / dpkg /). Aus der Sicht eines Anfängers ist dies ein komplexer Fehler, da die meisten neuen Benutzer das Verzeichnis "/var / lib / dpkg /" nicht kennen und nicht wissen, was es mit der aktuellen Operation zu tun hat, die sie ausführen. .

Technisch gesehen wird der Fehler vom System in mehreren Szenarien generiert und es sollte darauf geachtet werden, wie dieses Problem gelöst wird. In diesem Artikel werden alle diese Aspekte im Zusammenhang mit diesem Fehler erörtert und wie Sie ihn sicher beseitigen können.

Index

    Absturz kann nicht gestoppt werden (/var/lib/dpkg/) - Problem diagnostizieren

    Wenn dieser Fehler auftritt, sollte der erste Schritt darin bestehen, die Fehlerbeschreibung sorgfältig zu lesen. Es enthält normalerweise einige wichtige Zeitspartipps. Die folgenden Screenshots zeigen beispielsweise den Befehl "apt-get install" mit ähnlichen Fehlern.

    Wenn Sie jedoch genauer hinschauen, werden Sie feststellen, dass der Text in Klammern in der ersten Zeile und der Text nach dem Komma in der zweiten Zeile in beiden Szenarien unterschiedlich sind, wodurch deutlich wird, dass der Fehler im ersten Szenario etwas zu tun hat mit den Berechtigungen des Benutzers tun, während es im zweiten Szenario damit zusammenhängt, dass die Sperrdatei vorübergehend nicht verfügbar ist.

    Wenn Sie einen berechtigungsbezogenen Fehler erhalten (wie im ersten Bild oben gezeigt), ist es sehr wahrscheinlich, dass der Benutzer, der den Befehl "apt-get" oder "apt" ausführt, nicht über ausreichende Berechtigungen verfügt und der Befehl ohne sudo ausgeführt wurde. Sobald der Befehl mit Root-Rechten ausgeführt wird, verschwindet der Fehler.

    Wenn es sich jedoch um einen absturzbedingten Fehler handelt, sind weitere Untersuchungen erforderlich.

    Was ist /var/lib/dpkg/?

    "/ Var / lib / dpkg /" kann man sich als Arbeitsverzeichnis des Paketmanagers "dpkg" vorstellen, der wiederum die Engine hinter "apt-get" (sowie den Tools "apt" und "aptitude" ist) . .) Immer wenn diese Tools zum Installieren oder Entfernen von Software verwendet werden, sperren sie die Paketdatenbank (indem sie eine Sperrdatei erstellen), bevor die eigentliche Operation ausgeführt wird, indem die Sperre für das Verzeichnis '/var / lib / dpkg / abgerufen wird. „Dieser Schritt hilft, Datenbeschädigungen oder Unterbrechungen eines laufenden Vorgangs zu verhindern, der von einem anderen Prozess ausgeführt wird.

    Vorausgesetzt, Sie verstehen das oben erläuterte Konzept, werden wir nun die Schritte der Untersuchung besprechen.

    Schritt 1: Überprüfen Sie, ob ein anderer Prozess die Sperre hält

    Das sollte ganz logisch klingen, oder? Und um dies zu tun, können Sie die Hilfe des alten ps-Befehls verwenden und seine Ausgabe auf den grep-Befehl umleiten, damit Sie weniger Zeit damit verbringen, nach dem Gewünschten zu suchen. Hier ist beispielsweise ein Befehl, mit dem Sie herausfinden können, ob bereits "apt-", "apt-get"- oder "aptitude"-Prozesse ausgeführt werden:

    ps aux | grep apt

    Schritt 2: Warten Sie eine Weile und ergreifen Sie dann Maßnahmen

    Wenn es einen Befehl gibt, der die Sperre bereits erworben hat, warten Sie idealerweise, bis er abgeschlossen ist und geben Sie die Sperre frei. Wenn der Befehl jedoch länger als erwartet dauert und Sie sicher sind, dass er irgendwo hängen bleibt, können Sie ihn mit den verfügbaren kill- oder killall-Befehlen beenden (weitere Informationen hier). Dies sollte das Problem beheben, mit dem Sie konfrontiert sind.

    Eine erwähnenswerte Sache ist, dass es niemals empfohlen wird, einen "dpkg"-Prozess direkt zu beenden - dies kann die Paketdatenbank beschädigen. Ich betone diesen Punkt, weil Sie jetzt wissen, dass Tools wie "apt" und "apt-get" "dpkg" intern aufrufen. Sie könnten also darüber nachdenken, den "dpkg"-Prozess zu beenden, wenn Sie ihn in der Ausgabe von "ps"-Befehlen sehen.

    Kill-Prozesse, die durch Ausführen der Befehle apt, apt-get oder aptitude gestartet wurden, sind im Allgemeinen viel sicherer.

    Schritt 3: Wenn die Ausgabe des Befehls "ps" nicht hilft

    Beachten Sie, dass neben Befehlszeilentools wie apt und apt-get auch einige GUI-basierte Anwendungen wie Software Center oder Update Manager diese Sperre erhalten.

    Hinweis - Wenn Sie den Absturzfehler sofort nach dem Booten in Ubuntu erhalten, ist es möglich, dass Ihre Operation die vom Update-Manager initiierte automatische Abfrage überschneidet. Eine Weile zu warten sollte das Problem in diesem Fall beheben.

    Zurück zu den GUI-basierten Anwendungen, über die wir gesprochen haben. Eine weitere nützliche und zeitsparende Option ist die Verwendung des Befehls "fuser".

    Mit "fuser" müssen Sie nur wissen, auf welche Datei zugegriffen wird ("/var / lib / dpkg / lock" in unserem Fall), und Sie können den Zugriff auf diese Datei beenden, auch wenn Sie nicht wissen, welcher Prozess es ist ist. Beispielsweise:

    sudo fuser -cuk / var / lib / dpkg / lock

    Beachten Sie, dass der Befehl fuser die Sperre, die Sie durch den gerade abgeschlossenen Prozess erhalten haben, nicht aufhebt.

    sudo rm -f /var/lib/dpkg/lock

    Hinweis : Ein "Sperre freigeben" bedeutet einfach, die Datei "Sperre" zu löschen, damit andere Prozesse die Sperre "erhalten" können, indem sie sie neu erstellen.

    Möglicherweise müssen Sie auch die folgenden beiden Befehle ausführen:

    sudo fuser -cuk/var/cache/apt/archive/lock; sudo rm -f / var / cache / apt / Archive / lock

    Wichtiger Tipp Löschen Sie niemals Sperrdateien als ersten Schritt - dies sollte Ihr letzter Ausweg sein.

    Fazit

    Im Allgemeinen ist es immer gut, den Grund für das Problem zu verstehen, bevor Sie fortfahren und es beheben. Blindes Ausprobieren von Lösungen zur Behebung eines Problems wird Ihnen nie helfen - es kann in einigen Fällen erfolgreich sein, aber meistens werden Sie sich in noch größeren Schwierigkeiten befinden, insbesondere wenn Ihr Betriebssystem Linux ist.

    Sind Sie schon einmal dem Fehler begegnet, den wir hier besprechen? wie hast du es gelöst? Hinterlassen Sie Ihre Antwort in den Kommentaren.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

    Go up

    Diese Website verwendet Cookies, um Ihnen ein besseres Erlebnis beim Surfen auf der Website zu bieten. Lesen Sie mehr über Cookies