[ITA] Ripristinare aptitude fixando il lock di /var/lib/dpkg/

Vi è mai capitato che quando digitate il vostro bel comando “apt-get …” la shell vi risponda “picche” dandovi questo messaggio:

E: Impossibile ottenere il lock /var/lib/dpkg/lock - open (11 Risorsa temporaneamente non disponibile)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

Se si, ora vi do il metodo per risolvere questo problema. D’altronde è proprio questo che state cercando 

 digitate:

ps aux|grep "/var/lib/dpkg/"

e dovreste ottenere qualcosa simile all’output mostrato qui sotto:

root     11392  0.0  0.4  11864  8988 pts/1    S+   10:05   0:00 /usr/bin/perl -w /usr/share/debconf/frontend /var/lib/dpkg/info/localepurge.postinst configure
root 11398 0.0 0.0 1772 564 pts/1 S+ 10:05 0:00 /bin/sh -e /var/lib/dpkg/info/localepurge.config configure
1000 11832 0.0 0.0 3012 784 pts/2 S+ 10:10 0:00 grep /var/lib/dpkg/

come potete vedere ci sono 3 processi che corrispondono, perchè utilizzano la directory citata da aptitude. Escludiamo l’ultimo perchè è la grep che abbiamo appena eseguito. Prendiamo l’id del processo (11392 e 11398) e li killiamo (aggiungo il sudo perchè il lock è stato fatto dall’utente root e quindi anche i processi, come si può vedere sopra, “appartengono” a root):

sudo kill -9 11392
sudo kill -9 11398

quindi ora ricontrolliamo che non ci siano più i processi in background:

ps aux|grep "/var/lib/dpkg/"

e difatti l’unico in esecuzione è solo la grep:

1000     11843  0.0  0.0   3008   772 pts/2    S+   10:12   0:00 grep /var/lib/dpkg/

fatto ciò rilanciamo il nostro comando “apt-get …”:

sudo apt-get install ...

e tutto filerà liscio 

Lettura della lista dei pacchetti in corso... Fatto
Generazione dell'albero delle dipendenze in corso
Lettura delle informazioni di stato... Fatto
[...]