Popravite "Nije moguće zaključati administrativni direktorij (/var/lib/dpkg/)" u Ubuntuu


Dok koristite naredbu apt-get ili relativno novi alat za upravljanje paketima APT u Ubuntu Linuxu ili njegovim derivatima kao što je Linux Mint (koji zapravo koristim kao svoj primarni operativni sistem za obavljajući svakodnevni posao), možda ste naišli na grešku – “nije moguće zaključati administrativni direktorij (/var/lib/dpkg/) je još jedan proces koji ga koristi ” na komandna linija.

Ova greška može biti toliko neugodna, posebno za nove korisnike Linuxa (Ubuntu) koji možda ne znaju tačno uzrok greške.

Ispod je primjer koji prikazuje grešku datoteke zaključavanja u Ubuntu 16.10:

tecmint@TecMint:~$ 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?

Donji izlaz je još jedna moguća instanca iste greške:

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 možete riješiti gornju grešku u slučaju da naiđete na nju u budućnosti? Postoji nekoliko načina rješavanja ove greške, ali u ovom vodiču ćemo proći kroz dva najlakša i vjerovatno najefikasnija načina za njihovo rješavanje.

1. Pronađite i ukinite sve apt-get ili apt procese

Pokrenite naredbu ispod da generišete listu svih procesa čije se ime sastoji od riječi apt, dobićete listu koja uključuje sve apt ili apt-get< obrađuje korištenjem naredbi ps i grep zajedno sa cjevovodom.

ps -A | grep apt

Za svaki proces apt-get ili apt koji možete vidjeti u izlazu gornje naredbe, ukinite svaki proces koristeći naredbu ispod.

Proces ID (PID) se nalazi u prvoj koloni sa gornje slike ekrana.

sudo kill -9 processnumber
OR
sudo kill -SIGKILL processnumber

Na primjer, u naredbi ispod gdje je 9 broj signala za SIGKILL signal, ugasit će prvi apt proces:

sudo kill -9 13431
OR
sudo kill -SIGKILL 13431

2. Izbrišite zaključavanje Datoteke

Datoteka zaključavanja jednostavno sprječava pristup drugim datotekama ili nekim podacima na vašem Linux sistemu, ovaj koncept je prisutan i u Windowsu i drugim operativnim sistemima.

Jednom kada pokrenete naredbu apt-get ili apt, kreira se datoteka zaključavanja u bilo kojem od ovih direktorija /var/lib/apt/lists/, /var/lib/dpkg/ i /var/cache/apt/archives/.

Ovo pomaže da se izbjegne da proces apt-get ili apt koji je već pokrenut bude prekinut od strane korisnika ili drugih sistemskih procesa koji bi trebali raditi s datotekama koje koristi apt-get ili apt. Kada se proces završi, datoteka zaključavanja se briše.

Važno: U slučaju da zaključavanje još uvijek izlazi u dva gornja direktorija bez primjetnog pokretanja apt-get ili apt procesa, to može značiti da je proces zadržan iz jednog razloga ili drugi, stoga morate obrisati datoteke zaključavanja da biste izbrisali grešku.

Prvo izvršite naredbu ispod da uklonite datoteku zaključavanja u direktoriju /var/lib/dpkg/:

sudo rm /var/lib/dpkg/lock

Nakon toga prisilite pakete da se rekonfiguriraju na sljedeći način:

sudo dpkg --configure -a

Alternativno, izbrišite datoteke zaključavanja u /var/lib/apt/lists/ i keš direktoriju kao u nastavku:

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

Zatim ažurirajte svoju listu izvora paketa na sljedeći način:

sudo apt update
OR
sudo apt-get update

U zaključku, prošli smo kroz dvije važne metode za rješavanje uobičajenog problema s kojim se suočavaju korisnici Ubuntua (i njegovih derivata), dok su pokrenuli apt-get ili apt, kao i naredbe sposobnosti.

Imate li neke druge pouzdane metode za dijeljenje namijenjene rješavanju ove uobičajene greške? Zatim nas kontaktirajte putem obrasca za povratne informacije ispod.

Osim toga, možda biste željeli naučiti kako pronaći i ubiti pokrenute procese i pročitati jednostavan vodič za kill, pkill i killall naredbe za završetak procesa u Linuxu.