Sbloccare pacchetti bloccati



Certe volte può capitare che Synaptic o il terminale non riescono a terminare l'installazione di alcuni pacchetti o semplicemente non riescono a terminare un processo in corso. In quel caso ci troviamo con l'impossibilità di utilizzare Synaptic o il terminale.

Le casistiche che normalmente potano a questa situazione sono due. Vediamo ora in entrambi i casi come risolvere.


1° caso: Impossibile acquisire blocco eslusivo


Se il sistema dovesse dire:

Impossibile acquisire il blocco sulla directory di amministrazione (/var/lib/dpkg/). Un altro processo potrebbe tenerla occupata.

Chi si diletta con il terminale, anche soltanto aggiornando ubuntu, si sarà trovato, almeno una volta, di fronte a questo errore.

Aptitude (apt-get), il gestore dei pacchetti di Debian e derivate, in particolare Ubuntu, può eseguire una sola operazione alla volta e per impedire che venga avviato più volte imposta un blocco ad alcuni file.

L’errore sopra si verifica quando questi blocchi non vengono eliminati (e, di conseguenza, sono ancora attivi) e questo può accadere quando:

  • apt-get è in esecuzione in un’altra applicazione

  • apt-get si è chiuso/è stato chiuso in modo anomalo (crash)

Se è aperto il terminale controllate che stia utilizzando apt-get, se compare vostronome@nomepc allora apt-get non è in esecuzione. Se invece compaiono delle scritte ricordatevi il comando che avete dato: se è apt-get aspettate che finisca e l’errore si risolverà da solo.

Per quanto riguarda il secondo caso, quello per cui è stato pensato questo articolo, apt-get è “crashato” lasciando il blocco ai file. Per risolvere basta togliere il blocco manualmente.

Farlo è semplicissimo, per prima cosa date:

sudo fuser -vki /var/lib/dpkg/lock

Vi chiederà se volete terminare un processo, acconsentite (premendo S) e dopo scrivete:

sudo dpkg –configure -a

Ecco fatto! Il problema dovrebbe essere sparito.


2° caso: pacchetti danneggiati


In caso di pacchetti danneggiati invece dovremo scrivere nel terminale in successione le seguenti stringhe:

sudo apt-get clean
sudo apt-get update
sudo apt-get -f install
sudo dpkg --configure -a
sudo apt-get dist-upgrade

Al termine di questi comandi i pacchetti sono sbloccati.