Pulire LinuxUna carrellata – spero completa ed esauriente – su metodi, programmi e comandi per mantenere pulita e per manutenere le vostra Linux box, indipendentemente dalla distribuzione in uso.

File temporanei, file di cache, file di backup

Nel sistema si trovano più file temporanei, di diverso tipo e di diversa utilità. Generalmente, /tmp è la directory deputata per questi file (riga 1 dell’esempio), ma molti programmi mantengono file di cache nella home utente, come Firefox (riga 2) o come le anteprime dei file immagini (riga 3):

$ sudo rm -rf /tmp/*
$ rm -rf $HOME/.mozilla/firefox/*.default/Cache
$ rm -rf $HOME/.thumbnails

Sono solo 3 esempi per rendere l’idea, i casi reali potrebbero essere di numero maggiore e soprattutto potrebbero variare da sistema a sistema, a seconda del software in uso. È importante, in questo senso, imparare a esplorare autonomamente la propria home directory, a partire dal comando

ls -a

che mostra anche le directory nascoste. Si tenga anche in conto che molti browser integrano uno strumento per svolgere automaticamente queste funzioni. Ad esempio:

  • con Firefox, andare su StrumentiCancella cronologia recente…, quindi selezionare “Tutto” nell’intervallo di tempo e spuntare le opzioni “Cronologia navigazione e download”, “Moduli e ricerche” e “Cache”;
  • con Google Chrome, cliccare sul tasto delle impostazioni (in alto a destra, quello con la chiave inglese), poi StrumentiCancella dati di navigazione…, quindi spuntare “Cancella cronologia di navigazione”, “Cancella cronologia download” e “Svuota la cache”, infine selezionare “Tutto” nell’intervallo di tempo.

In questo contesto può tornare utile l’utilizzo di find, che non solo ci permette di svolgere ricerche anche molto complesse nel sistema, ma anche di eseguire comandi sui risultati di una ricerca.
Supponiamo ad esempio di voler cancellare alcuni file di backup, per intenderci quelli che hanno la tilde (~) nel nome:

$ find $HOME -name "*~" -exec rm {} \;

La prima parte del comando, ovvero

find $HOME -name "*~"

ricerca nella home i file che contengono la tilde nel proprio nome, mentre la seconda parte

-exec rm {} \;

esegue il comando rm sui risultati della ricerca. Lo stesso si potrebbe applicare, ad esempio, per i famosi file Thumbs.db, creati da Windows nelle cartelle che contengono immagini per memorizzare le miniature e che è facile ritrovarsi quando si scambiano file con utenti Windows:

$ find . -name "Thumbs.db" -exec rm {} \;

Pulizia dei pacchetti

Qui purtroppo il discorso varia da distribuzione in distribuzione. Generalmente però ogni gestore dei pacchetti (e soprattutto quelli da linea di comando) offre delle comode opzioni per la pulizia dei pacchetti, che possiamo conoscere ricorrendo al manuale (man) o usando l’opzione –help.

Per quanto riguarda Debian, Ubuntu e derivate, apt-get offre le seguenti opzioni:

autoremove - Rimuove automaticamente i pacchetti inutilizzati
clean - Elimina i file dei pacchetti scaricati
autoclean - Elimina i vecchi pacchetti scaricati

Lo stesso vale per Synaptic, è sufficiente andare in ImpostazioniPreferenzeFile:

Synaptic

Sempre su Debian e Ubuntu, abbiamo anche la possibilità di rimuovere pacchetti obsoleti e vecchi file di configurazione tramite dkpg:

# dpkg --purge `COLUMNS=300 dpkg -l "*" | egrep "^rc" | cut -d\  -f3`

Deborphan

Deborphan (maggiori informazioni qui) si occupa di trovare quei pacchetti, in particolare librerie di sistema, non più utilizzati dalla nostra Linux box. L’omologo tool per le distribuzioni che invece utilizzano gli rpm è rpmorphan (maggiori informazioni qui).

Si può utilizzare semplicemente da riga di comando:

# deborphan

O, ancora meglio, passare il suo output come input per il nostro gestore di pacchetti:

# aptitude purge `deborphan`

Non è una cattiva idea, comunque, verificare la lista dei pacchetti che si vanno così a rimuovere: deborphan è un tool che usato senza le dovute attenzioni potrebbe causare gravi danni al sistema.

Esiste anche ovviamente un’interfaccia grafica per deborphan, chiamata gtkorphan (sito ufficiale). Uno screenshot:

Gtkorphan

Checkinstall

Anche se raramente, può capitare di avere la necessità di compilare manualmente dei sorgenti software, o perché non troviamo un determinato software già pacchettizzato nei repository della nostra distribuzione, oppure perché abbiamo bisogno di una versione più recente rispetto a quella normalmente disponibile.
Generalmente ed eccezioni a parte, la compilazione è composta dai tre seguenti comandi:

$ ./configure
$ make
# make install

In futuro, però, difficilmente potremmo avere traccia dei file installati con questo metodo. A questo scopo è a nostra disposizione checkinstall, che permette di generare un vero e proprio pacchetto (seppur – si faccia attenzione – sia un pacchetto valido solo per il sistema in uso e non ridistribuibile) a partire dai sorgenti. La configurazione e la compilazione rimangono inalterate, cambia invece il comando di installazione, cui si sostituisce checkinstall. La procedura, in sostituzione a quella appena vista, diventa quindi la seguente:

$ ./configure
$ make
# checkinstall

Durante la generazione ci verranno poste delle domande circa le informazioni sul pacchetto che verrà generato.

Gconf-cleaner

Il desktop environment Gnome utilizza un apposito registro per la configurazione del desktop e delle sue applicazioni, chiamato appunto gconf e normalmente gestibile tramite gconf-editor. A quest’ultimo editor si può affiancare gconf-cleaner, che permette, tramite un semplicissimo wizard, di rimuovere tutte le voci obsolete presenti nel registro, frequenti soprattutto quando si disinstalla un programma ma la configurazione rimane intatta.

gconf-cleaner

In questo esempio, su un totale di 3354 chiavi, 721 sono eliminabili. Il tasto Save As permette inoltre di effettuare una copia delle chiavi segnate per l’eliminazione, così da poterle ripristinare in caso di necessità. Il file .reg così salvato potrà essere ripristinato tramite gconftool:

$ gconftool --load file.reg

Localepurge

Generalmente, quando installiamo un software vengono installate anche tutte le traduzioni previste dal programmatore, che a noi potrebbero non servire. Qui entra in gioco localepurge, una semplice ed efficace utility che ci permette di cancellare dal sistema tutte le traduzioni inutili.

In fase di installazione ci verrà chiesto quali lingue mantenere, ovvero quali non vogliamo cancellare. Oltre alla lingua italiana (“it” e simili) è buona norma lasciare intatta anche la lingua inglese (“en”), per garantire il funzionamento anche dei software che non hanno la traduzione nella nostra lingua:

localepurge

Si può lanciare tramite terminale:

# localepurge

E restituisce in output i risultati della pulizia effettuata:

localepurge: Disk space freed in /usr/share/locale: 137588 KiB
localepurge: Disk space freed in /usr/share/man: 4268 KiB
localepurge: Disk space freed in /usr/share/gnome/help: 7844 KiB
localepurge: Disk space freed in /usr/share/omf: 840 KiB
localepurge: Disk space freed in /usr/share/doc/kde/HTML: 0 KiB

Total disk space freed by localepurge: 150540 KiB

BleachBit

BleachBit, tool completo di interfaccia grafica, è forse lo strumento di pulizia più potente a disposizione: non sostituisce completamente tutti i metodi mostrati in questa guida, ma ne include molti di questi e offre numerose altre funzionalità, così tante da non avere la possibilità di riportarle in questa guida :-)
L’unica è verificare “di persona”.

bleachbit

Anche qui è comunque buona norma porre attenzione alle opzioni che si vanno ad abilitare, onde evitare di cancellare file importanti. Ad esempio, per quanto riguarda i vari browser che utilizziamo, si faccia attenzione a lasciare intatti cookie, password, moduli, sessioni e segnalibri. Per quanto riguarda l’opzione “Libera spazio su disco” (sotto la voce “Sistema”), questa si limita semplicemente a sovrascrivere lo spazio libero: non è particolarmente utile ed impiega molto tempo, quindi si può tranquillamente evitare.

I risultati, in questo caso, sono più che sorprendenti. Guardare in fondo al log per credere. Nel mio caso:

Spazio su disco recuperato: 470MB
File eliminati: 19045
Operazioni speciali: 4
Espandi/comprimi Commenti
Federico
(25/04/2012, 18:57)

Ciao Mirko!Sto utilizzando le tua guida!Grazie!Io ho un vecchio eeepc 900 con debian testing e la home piena come un uovo!

[…] partito da alcuni spunti offerti da questa discussione sul forum ufficiale di Ubuntu, da un mio precedente articolo in cui ho già illustrato alcuni strumenti di manutenzione e di pulizia e (non per ultime) dalla […]

XHTML - Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>