domenica 20 giugno 2010

Pulire LinuxMint

APT (Advanced Packaging Tool) è il gestore dei pacchetti presente sui sistemi a base Debian.

Chi come me, spesso installa e rimuove programmi di ogni tipo (solo per testare la velocità di scaricamento di un nuovo peer client o qualche giochetto FSP) incapperà di certo nell'amara constatazione di aver bruciato quasi tutto lo spazio disponibile nella partizione riservata alla nostra distribuzione preferita. Apt non è la soluzione finale a questo problema ma aiuta di certo a tenere tutto il sistema il più snello possibile e ci da la possibilità di disfarci di vecchie librerie e pacchetti obsoleti. Con questo programma e le sue varie interfacce grafiche (Synaptic, Adept, etc.) è possibile installare e rimuovere software e aggiornare un intera distribuzione.

In questa guida utilizzeremo la forza di APT assieme a quella di altri geniali programmi; infine illustrerò delle pipe ideali per la pulizia dei file di configurazione.

Illustriamo brevemente le principali mansioni che svolge apt-get da riga di comando:

sudo apt-get update

Risincronizza la lista dei pacchetti con i server della distribuzione.

sudo apt-get install nomepacchetto

Ci permette di installare uno specifico pacchetto; il programma automaticamente trascinerà nell'installazione tutte le dipendenze necessarie.

sudo apt-get upgrade

Installa le versioni più aggiornate di tutti i pacchetti presenti nel sistema.

sudo apt-get dist-upgrade

Dipende dalla distribuzione. In generale funziona come "apt-get upgrade" elettivamente per i pacchetti più importanti.



Vediamo inoltre nello specifico i principali comandi per la rimozione di pacchetti e la pulizia della cache:

sudo apt-get remove nomepacchetto

Rimuove uno specifico pacchetto

sudo apt-get remove --purge nomepacchetto

Rimuove il pacchetto e il suo file di configurazione (cartella /etc )

sudo apt-get autoremove

Rimuove tutti i pacchetti che erano stati installati in precedenza e che ora non sono più necessari. Il comando è di solito suggerito dal sistema stesso.

sudo apt-get autoclean

rimuove tutti i pacchetti contenuti in /var/cache/apt/archives e in /var/cache/apt/archives/partial (eccezione fatta per i file di lock)

sudo apt-get clean

rimuove tutti i pacchetti che non possono più essere scaricati, perché ormai rimossi dai repository.

Gli ultimi 5 comandi danno una bella sfoltita a tutta l'installazione ma si può fare un piccolo passo avanti e unire le capacità di apt-get con quelle di deborphan.

Deborphan è un piccolo programma presente nei repository sia di LinuxMint che di Ubuntu. Lanciato da riga di comando mostra un elenco di librerie 'orfane', cioè non più nominate da nessun altro pacchetto e quindi non necessarie. Mentre se passiamo il risultato del comando ad apt-get (utilizzando i backtick che reindirizzano il risultato di un comando in un altro), quest'ultimo rintraccia il pacchetto e lo elimina.

L'operazione va però eseguita più volte.

sudo apt-get remove --purge `deborphan`



sudo apt-get remove --purge `deborphan --libdev`

rimuove anche le librerie di sviluppo



Oltre ai comandi sopra elencati ne suggerisco altri 3 per chi come me è ossessionato dall'ordine e dalla pulizia.

(1) Debfoster: è un programma che tiene traccia di tutti i pacchetti installati. Durante la prima esecuzione chiede all'utente - pacchetto per pacchetto - se intende mantenerlo o no. Per ognuno indica le eventuali dipendenze. In generale è utile per rendere più snello un sistema dopo un upgrade di distribuzione.

(2) Localepurge: che si trova sempre nei repository di LinuxMint ci permette, invece, di indicare quale lingua e di solito utilizzata nel sistema (è consigliabile lasciare oltre all'italiano anche l'inglese) per poi rimuovere successivamente tutte le pagine di manuale (man) che non corrispondono alle lingue indicate. Questa programma, una volta settato, si attiva automaticamente ad ogni successiva installazione eseguita con apt-get.

(3)
Consiglio in ultimo una pipe che ci permette di eliminare tutti i file di configurazione non eliminati in precedenza, collegati ad un determinato pacchetto (utile per chi come me ricorda circa 30 secondi dopo di aggiungere l'opzione --purge al comando apt-get remove).

La stringa è la seguente:

sudo dpkg --purge `COLUMNS=300 dpkg -l | egrep "^rc" | cut -d' ' -f3`


La prima parte:

dpkg --purge listapacchetti

rimuove i file di configurazione di tutti i pacchetti indicati. La lista dei pacchetti è ottenuta tramite il comando (seconda parte) passato con i backtick (``) e attraverso delle pipe ( "|" che si occupano, in sintesi, di passare l'output di un comando come l'input di un altro).

seconda parte:

`COLUMNS=300 dpkg -l | egrep "^rc" | cut -d' ' -f3`

Nessun commento:

Posta un commento