Questa breve guida ti aiuta a correggere l'errore "E:Impossibile ottenere il blocco /var/lib/dpkg/lock" su Ubuntu. Questo di solito si verifica quando c'è già un'altra operazione apt in esecuzione in background.
Ho una macchina virtuale Ubuntu 18.04 LTS che uso a scopo di test. Ogni volta che avvio questa VM e provo ad aggiornare o installare qualsiasi applicazione utilizzando il gestore di pacchetti APT, ottengo il seguente errore:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
Oppure, errori simili come di seguito:
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?
E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable) E: Unable to lock directory /var/lib/apt/lists/
Succede ogni singola volta. Ho dovuto aspettare qualche minuto per eseguire un'operazione apt.
So che alcuni processi hanno bloccato il database apt durante l'installazione o la rimozione del software o l'aggiornamento del sistema in background. Ho eseguito il "top" comando per esaminare l'elenco dei processi in esecuzione. Dopo aver esaminato l'output del comando top, sono venuto a sapere che esiste un processo chiamato aggiornamento automatico , che esegue apt update ogni volta che accendo la mia macchina virtuale Ubuntu. Mentre l'aggiornamento apt è in esecuzione, il database apt è bloccato e non ho potuto eseguire alcuna operazione apt.
Correzione dell'errore "E:Impossibile ottenere il blocco /var/lib/dpkg/lock" su Ubuntu
Se hai mai riscontrato questo problema, attendi alcuni minuti fino al completamento dell'attività di installazione, aggiornamento o disinstallazione in corso. Il completamento di questo processo richiederà del tempo (da 5 a 10 minuti o più) a seconda delle dimensioni dell'aggiornamento. Una volta completata l'attività, il blocco verrà rilasciato automaticamente.
Ma se il processo è bloccato per qualche motivo e ha bloccato il database apt per diversi minuti, non hai altra scelta che rimuovere il blocco. In tal caso, segui la procedura seguente per risolverlo.
Per prima cosa scopriamo quale processo possiede il file di blocco, ad esempio /var/lib/dpkg/lock .
$ sudo lsof /var/lib/dpkg/lock
Se il file di blocco è diverso, ad esempio /var/lib/dpkg/lock-frontend , puoi trovare il PID del processo che possiede questo file di blocco con il comando:
$ sudo lsof /var/lib/dpkg/lock-frontend
Se il file di blocco è "/var/lib/apt/lists/lock" , esegui:
$ sudo lsof /var/lib/apt/lists/lock
Risultato di esempio:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME unattende 1548 root 6uW REG 8,2 0 1181062 /var/lib/dpkg/lock
E:Impossibile ottenere il blocco /var/lib/dpkg/lock-frontend - open (11:Risorsa temporaneamente non disponibile)
Come puoi vedere nell'output sopra, il PID del processo che contiene il file di blocco è 1548 .
Basta ucciderlo per rilasciare il blocco usando il comando:
$ sudo kill -9 1548
Ora puoi rimuovere in sicurezza il lucchetto con i comandi:
$ sudo rm /var/lib/dpkg/lock
Oppure,
$ sudo rm /var/lib/dpkg/lock-frontend
Oppure,
$ sudo rm /var/lib/apt/lists/lock
Inoltre potrebbe essere necessario eliminare il file di blocco nella directory della cache:
$ sudo rm /var/cache/apt/archives/lock
Dopo aver rimosso il blocco, esegui:
$ sudo dpkg --configure -a
Questo dovrebbe risolvere il problema.
Questo metodo funzionerà bene il 99% delle volte. Ma tieni presente che se il processo di aggiornamento è in esecuzione e hai interrotto il processo nel mezzo dell'installazione del pacchetto, potresti finire con il sistema rotto. In questi casi, non farti prendere dal panico, segui la guida qui sotto per risolverlo.
- Come riparare il sistema operativo Ubuntu danneggiato senza reinstallarlo
Buona fortuna!
Lettura correlata:
- Come disabilitare gli aggiornamenti automatici su Ubuntu