sabato 20 ottobre 2012

Svuotacache o qualcosa del genere.

Ciao!

Ho creato uno script semplice semplice per eliminare i file dei pacchetti contenuti nell'archivio locale di apt. In pratica lo script non fa altro che, come diciamo semplicisticamente, "svuotare la cache di apt dai file setup". A dire il vero quando sento nominare i file setup, tremo un po', non so perchè.

Prima di mostrarvi il testo dello script dobbiamo fare alcune precisazioni.

Quando lanciamo il comando sudo apt-get install pacchetto/i, apt scarica dei file che immagazzina in un archivio locale, precisamente in /var/cache/apt/archives/.

Col tempo questo archivio cresce sempre di più occupando inutilmente dello spazio sul nostro hd.

Ora, abbiamo due strumenti per liberare l'archivio di questi file: apt-get clean e apt-get autoclean.

Apt-get clean elimina qualunque cosa. L'unico inconveniente potrebbe essere che,  se vogliamo reinstallare il pacchetto il cui "setup" è stato eliminato, apt lo deve scaricare di nuovo.

Apt-get autoclean, invece, elimina soltanto i file dei pacchetti obsoleti.

Cosa fa lo script? Anzitutto vi mostra quanti MB di questi file sono contenuti nell'archivio locale. Poi vi dà la possibilità di scegliere di eleminare tutto oppure solo i file obsoleti o, ancora, di non fare alcuna operazione.
Per facilitare ancora più le cose, ho creato un alias in modo che, aperto il terminale, basta scrivere "svuotacache" per lanciare lo script.

Il testo dello script è il seguente:

#!/bin/bash
#svuotacache.sh
#Bit3Lux
echo ""
a=`du -sh /var/cache/apt/archives | cut -f1`
echo "L'archivio locale (/var/cache/apt/archives/) contiene $a di file dei pacchetti"
sleep 3
echo ""
echo "Digita 1 se li vuoi eliminare tutti."
echo "Digita 2 se vuoi eliminare solo quelli obsoleti"
echo "Digita 3 se non vuoi eliminarli"
echo ""
read -p "fai una scelta " scelta
echo ""
case $scelta in
    1)
        echo "Hai scelto di eliminare tutti i file dei pacchetti"
        sudo apt-get clean
    ;;
    2)
        echo "hai scelto di eliminare solo i file dei pacchetti obsoleti"
        sudo apt-get autoclean
    ;;
    3)
        echo "Hai scelto di non eliminare nulla. Ciao"
        exit 0
    ;;
    *)
        echo "Devi fare la tua scelta!"
        exit 1
    ;;
esac
exit 0


Incolliamo il presente testo su un file txt, nominiamolo svuotacache.sh e salviamolo nella nostra home.

Ora rendiamolo eseguibile

$ chmod +x svuotacache.sh

Apriamo il file .bashrc

$ gedit .bashrc

In fondo al file che si apre incolliamo la seguente riga:

alias svuotacache='bash svuotacache.sh'

Salviamo e chiudiamo il file. Per la prima volta è necessario chiudere anche il terminale. Ho usato gedit per aprire il file .bashrc, ma voi potete utilizzare qualsiasi editor.

Ora ogni volta che vogliamo pulire l'archivio locale di apt, basta aprire il terminale e digitare

$ svuotacache
 Per vedere se l'archivio è stato effettivamente ripulito, lanciate la seguente riga di comando:

$ du -sh /var/cache/apt/archives | cut -f1

Lettura consigliata: Gestione dei pacchetti

Alla prossima!

2 commenti:

  1. Questo ti potrebbe servire ;)

    http://toshidex.org/2010/05/19/bash-cleaner-0-1-1/

    RispondiElimina