Mentre si usa il comando apt-get o il relativamente nuovo strumento di gestione dei pacchetti APT in Ubuntu Linux o nei suoi derivati come Linux Mint (che io uso effettivamente come mio sistema operativo primario per fare il lavoro quotidiano), si potrebbe aver incontrato l’errore – “impossibile bloccare la directory di amministrazione (/var/lib/dpkg/) è un altro processo che la utilizza” sulla linea di comando.
Questo errore può essere così fastidioso soprattutto per i nuovi utenti di Linux (Ubuntu) che potrebbero non sapere esattamente la causa dell’errore.
Di seguito un esempio, che mostra l’errore del file di blocco in 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?
L’output qui sotto è un’altra possibile istanza dello stesso errore:
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?
Come potete risolvere l’errore di cui sopra nel caso vi imbattiate in futuro? Ci sono diversi modi per affrontare questo errore, ma in questa guida, passeremo attraverso i due modi più semplici e probabilmente più efficaci per risolverlo.
Trova e uccidi tutti i processi apt-get o apt
Esegui il comando qui sotto per generare un elenco di tutti i processi il cui nome comprende la parola apt, otterrai un elenco comprensivo di tutti i processi apt o apt-get utilizzando i comandi ps
e grep insieme a una pipeline.
$ ps -A | grep apt
Per ogni processo apt-get o apt che puoi vedere nell’output del comando sopra, uccidi ogni processo usando il comando qui sotto.
L’ID del processo (PID) si trova nella prima colonna dello screenshot sopra.
$ sudo kill -9 processnumberOR$ sudo kill -SIGKILL processnumber
Per esempio, nel comando qui sotto dove 9
è il numero del segnale SIGKILL, ucciderà il primo processo apt:
$ sudo kill -9 13431OR$ sudo kill -SIGKILL 13431
Eliminare i file di blocco
Un file di blocco semplicemente impedisce l’accesso a un altro file o ad alcuni dati sul vostro sistema Linux, questo concetto è presente anche in Windows e altri sistemi operativi.
Una volta che si esegue un comando apt-get o apt, viene creato un file di blocco sotto una qualsiasi di queste directory /var/lib/apt/lists/, /var/lib/dpkg/ e /var/cache/apt/archives/.
Questo aiuta ad evitare che il processo apt-get o apt che è già in esecuzione venga interrotto da un utente o da altri processi di sistema che avrebbero bisogno di lavorare con file usati da apt-get o apt. Quando il processo ha terminato l’esecuzione, il file di blocco viene cancellato.
Importante: nel caso in cui un blocco sia ancora in uscita nelle due directory di cui sopra senza alcun processo apt-get o apt in esecuzione, questo può significare che il processo è stato trattenuto per una ragione o per l’altra, quindi è necessario cancellare i file di blocco per cancellare l’errore.
Prima esegui il comando qui sotto per rimuovere il file di blocco nella directory /var/lib/dpkg/
:
$ sudo rm /var/lib/dpkg/lock
Poi forza i pacchetti per riconfigurarli in questo modo:
$ sudo dpkg --configure -a
In alternativa, cancella i file di blocco nelle directory /var/lib/apt/lists/
e cache come segue:
$ sudo rm /var/lib/apt/lists/lock$ sudo rm /var/cache/apt/archives/lock
In seguito, aggiornate la vostra lista delle fonti dei pacchetti come segue:
$ sudo apt updateOR$ sudo apt-get update
In conclusione, abbiamo percorso due importanti metodi per affrontare un problema comune affrontato dagli utenti di Ubuntu (e le sue derivate), durante l’esecuzione di apt-get o apt così come i comandi aptitude.
Hai altri metodi affidabili da condividere per affrontare questo errore comune? Allora mettiti in contatto con noi attraverso il modulo di feedback qui sotto.
Inoltre, potresti anche voler imparare come trovare e uccidere i processi in esecuzione e leggere una semplice guida ai comandi kill, pkill e killall per terminare un processo in Linux.