|
Snap su Ubuntu: come rimuovere tutte le versioni obsolete in un solo comando
Ogni aggiornamento snap lascia una copia della versione precedente sul disco. Con il tempo, queste revisioni disabilitate si accumulano e rubano spazio prezioso. Ecco come liberarsene in pochi secondi e come evitare che il problema si ripresenti.

Se usi Snap su Ubuntu da poco, probabilmente non ti sei mai chiesto cosa succede alle vecchie versioni degli snap dopo un aggiornamento. La risposta è semplice: restano lì, sul disco, etichettate come “disabilitate”. Snap le conserva come meccanismo di rollback, nel caso qualcosa vada storto con la versione più recente.
L’idea di fondo non è sbagliata. Ma il comportamento predefinito di snapd prevede di mantenere fino a tre revisioni per ogni pacchetto. Moltiplica questo numero per tutti gli snap installati e il conto sale in fretta.
Per verificare la situazione sul tuo sistema, apri un terminale e lancia:
snap list --all
Non serve sudo per la sola consultazione. Nella colonna “Note” vedrai la dicitura disabilitato (o disabled se il tuo sistema è in inglese) accanto alle revisioni che non sono più in uso. Nel mio caso ne ho trovate 17: browser, runtime, librerie GNOME, perfino lo store stesso. Tutte copie inutili che occupavano spazio senza alcun beneficio reale.
Indice dei contenuti
La soluzione: un comando per rimuoverle tutte
La documentazione ufficiale di Snapcraft suggerisce di rimuovere le singole revisioni con snap remove --revision, specificando nome e numero di revisione uno per uno. Funziona, ma se hai una dozzina di revisioni da eliminare diventa un lavoro noioso e ripetitivo.
Si puo fare molto meglio con una sola riga:
sudo snap list --all | awk '/disabilitato/{print $1, $3}' | while read name rev; do sudo snap remove "$name" --revision="$rev"; done
Se il tuo sistema e in inglese, sostituisci “disabilitato" con “disabled".
Come funziona, passo per passo
Il comando e composto da tre parti collegate tra loro con il pipe (|):
sudo snap list --allelenca tutti gli snap installati, comprese le revisioni non attive.awk '/disabilitato/{print $1, $3}'filtra solo le righe che contengono la parola “disabilitato” e ne estrae il primo campo (il nome dello snap) e il terzo (il numero di revisione).while read name rev; do sudo snap remove "$name" --revision="$rev"; donelegge ogni coppia nome-revisione e la passa al comando di rimozione.
Il risultato è che tutte le revisioni disabilitate vengono rimosse in sequenza, senza toccare quelle attive. Nessun rischio per il sistema, nessuna applicazione che smette di funzionare.
Prevenire: ridurre le revisioni conservate
Una volta ripulito il sistema, vale la pena intervenire anche sulla causa del problema. Snapd permette di configurare il numero massimo di revisioni da mantenere. Il minimo consentito è 2 (la versione attiva piu una di rollback):
sudo snap set system refresh.retain=2
Con questa impostazione, dopo ogni aggiornamento il sistema conservera al massimo due revisioni per snap. Addio accumuli silenziosi.
Verifica
Dopo aver eseguito la pulizia, un nuovo snap list --all dovrebbe mostrare solo le versioni attive, senza alcuna riga con la dicitura “disabilitato”. Nel mio caso sono passato da 44 voci a 27, eliminando tutte e 17 le revisioni obsolete.
Conclusione
La gestione dello spazio disco è uno di quei compiti che non noti finche non ti ritrovi con il sistema appesantito senza motivo apparente. Snap fà molte cose bene, ma la politica di conservazione predefinita è troppo generosa per la maggior parte degli utenti. Due revisioni sono sufficienti per garantire un rollback sicuro, tutto il resto è zavorra.
Un singolo comando per la pulizia, una riga di configurazione per rimuovere tutte le versioni obsolete. A volte la manutenzione del sistema è davvero semplice e veloce.
Fonti e Riferimenti
- Configure number of old revisions to keep – Discussione sul forum ufficiale Snapcraft sulla configurazione delle revisioni conservate
- How to remove disabled/unused snap packages with a single line of command – Discussione su Ask Ubuntu da cui nasce l’ispirazione per il comando di pulizia









@emanuelegori fatto, grazie! Ne avevo 19!!!
Grazie per il tuo feedback.