Website-Suche

Lock var lib dpkg lock konnte nicht abgerufen werden - Ubuntu/Debian


Diese Fehlermeldung tritt auf jedem Ubuntu oder einem anderen Debian-basierten Linux-System ziemlich häufig auf.

Die Bedeutung der Meldung "Sperre konnte nicht abgerufen werden" ist ziemlich einfach. Wenn Sie versuchen, eine neue Software zu installieren oder Ihr Betriebssystem zu aktualisieren, wird eine andere Softwareinstallation oder ein Software-Upgrade durchgeführt, das im Hintergrund ausgeführt wird und von einem anderen Benutzer mit Administratorrechten auf einem anderen Remote- oder lokalen Endgerät gestartet wurde.

Beispiel für E: Die Fehlermeldung "Lock /var/lib/apt/lists/lock – open (11: Ressource vorübergehend nicht verfügbar)" auf Ubuntu 18.04 konnte nicht abgerufen werden

Eine weitere ziemlich destruktive Ursache für andere verwandte Fehlermeldungen:

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?

ist, dass der Software-Installations- oder Upgrade-Prozess mit dem Befehl apt oder dpkg unterbrochen wurde.

Die Art und Weise, wie das Paketverwaltungstool unter Ubuntu/Debian oder einem anderen Linux-Betriebssystem funktioniert, besteht darin, dass jedes Mal, wenn eine Paketinstallation oder -aktualisierung gestartet wird, das Paketverwaltungstool, in diesem Fall apt oder dpkg, eine Sperrdatei /var/lib/apt/lists/lock oder var/lib/dpkg/lock erstellt, um die gleichzeitige Ausführung eines anderen Softwareinstallations- oder Aktualisierungsprozesses zu verhindern.

In diesem Tutorial lernen Sie:

  • Was ist die wahrscheinlichste Ursache für E: Die Sperre /var/lib/apt/lists/lock auf dem Ubuntu Linux-System konnte nicht abgerufen werden
  • So vermeiden Sie die Fehlermeldung "Sperre konnte nicht abgerufen werden unter Ubuntu Linux
  • Wie finde ich einen Prozess, der eine Sperre auf /var/lib/apt/lists/lock hält?
  • So entsperren Sie die /var/lib/apt/lists/lock-Sperre
  • Wiederherstellung nach vorzeitig beendetem apt- oder dpkg-Installationsprozess

Verwendete Softwareanforderungen und Konventionen

Die Sperre /var/lib/apt/lists/lock konnte nicht abgerufen werden, die durch den Hintergrundaktualisierungsprozess verursacht wurde

Auf Ubuntu Linux-Systemen tritt die häufigste Anzahl von Fällen, in denen die Fehlermeldung E: Could not get lock /var/lib/apt/lists/lock auf Ubuntu Linux-Systemen angezeigt wird, auf, weil die Indexaktualisierung des Paket-Repositorys automatisch vom Ubuntu-System selbst im Hintergrund ausgeführt wird. Dies erstellt einfach eine Sperrdatei und verhindert, dass der Benutzer gleichzeitig die apt- oder dpkg-Tools verwendet.

LÖSUNG
Die einfachste und einzig empfohlene Lösung besteht darin, zu warten und das Update des Paketverwaltungstools im Hintergrund seine Arbeit beenden zu lassen und die Sperrdatei freizugeben.

So vermeiden Sie die Fehlermeldung "Sperre konnte nicht abgerufen werden" unter Ubuntu Linux

Wenn das Ubuntu-System ein Hintergrund-Update auslöst und den Benutzer daran hindert, den Befehl apt oder dpkg zu verwenden, kann dies eine sehr frustrierende Situation sein.

Die Lösung besteht darin, automatische Aktualisierungen der Systempaketliste im Hintergrund zu stoppen und Aktualisierungen manuell auszuführen. Um automatische Updates zu deaktivieren, bearbeiten Sie /etc/apt/apt.conf.d/20auto-upgrades mit Ihrem bevorzugten Texteditor:

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

Sobald Sie die Datei geöffnet haben, schalten Sie die Update-Package-Lists-Direktive von 1 auf 0 aus, wie unten in Zeile 1 gezeigt:

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "1";

So finden Sie einen Prozess und einen Benutzer, der eine Sperre hält

Die folgenden Schritte können verwendet werden, um den Benutzer und den Prozess zu identifizieren, der eine Sperre hält, die den Benutzer daran hindert, den Befehl apt oder dpkg erfolgreich auszuführen:

  1. Notieren Sie sich die Dateisperre, die gesperrt wird. Zum Beispiel:

    E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)
    E: Unable to lock directory /var/lib/apt/lists/ 
    
  2. Verwenden Sie den Befehl fuser, um eine Prozess-ID (PID) zu finden, die für die Sperre verantwortlich ist:

    sudo fuser /var/lib/apt/lists/lock
     /var/lib/apt/lists/lock: 3384
    
  3. Suchen Sie anhand der zuvor abgerufenen PID den Benutzer und führen Sie den Befehl aus:

    ps -p 3384 -o user,comm,args
    USER     COMMAND         COMMAND
    root     apt             apt update
    
  4. Finden des Benutzers und des Prozesses, der für das Halten einer Sperre für die Datei /var/lib/apt/lists/lock auf einem Ubuntu Linux-System verantwortlich ist.

    So entsperren Sie die Sperre "/var/lib/apt/lists/lock"

    In dem Szenario, in dem Sie in der Lage sind, den Benutzer und den Prozess zu identifizieren, der eine Dateisperre hält, wie im vorherigen Abschnitt beschrieben, untersuchen Sie weiter, und prüfen Sie, ob Sie den Prozess ordnungsgemäß abschließen können.

    WARNING
    Entfernen Sie die Sperrdatei nicht, wenn die Möglichkeit besteht, den Prozess ordnungsgemäß beenden zu lassen. Dies kann Ihrem System schaden und in den gleichen Fällen sogar ohne die Option zur Wiederherstellung.

    Für den Fall, dass das Paketverwaltungstool hängen geblieben ist und daher nicht in der Lage ist, die Sperrdatei zu beenden und zu entfernen, können Sie versuchen, den Prozess zu beenden. Dies kann z. B. erreicht werden durch:

    sudo fuser -vki /var/lib/apt/lists/lock
    [sudo] password for linuxconfig: 
                         USER        PID ACCESS COMMAND
    /var/lib/apt/lists/lock:
                         root       3384 F.... apt
    Kill process 3384 ? (y/N)
    

    oder durch Verwendung des Befehls kill und der zuvor abgerufenen PID, z. B. 3384:

    sudo kill -9 3384
    

    Für den Fall, dass Sie den Prozess manuell beendet haben oder den Prozess und den Benutzer nicht finden können, der die Sperre hält, besteht die Möglichkeit, dass die zuvor ausgeführte Softwareinstallation oder das Software-Upgrade vorzeitig beendet wurde, ohne dem Paketverwaltungstool die Möglichkeit zu geben, die Sperre zu entfernen.

    In diesem Szenario entfernen Sie die Sperrdatei manuell:

    sudo rm /var/lib/apt/lists/lock
    sudo rm /var/lib/dpkg/lock
    

    Wiederherstellung nach einem vorzeitig beendeten APT- oder DPKG-Installationsprozess

    Wenn der Installationsvorgang vorzeitig unterbrochen wird, kann es sein, dass Ihr System vorübergehend unterbrochen wird, sodass Sie keine weiteren Softwareinstallationen durchführen können, was zu einem Fehler ähnlich dem folgenden führt:

    E: Sub-process /usr/bin/dpkg returned an error code (2)
    

    Versuchen Sie die folgenden Befehle, um das defekte DPKG-System wiederherzustellen:

    sudo dpkg --configure -a
    sudo apt install -f
    

    Führen Sie bei einem unterbrochenen System-Upgrade Folgendes aus:

    sudo apt upgrade --fix-broken
    

Verwandte Artikel: