Frage Kann das Verwaltungsverzeichnis (/ var / lib / dpkg /) nicht gesperrt werden?


Ich bekomme diesen Fehler beim Versuch zu verwenden apt-get:

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 kann ich das beheben?


837
2017-11-30 02:12


Ursprung


Dies gilt auch, wenn Sie neu starten? Vielleicht blockiert ein alter Apt-Thread die Datei, Sie müssen herausfinden, welche und killen Sie es oder nur Neustart tut es. - Bruno Pereira
Dieses Verfahren fast immer behebt dieses Problem, und wenn es nicht ist, ist seine Ausgabe (der Text vom Terminal) manchmal nützlich. Wenn Sie sich dazu entscheiden, können Sie diesen Text zu Ihrer Frage hinzufügen. - Eliah Kagan
Ich würde noch eine weitere Sache vorschlagen, die Sie bemerken könnten, wenn Sie mit diesem Problem konfrontiert werden. Überprüfen Sie, ob Ihre Laufwerke gemountet sind. Ist dies nicht der Fall, können Sie die Sperre möglicherweise nicht erfassen, da das Paketinstallationsprogramm nicht auf das Dateisystem zugreifen kann. Hoffe das hilft. :) - Hari
Sie können verwenden sudo lsof /var/lib/dpkg/lock um den Prozess zu finden, der die Sperrdatei besitzt (wenn leer, gehe davon aus, dass die Sperre von einem vorherigen Start übrig ist und sein kann sudo rmd), dann überlegen, a sudo kill -9 <PID> (Erhalte <PID> von lsof Ausgabe. - waltinator
Dies kann ein Zeichen dafür sein, dass etwas anderes Software installiert oder entfernt und die apt-Datenbank gesperrt hat, während sie die Aktionen ausführt. - Foreever


Antworten:


Dies sollte als letzter Ausweg verwendet werden. Wenn Sie dies achtlos verwenden, können Sie mit einem defekten System enden. Bitte versuchen Sie die andere  Antworten  zuerst bevor du das machst.

Sie können die Sperrdatei mit dem folgenden Befehl löschen:

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

Möglicherweise müssen Sie auch die Sperrdatei im Cache-Verzeichnis löschen

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

Versuchen Sie danach, Synaptic erneut zu öffnen.


719
2018-02-07 02:22



ok ... aber warum ist das passiert? - Jaime Hablutzel
@jaime: Wahrscheinlich wurde apt-get (oder ein GUI-Frontend dazu) während der Ausführung angehalten, was apt in einem gesperrten Zustand beließ. - bouke
Ich würde dies als die beste Antwort akzeptieren. richtig eins. - Anwar
@AnwarShah nein, es gibt andere Überlegungen, bevor Sie herumgehen, Dateien des Systems entfernend. - Braiam
rm / var / lib / dpkg / Sperre; dpkg --configure -a: - WitchCraft


Ich sehe so ziemlich alle Antworten empfehlen das Löschen des Schlosses. Ich empfehle das nicht als erste Maßnahme; vielleicht, wenn es keine Alternative gibt. Die Sperre wird gesetzt, wenn ein Apt-Prozess ausgeführt wird, und wird nach Abschluss des Prozesses entfernt. Wenn es eine Sperre gibt, bei der anscheinend kein Prozess läuft, kann dies bedeuten, dass der Prozess aus irgendeinem Grund stecken geblieben ist.

Wenn du es versuchst

ps aux | grep apt

das fängt Prozesse auf, die das Wort enthalten apt, mindestens. Wenn Sie ein sehen apt-get Prozess oder ein aptitude Prozess, der fest bleibt, können Sie versuchen

kill processnumber

und wenn das nicht funktioniert, versuche es

kill -9 processnumber

Dies sollte den Prozess beenden und die Sperre entfernen. Töten eines apt oder aptitude Prozess ist harmlos, es sei denn, es befindet sich mitten in der Paketinstallation. In jedem Fall, wenn der Prozess stecken geblieben ist, haben Sie wahrscheinlich keine andere Wahl, als ihn zu töten.

Töten a dpkg Prozess direkt, wenn vorhanden, ist keine gute Idee, denn wenn dpkg Ist aktiv, wird wahrscheinlich die Paketdatenbank manipuliert, und wenn sie gelöscht wird, kann die Paketdatenbank in einem inkonsistenten Zustand bleiben; d.h. beschädigt.

Töten eines apt-get oder aptitude Prozess ist im Allgemeinen viel sicherer.


548
2017-07-03 09:01



@Link denke ich nicht töten dpkg ist eine gute Idee, weil normalerweise dpkg manipuliert die Paketdatenbank direkt und dies könnte zu einer Beschädigung führen. - Faheem Mitha
Wenn das Löschen von dpkg die Datenbank beschädigen kann, wurde dpkg schlecht entworfen. Zeitraum. - Jay Sullivan
für mich ergab dies einen Fehler dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. beim Laufen sudo apt-get dist-upgrade nochmal. Durch Ausführen des Befehls wurde das Problem behoben. Ich liebe Nix! - Wayne Phipps
Hinweis, killall apt-get macht das Gleiche wie du ps/kill Combo. - Cerin
Beachten Sie, dass ich festgestellt habe, dass ich laufen musste sudo dkpg --configure -a nach dem Töten des Rogue Apt-Prozesses, damit die Dinge wieder normal werden. - starbeamrainbowlabs


Entfernen Sie Ihre /var/lib/dpkg/lock Datei und erzwingen Paketneukonfiguration.

sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a

Es sollte danach funktionieren.


175
2018-01-29 11:27



Diese Befehle haben geholfen, aber jetzt, als ich versuchte, es erneut zu installieren, habe ich folgende Antwort bekommen: Konnte nicht lock / var / cache / apt / archives / lock - open bekommen. Ich denke, ich müsste das vorherige Entriegelungs-Problem tun, aber bitte sagen Sie mir die genauen Schlüsselwörter für den Befehl. Ich bin ein absoluter Anfänger. - kern
sudo - Befehl als root ausführen, rm - Datei löschen. Vielleicht versuchen Sie es sudo rm /var/cache/apt/archives/lock - kubahaha
Dies ist kein guter Vorschlag: Blindes Entfernen des Glücks könnte den Status von dpkg beschädigen. - poolie
Warum repariert es sich heutzutage nicht? - Marian Klühspies
Das hat für mich funktioniert. Die aws oben nicht. - 1rq3fea324wre


Sie erhalten diese Nachricht, wenn Sie vergessen zu verwenden sudo wenn ein apt-Befehl ausgeführt wird.

Andernfalls ist dies ein Zeichen dafür, dass etwas anderes Software installiert oder entfernt und die apt-Datenbank gesperrt hat, während sie die Aktionen ausführt. Die Programme, die dies tun können, sind:

  • Das Softwarecenter
  • Der Update-Manager
  • Der apt Link Installer (ich denke, das geht jetzt durch SC)
  • Die Befehlszeilenprogramme apt-get oder aptitude.
  • Der synaptische Paketmanager

WICHTIG: Versuchen Sie das folgende nur als letzten Ausweg, da dies Ihr System zum Absturz bringen kann. Versuchen Sie zunächst, eine laufende Instanz von apt oder aptitude wie beschrieben in Faheems Antwort.

Sie können die Sperre erzwingen, indem Sie die Datei entfernen, aber Es wird nicht empfohlen, ohne zuerst das Programm zu schließen, das das Schloss sicher hält, da Sie eine Beschädigung verursachen oder eine Installation unterbrechen könnten (schlecht). Der von João bereitgestellte Befehl sollte das Programm schließen, das die Sperre enthält, und dann die Sperre entfernen, aber Sie nicht vor einer Installationsunterbrechung schützen:

sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock   

Und derselbe Befehl kann für die Apt-Cache-Sperre verwendet werden:

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

96
2017-11-30 02:17



Ich habe meine Software aktualisiert, als ich die Fehlermeldung erhalten habe. - raindrop
Dies stürzte für mich - umpirsky
sudo fuser -cuk /var/cache/apt/archives/lock Ich habe meinen Computer direkt neu gestartet. apt-get ist jetzt freigeschaltet. - Maxime R.
Dies hat meinen gesamten Server zum Absturz gebracht. - 에이바
Apt oder dpkg auf halbem Wege zu töten ist keine gute Idee. - poolie


Der wahrscheinlichste Weg, dies zu erreichen, ist:

  • boot Ubuntu
  • starte ein Terminal
  • Art sudo apt-get install whatever

und die Befehlszeile apt überschneidet sich mit update-manager automatisches Abrufen.

Also wenn du es in ein paar Minuten nochmal versuchst, sollte es das beheben.


66
2017-11-30 03:08



Toller Hinweis im Gegensatz zu dem halben Dutzend Antworten, die vorschlugen, die Datei einfach zu entfernen ;-) Ich lief zufällig in der Ausgabe und das ist es wahrscheinlich! - Alex
Sicher genug, musste etwas warten sudo apt-get install könnte klappen. - sargas
Nun, das funktioniert nicht immer, ja, ich habe den Neustart oft benutzt. Wenn es nicht geeignet ist, versuchen Sie es askubuntu.com/a/315791/378845 bevor Sie Sperren entfernen - Menuka Ishan
@Menuka, warum lass es nicht einfach zu Ende gehen. - poolie
@poolie Da es noch weitere Einschränkungen gibt, die den Abschluss des Prozesses verhindern - Menuka Ishan


Nur ein Programm kann die Sperre halten. Stellen Sie sicher, dass Sie keine Begabung, Synaptic oder Adept ausführen. Schließen Sie das Programm und führen Sie es erneut aus, es sollte funktionieren. Sie können entweder synaptic öffnen oder ein anderes Terminalfenster geöffnet haben, in dem apt-get ausgeführt wird, oder den update manager laufen lassen. Überprüfen Sie, ob einige davon ausgeführt werden Sie laufen in der Nähe und versuchen es erneut.

Versuchen Sie diesen Befehl im Terminal, um herauszufinden, was gerade läuft

ps -e | grep -e apt -e adept | grep -v grep

Hinweis:
Wenn nichts gedruckt wird, geben Sie Folgendes in das Terminal ein, um die Sperre zu entfernen

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

Jetzt können Sie beliebige Pakete installieren.


48
2017-11-30 04:55



Das Löschen der Sperrdatei ist, was ich für eine gefährliche Sache halten würde. Wenn ein anderer Prozess aus einem gültigen Grund gesperrt wird - und Sie diese Sperrdatei entfernen und eine Installation mit dem, was Sie zuvor getan haben, erzwingen - könnten Sie Ihr System negativ beeinflussen. - Marco Ceppi♦
Deshalb habe ich das in Anmerkung gegeben. Wenn alle oben genannten fehlschlagen, ist die einzige Möglichkeit, die Sperre zu entfernen. Es wird kein Problem verursachen, solange dpkg und apt-get / aptitude Prozesse nicht ausgeführt werden - karthick87
pgrep -f 'apt|adept|dpkg' ist viel kürzer. - Barry
Danke! das funktioniert. pgrep -f 'apt | adept | dpkg' und dann sudo skill (Nummer), töte alle Zahlen und installiere dann die Arbeit! - creator


Bis jetzt ist der beste Weg, um es zum Laufen zu bringen, ohne eine mögliche im Hintergrund laufende Installation zu brechen (wie es durch das Entfernen der Sperrdatei passieren könnte), den Dienst mit apt zu stoppen:

Error:

# sudo apt-get upgrade
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?`

Lösung:

sudo systemctl stop apt-daily.timer

Nach dem Upgrade des Systems schlage ich vor, es wieder zu aktivieren, da der Bug, der es sperrt, mit dem Upgrade behoben werden konnte.

sudo systemctl start apt-daily.timer 

Ich habe nicht überprüft, dass dieser Fehler nach dem Upgrade behoben wird. Ich werde einen neuen Kommentar hinzufügen, sobald ich das verifiziert habe


34
2018-02-02 10:01



Nachdem ich das System aktualisiert und den Dienst apt-daily.timer wieder gestartet habe, stehe ich diesem Problem nicht gegenüber. - Jairelee
Das hat mein Problem gelöst, danke. - inkredibl
Dies ist wahrscheinlich die sauberste Methode im Vergleich zu all diesen höher gewählten Antworten. Es hat in meinem Fall fehlerlos funktioniert, danke! - CygnusX1
Dies funktionierte auch am 17.10 einwandfrei - Elder Geek
In Ordnung am 18.04. :) - Naveen Kumar V