Vraag Kan de beheerdersdirectory (/ var / lib / dpkg /) niet worden vergrendeld?


Ik krijg deze foutmelding bij het proberen te gebruiken 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?  

Hoe kan ik dit oplossen?


837
2017-11-30 02:12


oorsprong


Dit geldt ook als u opnieuw opstart? Misschien blokkeert een of andere oude apt-thread het bestand, je moet uitzoeken wat het is en het doden of gewoon opnieuw opstarten om het te doen. - Bruno Pereira
Deze procedure lost bijna altijd dit probleem op, en wanneer dit niet het geval is, is de uitvoer (de tekst van de Terminal) soms nuttig. Als u besluit om het te doen, kunt u deze tekst aan uw vraag toevoegen. - Eliah Kagan
Ik zou nog een ding willen voorstellen dat u wellicht opmerkt als u met dit probleem wordt geconfronteerd. Controleer of uw schijfstations zijn aangekoppeld. Als dat niet het geval is, kunt u het slot mogelijk niet verkrijgen omdat het installatieprogramma van het pakket geen toegang meer heeft tot het bestandssysteem. Ik hoop dat dit helpt. :) - Hari
Je kunt gebruiken sudo lsof /var/lib/dpkg/lock om het proces te vinden dat eigenaar is van het vergrendelingsbestand (als het leeg is, neem dan aan dat het slot is overgebleven van een eerdere opstartprocedure en dat kan zijn sudo rmd), overweeg dan om een ​​te doen sudo kill -9 <PID> (haal <PID> uit lsof output. - waltinator
Dit kan een teken zijn dat iets anders software installeert of verwijdert en de apt-database heeft vergrendeld terwijl het de acties uitvoert. - Foreever


antwoorden:


Dit moet als laatste redmiddel worden gebruikt. Als je dit zorgeloos gebruikt, kun je eindigen met een kapot systeem. Probeer alstublieft de anders  antwoorden  eerste voordat je dit doet.

U kunt het vergrendelingsbestand verwijderen met de volgende opdracht:

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

U moet mogelijk ook het vergrendelingsbestand in de cachemap verwijderen

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

Probeer daarna opnieuw Synaptic te openen.


719
2018-02-07 02:22



oke ... maar waarom is dit gebeurd? - Jaime Hablutzel
@jaime: waarschijnlijk is apt-get (of een of andere GUI-frontend) gestopt tijdens het uitvoeren, apt in een vergrendelde staat achterlatend. - bouke
Ik zou dit als het beste antwoord accepteren. juiste. - Anwar
@AnwarShah nee, er zijn nog andere overwegingen voordat je de bestanden van het systeem gaat verwijderen. - Braiam
rm / var / lib / dpkg / lock; dpkg --configure -a: - WitchCraft


Ik zie vrijwel alle antwoorden aanbevelen om het slot te verwijderen. Ik raad niet aan om dat als eerste maatregel te doen; misschien als er geen alternatief is. Het slot wordt geplaatst wanneer een geschikt proces wordt uitgevoerd en wordt verwijderd wanneer het proces is voltooid. Als er een slot is zonder dat er een duidelijk proces loopt, kan dit betekenen dat het proces om een ​​of andere reden is vastgelopen.

Als je het probeert

ps aux | grep apt

dat zal processen vangen die het woord bevatten apt, minstens. Als je een ziet apt-get proces of een aptitude proces dat lijkt vast te zitten, kunt u proberen

kill processnumber

en als dat niet werkt, probeer het dan

kill -9 processnumber

Dit zou het proces moeten doden en mogelijk het slot verwijderen. Het doden van een apt of aptitude proces is onschadelijk, tenzij het zich feitelijk in het midden van de installatie van het pakket bevindt. In ieder geval, als het proces vastloopt, heb je waarschijnlijk geen andere keuze dan het te doden.

Het doden van een dpkg direct verwerken, indien aanwezig, is geen goed idee, omdat als dpkg is actief, het is waarschijnlijk de pakketdatabase aan het manipuleren, en het doden ervan kan de pakketdatabase in een inconsistente toestand achterlaten; d.w.z. beschadigd.

Het doden van een apt-get of aptitude proces is over het algemeen veel veiliger.


548
2017-07-03 09:01



@Link Ik denk niet dat ik moord dpkg is een goed idee, omdat meestal dpkg is het manipuleren van de pakketdatabase direct, en dit zou corruptie kunnen veroorzaken. - Faheem Mitha
Als het doden van dpkg de database kan beschadigen, was dpkg slecht ontworpen. Periode. - Jay Sullivan
voor mij resulteerde dit in een fout dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. tijdens het hardlopen sudo apt-get dist-upgrade nog een keer. Het uitvoeren van de opdracht heeft het probleem opgelost. Ik hou van Nix! - Wayne Phipps
Notitie, killall apt-get doet hetzelfde als jouw ps/kill combo. - Cerin
Merk op dat ik merkte dat ik moest rennen sudo dkpg --configure -a na het doden van het rogue apt-proces om de zaken weer normaal te maken. - starbeamrainbowlabs


Verwijder uw /var/lib/dpkg/lock bestand en force pakket herconfiguratie.

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

Het zou hierna moeten werken.


175
2018-01-29 11:27



deze commando's hielpen, maar nu toen ik probeerde opnieuw te installeren, kreeg dit antwoord: Kon geen lock / var / cache / apt / archives / lock - open krijgen. Ik denk dat ik zou moeten doen zoals het vorige ontgrendelingsprobleem, maar vertel me alsjeblieft de exacte sleutelwoorden voor het commando. Ik ben een absolute beginner. - kern
sudo - voer het commando uit als root, rm - bestand verwijderen. Misschien proberen sudo rm /var/cache/apt/archives/lock - kubahaha
Dit is geen goede suggestie: het blindelings verwijderen van het geluk kan de toestand van dpkg aantasten. - poolie
Waarom zal het zichzelf tegenwoordig niet herstellen? - Marian Klühspies
Dit werkte voor mij. De aws hierboven deden dat niet. - 1rq3fea324wre


U krijgt dit bericht als u bent vergeten het te gebruiken sudo bij het uitvoeren van een apt-opdracht.

Anders is dit een teken dat iets anders software installeert of verwijdert en de apt-database heeft vergrendeld terwijl het de acties uitvoert. De programma's die dit kunnen doen zijn:

  • Het softwarecentrum
  • De Update Manager
  • Het apt link-installatieprogramma (ik denk dat dit nu via SC gaat)
  • De apt-get of aptitude command line utilities.
  • De Synaptic Package Manager

BELANGRIJK: probeer de onderstaande optie alleen als laatste redmiddel, omdat deze uw systeem kan laten crashen. Probeer eerst een actieve instantie van apt of aptitude zoals beschreven in Faheem's antwoord.

U kunt het slot afdwingen door het bestand te verwijderen, maar het wordt niet aanbevolen zonder eerst het programma te sluiten dat het slot veilig vasthoudt, omdat u corruptie kunt veroorzaken of een installatie kunt onderbreken (slecht). De opdracht die door João wordt gegeven, sluit het programma dat het slot bevat en verwijdert vervolgens het slot, maar beschermt u niet tegen installatieonderbreking:

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

En dezelfde opdracht kan worden gebruikt voor de apt cache-vergrendeling:

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

96
2017-11-30 02:17



Ik was bezig mijn software bij te werken toen ik de foutmelding kreeg. - raindrop
Dit is voor mij gecrasht - umpirsky
sudo fuser -cuk /var/cache/apt/archives/lock heb mijn computer direct opnieuw opgestart. apt-get is nu ontgrendeld. - Maxime R.
Dit heeft mijn hele server gecrasht. - 에이바
Killing apt of dpkg halverwege is geen geweldig idee. - poolie


De meest waarschijnlijke manier om dit te raken, is:

  • start Ubuntu
  • start een terminal
  • type sudo apt-get install whatever

en de opdrachtregel apt overlapt met update-manager automatisch pollen.

Dus als je het over een paar minuten opnieuw probeert, moet dit worden opgelost.


66
2017-11-30 03:08



Geweldige hint in tegenstelling tot de zes dozijn antwoorden die suggereren om gewoon het bestand te verwijderen ;-) Ik liep willekeurig in de kwestie en hoogstwaarschijnlijk is dit het! - Alex
Veilig genoeg, moest een beetje eerder wachten sudo apt-get install zou kunnen werken. - sargas
Nou, dit werkt niet altijd, ja ik heb vele malen opnieuw opstarten gebruikt. Als dit niet geschikt is, probeer dit dan askubuntu.com/a/315791/378845 voordat u sloten verwijdert - Menuka Ishan
@menuka, waarom laat je het niet gewoon aflopen. - poolie
@poolie Omdat er andere beperkingen zijn waardoor het proces niet kan worden voltooid - Menuka Ishan


Slechts één programma kan het slot vasthouden. Zorg ervoor dat je geen aptitude, synaptic of adept gebruikt. Sluit het programma en voer het opnieuw uit. Het zou moeten werken. U kunt ofwel synaptisch openen, of een ander terminalvenster openen met apt-get, of de update manager laten draaien. Controleer het en kijk of een van deze draait, indien van toepassing ze rennen het dicht en proberen het opnieuw.

Probeer deze opdracht in terminal om te vinden wat er wordt uitgevoerd

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

Notitie:
Als dat niets is, typt u het volgende in terminal om de vergrendeling te verwijderen

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

Nu kunt u alle pakketten installeren.


48
2017-11-30 04:55



Het verwijderen van het slotbestand is, wat ik zou beschouwen, een gevaarlijk iets om te doen. Als een ander proces om een ​​geldige reden blokkeert - en u verwijdert dat slotbestand en dwingt u een installatie uit met wat u eerder deed - dan zou u op een negatieve manier uw systeem ernstig kunnen beïnvloeden. - Marco Ceppi♦
Dat is de reden waarom ik dat in Note heb gegeven. Als al het bovenstaande faalt, is de enige manier om het slot te verwijderen. Het veroorzaakt geen enkel probleem zolang dpkg en apt-get / aptitude-processen niet worden uitgevoerd - karthick87
pgrep -f 'apt|adept|dpkg' is een stuk korter. - Barry
Dankje! dit werkt. pgrep -f 'apt | adept | dpkg' en dan sudo skill (nummer), kill alle nummers en installeer dan werken! - creator


Tot nu toe is de beste manier om het werkend te krijgen zonder een mogelijke installatie op de achtergrond te onderbreken (zoals het geval kon zijn door het vergrendelingsbestand te verwijderen), de service te stoppen met apt:

Fout:

# 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?`

Oplossing:

sudo systemctl stop apt-daily.timer

Na het upgraden van het systeem raad ik aan het opnieuw in te schakelen, omdat de bugvergrendeling kan worden verholpen met de upgrade.

sudo systemctl start apt-daily.timer 

Ik heb niet gecontroleerd of deze fout wordt verholpen na het upgraden. Ik voeg een nieuwe opmerking toe zodra ik die heb geverifieerd


34
2018-02-02 10:01



Na het upgraden van het systeem en het opnieuw starten van de apt-daily.timer-service kom ik tot nu toe niet met dit probleem. - Jairelee
Dit loste mijn probleem op, bedankt. - inkredibl
Dit is waarschijnlijk de schoonste methode vergeleken met al die hoger gestemde antwoorden hierboven. Het werkte in mijn geval vlekkeloos, dank je! - CygnusX1
Dit werkte ook feilloos op 17.10 - Elder Geek
Werkt prima in 18.04. :) - Naveen Kumar V


Allereerst moeten we controleren welk proces het vergrendelingsbestand heeft gemaakt lsof:

sudo lsof /var/lib/dpkg/lock

of in een andere situatie waar /var/lib/apt/lists/lock is problematisch:

sudo lsof /var/lib/apt/lists/lock

De uitvoer zal in de buurt komen van iets als:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
apt-get   12127 root   4uW  REG  252,1        0    86   /var/lib/apt/lists/lock

Dan moeten we controleren wat de commad doet, we kunnen het achterhalen met behulp van ps, pgrep enz; de opdracht is apt-get dus ik ren:

pgrep apt-get -a

De -a switch geeft de volledige opdracht voor mij weer, in mijn geval is het:

 pgrep -a apt-get
 12127 apt-get update

we kunnen zien dat het draait update subcommand, zou ik ook zoiets kunnen doen:

ps -f 12127

welke produceert:

UID        PID  PPID  C STIME TTY      STAT   TIME CMD
root     12127 12126  0 09:39 pts/0    S+     0:00 apt-get update

In dit geval zou ik enige minuten wachten voordat de bron zou worden vrijgegeven en als er na 2 of 3 minuten nog steeds een probleem is of het commando iets was waar ik niet om gaf of niet schadelijk was voor het systeem (zoals dit apt-get update) Ik stuur een SIGTERM naar het proces:

sudo kill -15 12127

Het zou het werk moeten doen. Als het dat niet deed, stuur ik het SIGINT deze keer (het is net als drukken CTRL+C):

sudo kill -2 12127

Als het ook niet zou werken, zouden we een SIGHUP (kill -1), en uiteindelijk als niets werkt, dood ik gewoon het proces:

sudo kill -9 12127

of

sudo pkill -9 apt-get

Dan verwijder ik drukke bronnen:

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

24
2018-04-24 07:29



Een klein ding is dat /var/lib/dpkg/lock liever dan /var/lib/apt/lists/lock is het bestand in de vraag. - Chai T. Rex
@ ChaiT.Rex bedankt, heeft een update;) - Ravexina
Bedank de wortelgoden die iemand uiteindelijk noemt pgrep en pkill. - Barry
Dit zou het geaccepteerde antwoord moeten zijn. - Marwan Nabil


Dit gebeurt als u 'Update Manager' parallel gebruikt voor elke update-controle of installeert als installatieproces plaatsen Vergrendelen. Als u dezelfde fout ziet zonder dat 'Update Manager' wordt uitgevoerd, moet u deze verwijderen /var/lib/dgkg/lock, wat je beslist niet handmatig kunt doen

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

werkt prima. Genomen van: https://askubuntu.com/a/15469/68707


18
2018-06-06 07:17



Dit was het probleem in mijn geval! - LondonRob
Betere oplossing sinds het fuser-commando werd gebruikt om een ​​ander proces op te sporen (indien nog in leven) - Lars Nordin


Deze fout mei veroorzaakt door de Update Manager die probeert de lijst met pakketten op de achtergrond automatisch te vernieuwen, meestal direct na uw login, waardoor de map wordt vergrendeld.

Wacht in dit geval enkele seconden (of meer, als uw laatste update lang geleden was) om Update Manager te voltooien of te starten om de status te controleren.


16
2017-10-04 12:39



Ik had dit meteen na het installeren van Ubuntu 16.04. Blijkt dat er een achtergrondproces in het Ubuntu-softwarecentrum stond dat op me wachtte om sommige updates handmatig te installeren. - jvriesem
Idem na een nieuwe installatie van 16.04. Het was te veel langer dan "een paar seconden" in mijn geval (ik had tijd om deze hele vraag-en-antwoord-pagina te lezen!) Maar na het verfrissen ps een paar keer dat ik het kon zien dpkg was bezig een heleboel dingen bij te werken en ik wachtte geduldig totdat alles klaar was. Ik rende toen Software Updater totdat alles up-to-date was voordat je iets nieuws installeerde. - Charlie Joynt