Hoe de fout "Failed to lock /var/lib/dpkg/lock" op te lossen

kon ⁄var⁄lib⁄dpkg⁄lock niet vergrendelen

Hoewel een Linux-distributie ervoor kan kiezen om de software te installeren zoals zij dat nodig acht, kunnen ze deze vaker wel dan niet installeren vanuit hun officiële repositories. Deze repositories kunnen direct worden onderhouden door de distributie en/of op basis van anderen, zoals bijvoorbeeld gebeurt met Debian->Ubuntu->Linux Mint. In deze gevallen is de pakketbeheerder APT en soms kunnen we het bericht zien "kon /var/lib/dpkg/lock niet vergrendelen" in de terminal of zelfs in een tool met een grafische interface.

Dit artikel zal proberen enig licht te werpen. over wat het is en hoe de fout kan worden opgelost waardoor we het bericht zien "/var/lib/dpkg/lock kon niet worden vergrendeld", maar ik kan je vertellen dat er een heel eenvoudige oplossing is die dit en vele andere problemen kan oplossen, of het nu in een Linux- gebaseerde distributie of een ander besturingssysteem, inclusief mobiel.

Wat betekent de fout "kon /var/lib/dpkg/lock niet vergrendelen"?

In het algemeen geldt dat wanneer we de foutmelding "kon /var/lib/dpkg/lock niet vergrendelen" zien, de terminal of de software die aangeeft dat er een ander APT-proces actief is en dezelfde database gebruikt waartoe we toegang proberen te krijgen . Met andere woorden, het nieuwe APT-proces probeert het bestand /var/lib/dpkg/lock te vergrendelen, hij kan het niet krijgen omdat hij het druk heeft en laat het ons weten.

De meest voorkomende is dat een ander APT-proces, zoals de update, is al actief en heeft het vergrendelingsbestand vergrendeld, dus het kan de eerste stap niet zetten, namelijk het vergrendelen van dat bestand.

Hoe de fout te herstellen

Het eerste dat we moeten doen, vooral als we de terminal niet graag gebruiken, is controleer of er een softwaretoepassing actief is. In Ubuntu kunnen we bijvoorbeeld zien of Ubuntu Software (vork van GNOME Software) iets aan het doen is, en ook Software Update, de applicatie die, zoals de naam al doet vermoeden, verantwoordelijk is voor het updaten van de software. Als we geen van die applicaties open zien, kunnen we ook de systeemmonitor starten en ernaar zoeken om te zien of ze op de achtergrond draaien.

De toepassingen waarnaar we moeten zoeken, zijn afhankelijk van de distributie die we gebruiken, aangezien Ubuntu Software niet in Kubuntu zit, en Discover ook niet in de hoofdversie van Debian. Elke distributie beheert de software met de tools die het wil toevoegen, en ze kunnen het GNOME Software-archief, Discover, elke andere softwarewinkel of de updatetool blokkeren.

Of ze nu op de voorgrond of op de achtergrond staan, een optie is heb geduld en wacht om te zien of de taak die u aan het doen bent, is voltooid. Soms zien we een foutmelding en willen we dat deze direct wordt opgelost, terwijl de oplossing is om even te wachten.

Opnieuw opstarten of afmelden zou voldoende moeten zijn

Vele jaren geleden vroeg een vriend me altijd hoe hij zijn crashes in Windows kon oplossen. Er kwam een ​​tijd dat ik hem bijna niet meer vroeg, en ik raadde hem aan reboot omdat het bijna altijd de beste oplossing voor hem was. In het geval van de foutmelding "kon /var/lib/dpkg/lock niet vergrendelen" is ook een mogelijke oplossing. Wanneer u helemaal opnieuw begint, kunt u beginnen met het bestand dat is vergrendeld door de updatetool, maar het zal het snel ontgrendelen wanneer u verifieert dat er niets nieuws te installeren is of dat er is, maar u ons er al over hebt geïnformeerd.

Natuurlijk, het is niet de meest elegante oplossing, maar het is wel de minst dure en misschien wel de beste en snelste als je geen reden hebt om ingelogd te blijven.

Wanneer het bericht "failed to lock /var/lib/dpkg/lock" niet verdwijnt

Als we opnieuw zijn opgestart of een tijdje hebben gewacht en we blijven de melding zien, is wat er met ons gebeurt niet iets gewoons. De blokkering is "opgehangen" of, de redundantie waard, geblokkeerd, dus het is al de moeite waard om aan de terminal te trekken.

  1. Het eerste wat we zullen doen is een terminal openen en het lopende APT-proces identificeren met deze opdracht:
sudo lsof /var/lib/dpkg/lock
  1. Nu het proces is geïdentificeerd, doden we het met deze opdracht, waarbij we PID vervangen door het nummer van het proces dat we zullen hebben ontdekt met de opdracht uit stap 1:
sudo kill PID
  1. Ten slotte proberen we opnieuw het APT-beheer uit te voeren waarvan de fout terugkeerde. Het zou ons in staat moeten stellen verder te gaan.

Als dit het niet oplost, kunnen we iets drastischer doen, u zult dus voorzorgsmaatregelen moeten nemen of extra stappen moeten nemen. Dit doet het "op de moeilijke manier": het bestand /var/lib/dpkg/lock verwijderen. De stappen die u moet volgen om het veilig te doen, zijn deze:

  1. We maken een back-up van het bestand /var/lib/dpkg/lock. Omdat we het zullen kopiëren, kunnen we de bestandsbeheerder gebruiken, aangezien supergebruikersrechten niet vereist zijn. Vanaf de terminal kon het gedaan worden cp /var/lib/dpkg/lock nieuw pad, door "new-path" te wijzigen in het pad waarin we de back-up willen maken.
  2. Wij verwijderen het bestand. Hiervoor is het nodig om privileges te trekken. Als onze bestandsbeheerder het ons toestaat, kunnen we bijvoorbeeld "sudo nautilus" zonder de aanhalingstekens schrijven om het met een grafische interface te verwijderen, maar ik denk dat het sneller en gemakkelijker zal zijn om de terminal te openen en te schrijven:
sudo rm /var/lib/dpkg/lock
  1. Met het verwijderde bestand kunnen we opnieuw proberen wat we niet mochten. als we schrijven sudo apt update en we zien de fout niet, de bug is opgelost.

Opnieuw opstarten en geduld zijn meestal het beste

Hoewel er manieren zijn om het probleem op te lossen, zoals beschreven in het vorige punt, de fout "kon /var/lib/dpkg/lock niet vergrendelen" het is niet echt serieus en het kan worden opgelost door even te wachten of door opnieuw op te starten. Het is iets dat zichzelf meestal oplost, en als dat niet het geval is, is opnieuw opstarten het minst agressief en het meest effectief. Nu, dit is Linux, en alles of bijna alles heeft een oplossing vanaf de terminal, om nog maar te zwijgen van het feit dat we kunnen "doden" wat we maar willen.

Om welke reden dan ook, hoop ik dat wat hier wordt vermeld u heeft kunnen helpen, ofwel om de boodschap te laten verdwijnen met een agressiever proces of om een ​​beetje geduld te hebben.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   Danilo Quispe Lucana zei

    Hallo:

    Deze opdracht werkt voor mij (getest op Xubuntu 18.04 LTS):

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

    Het is ook geldig voor andere vergrendelde bestanden, zoals /var/lib/dpkg/lock-frontend of /var/lib/apt/lists/lock.

    groeten