În timp ce folosiți comanda apt-get sau instrumentul relativ nou de gestionare a pachetelor APT în Ubuntu Linux sau în derivatele sale, cum ar fi Linux Mint (pe care eu îl folosesc ca sistem de operare principal pentru munca de zi cu zi), este posibil să fi întâlnit eroarea – „unable to lock the administration directory (/var/lib/dpkg/) is another process using it” pe linia de comandă.
Această eroare poate fi atât de enervantă, în special pentru noii utilizatori de Linux (Ubuntu) care s-ar putea să nu știe exact cauza erorii.
Mai jos este un exemplu, care arată eroarea de blocare a fișierului în Ubuntu 16.10:
tecmint@TecMint:~$ sudo apt install neofetch 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?
Succesul de mai jos este un alt caz posibil al aceleiași erori:
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?
Cum puteți rezolva eroarea de mai sus în cazul în care vă veți lovi de ea în viitor? Există mai multe modalități de rezolvare a acestei (acestor) erori, dar în acest ghid vom trece în revistă cele mai simple și, probabil, cele mai eficiente două modalități de rezolvare a acesteia.
Căutați și omorâți toate procesele apt-get sau apt
Executați comanda de mai jos pentru a genera o listă a tuturor proceselor al căror nume cuprinde cuvântul apt, veți obține o listă inclusiv a tuturor proceselor apt sau apt-get prin utilizarea comenzilor ps
și grep împreună cu un pipeline.
$ ps -A | grep apt
Pentru fiecare proces apt-get sau apt pe care îl puteți vedea în ieșirea comenzii de mai sus, omorâți fiecare proces folosind comanda de mai jos.
ID-ul procesului (PID) se găsește în prima coloană din captura de ecran de mai sus.
$ sudo kill -9 processnumberOR$ sudo kill -SIGKILL processnumber
De exemplu, în comanda de mai jos, unde 9
este numărul semnalului pentru semnalul SIGKILL, va ucide primul proces apt:
$ sudo kill -9 13431OR$ sudo kill -SIGKILL 13431
Eliminarea fișierelor de blocare
Un fișier de blocare împiedică pur și simplu accesul la un alt fișier (fișiere) sau la anumite date de pe sistemul Linux, acest concept este prezent și în Windows și în alte sisteme de operare.
După ce executați o comandă apt-get sau apt, se creează un fișier de blocare în oricare dintre aceste directoare /var/lib/apt/lists/, /var/lib/dpkg/ și /var/cache/apt/archives/.
Aceasta ajută la evitarea întreruperii procesului apt-get sau apt care rulează deja, fie de către un utilizator, fie de către alte procese de sistem care ar trebui să lucreze cu fișierele folosite de apt-get sau apt. Atunci când procesul a terminat de executat, fișierul de blocare este apoi șters.
Important: În cazul în care o blocare este încă în curs de ieșire în cele două directoare de mai sus fără ca vreun proces apt-get sau apt să fie în curs de execuție vizibil, acest lucru poate însemna că procesul a fost reținut dintr-un motiv sau altul, prin urmare trebuie să ștergeți fișierele de blocare pentru a șterge eroarea.
În primul rând executați comanda de mai jos pentru a elimina fișierul de blocare din directorul /var/lib/dpkg/
:
$ sudo rm /var/lib/dpkg/lock
După aceea forțați pachetul (sau pachetele) să se reconfigureze astfel:
$ sudo dpkg --configure -a
Alternativ, ștergeți fișierele de blocare din directorul /var/lib/apt/lists/
și cache ca mai jos:
$ sudo rm /var/lib/apt/lists/lock$ sudo rm /var/cache/apt/archives/lock
În continuare, actualizați lista de surse a pachetelor după cum urmează:
$ sudo apt updateOR$ sudo apt-get update
În concluzie, am parcurs două metode importante pentru a rezolva o problemă comună cu care se confruntă utilizatorii Ubuntu (și derivatele sale), în timp ce rulează apt-get sau apt, precum și comenzile aptitude.
Aveți alte metode de încredere de împărtășit menite să rezolve această eroare comună? Atunci intrați în contact cu noi prin intermediul formularului de feedback de mai jos.
În plus, s-ar putea la fel de bine să doriți să învățați cum să găsiți și să omorâți procesele care rulează și să citiți un ghid simplu pentru comenzile kill, pkill și killall pentru a termina un proces în Linux.