Popravite "Ni mogoče zakleniti skrbniškega imenika (/ var/lib/dpkg /)" v Ubuntuju


Med uporabo orodja za upravljanje paketov APT v Ubuntu Linux ali njegovih izpeljankah, kot je Linux Mint (ki ga pravzaprav uporabljam kot primarni operacijski sistem za vsakodnevno delo), ste morda naleteli na napako -\"ne morete zakleniti skrbniškega imenika (/ var/lib/dpkg /) je še en postopek, ki ga uporablja «v ukazni vrstici.

Ta napaka je lahko tako moteča predvsem za nove uporabnike Linuxa (Ubuntu), ki morda ne vedo natančno vzroka napake.

Spodaj je primer, ki prikazuje napako datoteke zaklepanja v Ubuntu 16.10:

[email :~$ sudo apt install neofetch
[sudo] password for tecmint:
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?

Spodnji izhod je še en možen primer iste napake:

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?

Kako lahko odpravite zgornjo napako, če jo boste naleteli v prihodnosti? Obstaja več načinov za obvladovanje te napake, vendar bomo v tem priročniku preučili dva najlažja in verjetno najučinkovitejša načina za njeno odpravljanje.

1. Poiščite in ubijte vse procese apt-get ali apt

Zaženite spodnji ukaz za grep ukaze skupaj s cevovodom.

$ ps -A | grep apt

Za vsak postopek apt-get ali apt, ki ga lahko vidite v izhodu zgornjega ukaza, vsak postopek ubijte s spodnjim ukazom.

ID postopka (PID) je v prvem stolpcu zgornjega posnetka zaslona.

$ sudo kill -9 processnumber
OR
$ sudo kill -SIGKILL processnumber

Na primer, v spodnjem ukazu, kjer je 9 številka signala za signal SIGKILL, bo uničil prvi ustrezen postopek:

$ sudo kill -9 13431
OR
$ sudo kill -SIGKILL 13431

2. Izbrišite zaklenjene datoteke

Datoteka s ključavnico preprosto preprečuje dostop do drugih datotek ali nekaterih podatkov v vašem sistemu Linux, ta koncept je prisoten tudi v sistemu Windows in drugih operacijskih sistemih.

Ko zaženete ukaz apt-get ali apt, se v katerem koli od teh imenikov/var/lib/apt/seznami /,/var/lib/dpkg/in/var/cache/apt/archives/ustvari zaklepna datoteka.

To pomaga preprečiti, da bi postopek apt-get ali apt, ki se že izvaja, motil uporabnik ali drugi sistemski procesi, ki bi morali delati z datotekami, ki jih uporablja apt-get ali apt. Ko se postopek zaključi, se zaklenjena datoteka nato izbriše.

Pomembno: Če v obeh zgornjih imenikih še vedno obstaja ključavnica, pri čemer se ne izvaja opazen postopek apt-get ali apt, lahko to pomeni, da je bil postopek iz enega ali drugega razloga zadržan, zato morate datoteke zaklepanja izbrisati, da počistite napako.

Najprej izvedite spodnji ukaz, da odstranite zaklepno datoteko v imeniku /var/lib/dpkg/:

$ sudo rm /var/lib/dpkg/lock

Nato prisilite pakete, da se preoblikujejo tako:

$ sudo dpkg --configure -a

Lahko tudi izbrišete datoteke za zaklepanje v imeniku /var/lib/apt/lists/ in predpomnilnika, kot spodaj:

$ sudo rm /var/lib/apt/lists/lock
$ sudo rm /var/cache/apt/archives/lock

Nato posodobite seznam virov paketov, kot sledi:

$ sudo apt update
OR
$ sudo apt-get update

Za zaključek smo preučili dve pomembni metodi za spopadanje s pogostimi težavami, s katerimi se srečujejo uporabniki Ubuntuja (in njegovih izpeljank) med izvajanjem ukazov apt-get ali apt ter aptitude.

Ali imate še kakšno zanesljivo metodo za skupno rabo, namenjeno reševanju te pogoste napake? Nato nas kontaktirajte preko spodnjega obrazca za povratne informacije.

Poleg tega se boste morda želeli naučiti ukazov kill, pkill in killall za zaključek procesa v Linuxu.