RaspberryPi
Correggere ‘Impossibile impostare il blocco /var/lib/dpkg/lock’

Correggere ‘Impossibile impostare il blocco /var/lib/dpkg/lock’

Può capitare che Ubuntu mostri improvvisamente un errore non decifrabile a primo sguardo: il sistema vi segnalerà di non poter impostare e/o acquisire il blocco “/var/lib/dpkg/lock” all’atto dell’installazione o durante gli aggiornamenti (che sia con apt-get, con aptitude, con USC, con GDebi, con dpkg o con aptURL) di questo o quel pacchetto, impedendovi di utilizzare tutto il sistema di packaging finché non riavviate il sistema.

Cosa significa? Tutto il sistema degli installer .deb di Rasbian – in pratica dpkg, che sta alla base di tutto – è stato progettato per far sì che le operazioni di installazione, disinstallazione, aggiornamento e quant’altro avvengano esattamente una per volta, escludendo così l’eventuale possibilità di conflitti di dipendenze, conflitti di versione ed installazioni a metà che potrebbero compromettere la stabilità e l’affidabilità di questo sistema. Nel momento in cui viene avviata una di queste operazioni, lo stesso dpkg cerca di creare un file – esattamente in /var/lib/dpkg – che si chiama lock, che serve ad avvisare che “è in corso un’operazione sui pacchetti e non possono esserne iniziate altre”. Qualora questo file esistesse già, automaticamente dpkg capirà che è in corso un’altra operazione sui pacchetti, si bloccherà, e ci mostrerà un messaggio di errore.

Le cause di questo problema fondamentalmente possono essere due:

  1. Cercate di installare/disinstallare/aggiornare pacchetti mentre è già in corso un’operazione del genere all’interno del sistema (ad es. tentate di utilizzare apt-get mentre scaricate gli aggiornamenti di sistema con il tool grafico);
  2. un’installazione/disinstallazione/aggiornamento precedente non è andato a buon fine, per via di un blocco improvviso del programma, di un crash momentaneo del sistema o di qualsiasi altro “intoppo”;

Come già potrete immaginare, risolvere il problema nel primo caso è piuttosto semplice: vi toccherà attendere il completamento dell’operazione precedente (per i motivi che vi ho già spiegato) e, successivamente, iniziarne una nuova. Mi raccomando: non forzate l’interruzione dell’operazione precedente, altrimenti potreste finire dritti dritti nel secondo caso.

Nel secondo caso, invece, le cose si complicano un pochino: ci sono casi in cui un riavvio del sistema corregge tutto, ma ci sono anche casi in cui riavviare il sistema non basta per correggere il tutto. E poi… riavviare il computer per una cosa del genere è comunque una gran noia ? Una soluzione c’è: basterà eliminare manualmente il file e rendere di nuovo consistente il database di dpkg.

Una raccomandazione: utilizzate questo metodo con molta parsimonia, e controllate – prima di procedere – che non vi siano effettivamente altre installazioni in corso!

In primis eliminiamo il file lock, con il comando

sudo rm /var/lib/dpkg/lock

Ora ricostruiamo il database di dpkg con il comando

sudo dpkg --configure -a

Ed eliminiamo eventuali tracce di installazioni a metà/dipendenze irrisolte (se ne restano), con il comando

sudo apt-get -f install

A questo punto il problema sarà risolto, e potrete ricominciare l’aggiornamento o l’installazione di nuovi pacchetti nel sistema.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *