Die Meldung „could not get lock /var/lib/dpkg/lock
” Fehler ist ziemlich häufig in Debian/Ubuntu, das in einer virtuellen Maschine ausgeführt wird. Vorhandene Problemumgehungen im Internet (z. B. Beenden des apt-get-Prozesses oder Entfernen der Sperrdatei) sind nicht ideal, da sie Ihr System beschädigen können und Sie in Zukunft wieder mit demselben Fehler konfrontiert werden.
Fehler „Sperre /var/lib/dpkg/lock konnte nicht abgerufen werden“ ein für alle Mal behoben
Ich werde Ihnen die wahre Ursache dieses Fehlers mitteilen und Ihnen zeigen, wie Sie ihn ein für alle Mal beheben können. Die Fehlermeldung lautet wie folgt:
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 Fehlermeldung gibt bereits einen Hinweis auf die Ursache des Problems:Ein anderer Prozess verwendet /var/lib/dpkg/
. Dies liegt daran, dass Ubuntu standardmäßig unbeaufsichtigte Upgrades für Sicherheitsupdates aktiviert.
Wenn Ihr Ubuntu-Betriebssystem mit dem Booten fertig ist, führt es automatisch das apt-get update
aus Befehl. Wenn Sicherheitsupdates verfügbar sind, werden diese im Hintergrund installiert. Wenn Sie also sudo apt upgrade
ausführen Befehl gleichzeitig wird der obige Fehler angezeigt. Da Sie Ubuntu in Virtualbox oder VMware Workstation nicht so oft verwenden wie Ubuntu auf Bare Metal, wird Ihre virtuelle Ubuntu-Maschine selten aktualisiert, sodass Sie diesen Fehler häufiger in der virtuellen Maschine sehen.
Unabhängig davon, ob Sie Ubuntu Desktop auf Bare Metal oder in einer virtuellen Maschine verwenden, können Sie unbeaufsichtigte Upgrades deaktivieren, um dieses Problem ein für alle Mal zu lösen.
Hinweis:Dieser Fehler tritt selten auf Ubuntu-Servern auf und es wird empfohlen, unbeaufsichtigte Upgrades auf Servern zu aktivieren, um Sicherheitsupdates automatisch zu installieren.
Hier ist wie. Öffnen Sie Software & Updates
aus Ihrem Anwendungsmenü.
Klicken Sie dann auf updates
Tab. Standardmäßig werden Sicherheitsupdates automatisch heruntergeladen und installiert. Sie können es auf display immediately
ändern , also wird sudo apt-get upgrade
nicht ausgeführt Befehl im Hintergrund.
Geben Sie dann Ihr Benutzerkennwort ein, damit diese Änderung wirksam wird.
Starten Sie danach Ihren Computer neu.
Unbeaufsichtigte Upgrades über die Befehlszeile deaktivieren
Sie können die gleichen Ergebnisse auch über die Befehlszeile erzielen. Öffnen Sie in Ihrem Terminal /etc/apt/apt.conf.d/20auto-upgrades
Datei mit einem Befehlszeilen-Texteditor wie nano.
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
Der ursprüngliche Inhalt lautet wie folgt:
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "0"; APT::Periodic::Unattended-Upgrade "1";
Um das automatische Sicherheitsupdate zu deaktivieren, ändern Sie sie in
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "0"; APT::Periodic::AutocleanInterval "0"; APT::Periodic::Unattended-Upgrade "0";
Um die Datei im Nano-Texteditor zu speichern, drücken Sie Ctrl+O
, und drücken Sie dann die Eingabetaste, um den Dateinamen zu bestätigen. Drücken Sie Ctrl+X
beenden. Starten Sie dann Ihren Computer neu.
Aktualisieren
Ein Leser sagte mir, dass nach Befolgen der obigen Anweisung die Fehlermeldung immer noch zu sehen ist, wenn er sudo apt update
ausführt Befehl sofort, nachdem Ubuntu den Startvorgang beendet hat. Das liegt daran, dass der Hintergrund „apt update
” ist noch nicht fertig.
Wenn Sie häufig Pakete manuell aktualisieren, würde ich empfehlen, „automatisch nach Updates suchen“ auf weekly
zu setzen statt daily
. Um die Fehlermeldung wirklich ein für alle Mal zu beheben, setzen Sie den Wert auf Never
.
Wann führt Ubuntu unbeaufsichtigte Upgrades durch?
Ubuntu führt nach dem Systemstart unbeaufsichtigte Upgrades durch. Auch Systemd kann unbeaufsichtigte Upgrades durchführen. Der apt-daily.service
wird verwendet, um die Paketliste täglich und apt-daily-upgrade.service
zu aktualisieren wird verwendet, um täglich Sicherheitsupdates herunterzuladen und zu installieren. Sie können ihren Status überprüfen mit:
systemctl status apt-daily.service systemctl status apt-daily-upgrade.service
apt-daily.service
wird von apt-daily.timer
gesteuert . Ein Timer ist wie ein Cron-Job, der zu bestimmten Zeiten einen systemd-Dienst mit demselben Namen ausführt. Der apt-daily.timer
Die Konfigurationsdatei ist /lib/systemd/system/apt-daily.timer
. Sie können den Inhalt überprüfen mit:
cat /lib/systemd/system/apt-daily.timer
Ausgabe:
[Unit] Description=Daily apt download activities [Timer] OnCalendar=*-*-* 6,18:00 RandomizedDelaySec=12h Persistent=true [Install] WantedBy=timers.target
Die grüne Linie zeigt an, dass apt-daily.service
findet täglich um 6:00 und 18:00 Uhr statt. RandomizedDelaySec=12h
bedeutet, dass die Aktion um 0 ~ 12 Stunden verschoben wird, wenn ein anderer Timer die gleiche Startzeit hat.
apt-daily-upgrade.service
wird von apt-daily-upgrade.timer
gesteuert , dessen Konfigurationsdatei /lib/systemd/system/apt-daily-upgrade.timer
ist .
cat /lib/systemd/system/apt-daily-upgrade.timer
Ausgabe:
[Unit] Description=Daily apt upgrade and clean activities After=apt-daily.timer [Timer] OnCalendar=*-*-* 6:00 RandomizedDelaySec=60m Persistent=true [Install] WantedBy=timers.target
Wie Sie sehen können, apt-daily-upgrade.service
wird täglich um 6:00 Uhr ausgeführt. RandomizedDelaySec=60m
bedeutet, dass die Aktion um 0 ~ 60 Minuten verschoben wird, wenn ein anderer Timer die gleiche Startzeit hat.
Die beiden .service
Dateien und zwei .timer
Dateien werden von apt
installiert Paket, das auch mit /usr/lib/apt/apt.systemd.daily
kommt Shell-Skript, das von apt-daily.service
ausgeführt wird und apt-daily-upgrade.service
.
Die /usr/lib/apt/apt.systemd.daily
Shell-Skript liest Konfigurationen aus /etc/apt/apt.conf.d/20auto-upgrades
Datei. Um den obigen Fehler zu beheben, müssen Sie also nicht die beiden Timer deaktivieren.
Das ist es! Ich hoffe, dieser Artikel hat Ihnen geholfen, das Problem „could not get lock /var/lib/dpkg/lock
” Fehler auf Ubuntu. Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter, um weitere Tipps und Tricks zu erhalten. Pass auf dich auf 🙂