Magazine Informatica

Deborphan è un programma a riga di comando che si occupa di elencare tutte le librerie che non vengono più utilizzate dal sistema

Creato il 08 luglio 2012 da Hugor @msdiaz61

debian_logo1Dopo qualche mese di utilizzo di una Linux box, spesso si notano dei sostanziali rallentamenti. Magari abbiamo passato questi periodi installando e disinstallando applicazioni, provando programmi e configurazioni ed il sistema risente un po' di queste 'esperienze'. In questo HowTo vedremo di analizzare una soluzione molto comoda (sicuramente molto di più di quella classica di formattare e ricominciare da capo) per rimettere in sesto la nostra amata Debian.

Penso che sia una cosa certa: poter lavorare su un sistema 'pulito' e 'pulibile' è sicuramente più comodo e divertente che su uno 'sporco' e mal gestito, soprattutto quando si tratta di pulizia o di interventi sul sistema! Iniziamo con la rassegna di applicazioni utili.

Installazione:

Dal terminale semplicemente digitare:

apt-get install deborphan

deborphan-install

deborphan-002

deborphan-003

Questo programma, genera una lista di pacchetti 'orfani'. Per pacchetti 'orfani' indichiamo quelle librerie che non sono più necessarie, in quanto nessun pacchetto installato le indica come dipendenza.

 ATTENZIONE:
Se si hanno programmi compilati da sorgente (in modo classico o con checkinstall) le dipendenze di quei pacchetti non saranno controllate, e si potrebbe incorrere in problemi di esecuzione di questi programmi!


Per visualizzare una lista dei pacchetti 'orfani', è sufficiente lanciare il seguente comando:

deborphan

e per avviare il programma che vi farà una bella pulizia di sistema, basterà fare:

apt-get remove –purge `deborphan`

Di default, Deborphan ricerca i pacchetti 'orfani' solo tra le librerie; in tal senso un'opzione interessante da passare al comando è --libdev, che genera una lista delle librerie di sviluppo (quelle che finiscono con -dev) non necessarie.

Per ottenere invece un elenco che comprenda altri tipi di pacchetti è necessario lanciare il comando con l'opzione --guess-foo sostituendo a foo una tra le seguenti:

   common: cerca i pacchetti il cui nome termina in "-common";
   data: effettua la ricerca tra i pacchetti di dati;
   debug: effettua la ricerca tra le librerie di debug;
   dev: effettua la ricerca tra le librerie di sviluppo (simile all'opzione --libdevel);
   doc: effettua la ricerca nei pacchetti della documentazione;
   dummy: effettua la ricerca nei pacchetti che contengono il termine "dummy" o "transitional" nella loro descrizione breve;
   kernel: effettua la ricerca sui moduli del kernel;
   interpreters: ricerca tutti i moduli di interpretazione.

Altre parole chiave da inserire insieme all'opzione --guess si trovano elencate nella pagina di manuale di Deborphan.
Infine, naturalmente:

deborphan --guess-all

ricercherà pacchetti 'orfani' in tutto il sistema.

Se poi vi interessa sapere in che sezione si trova il pacchetto 'orfano' e la sua dimensione potete aggiungere:

deborphan -sz --guess-all

Un'altra opzione molto interessante è quella che consente di elencare i file di configurazione dei pacchetti disinstallati rimasti sul sistema:

deborphan --find-config

Altre opzioni di Deborphan che ho trovato interessanti:

-P, --show-priority
   mostra la priorità dei pacchetti trovati

-e, --exclude=LIST
   esclude i pacchetti elencati in LIST (un elenco separato da virgole)

Per un elenco completo delle opzioni vi invito a leggere la pagina di manuale di Deborphan.

Naturalmente l'output di Deborphan va vagliato con attenzione: solo voi potete sapere se i pacchetti elencati sono realmente inutili. In questo senso vi consiglio di segnarvi, prima di iniziare le "grandi pulizie", le dipendenze dei pacchetti che avete installato manualmente onde evitare di rimuoverle accidentalmente.

È possibile fare in modo che apt-get legga la lista dei pacchetti generata da Deborphan:

apt-get purge `deborphan` 
apt-get purge `deborphan --libdev`

Il comando "apt-get purge" ha la funzione di rimuovere il pacchetto specificato e anche tutti i suoi file di configurazione.


File di Configurazione.

deborphan-004

Eliminando i file di configurazione si libera spazio, e si mantiene più pulita la directory /etc.

Con il seguente comando è possibile rimuovere i file di configurazione che sono stati lasciati nel sistema dai pacchetti non rimossi attraverso il comando "apt-get purge" :

dpkg --purge `dpkg -l | egrep "^rc" | cut -d' ' -f3`

Ecco una breve spiegazione dei comandi:

dpkg --purge listapacchetti

rimuove i file di configurazione di tutti i pacchetti indicati. La lista dei pacchetti è ottenuta tramite il comando:

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

che genera la lista dei pacchetti che non sono stati rimossi completamente (cioè dei quali non sono stati rimossi i file di configurazione).

In dettaglio:

dpkg -l
   Elenca tutti i pacchetti disponibili
egrep "^rc"
   Visualizza solo quelle righe che iniziano con "rc" (stato che indica che il pacchetto è stato rimosso ma sono ancora presenti i file di configurazione)
cut -d' ' -f3
   Restituisce solo il nome del pacchetto: usa come delimitatore (-d) di campo uno spazio (' ') e prende solo il terzo campo (-f3, field in inglese).

deborphan-005

Stesso risultato si ottiene con l'uso di aptitude:

aptitude search ~c

trova i pacchetti che hanno lasciato il file di configurazione nel sistema quando sono stati rimossi.

 aptitude purge ~c

elimina tali file, previa conferma.

Se si vuol cancellare i file di configurazione dei pacchetti rimossi ad ogni avvio del sistema, basta eseguire con i permessi di root:

crontab -e

e inserire le righe:

PATH=/bin:/usr/bin:/sbin
@reboot dpkg --purge `dpkg -l | egrep "^rc" | cut -d' ' -f3` >/dev/null 2>&1

bisogna aggiungere necessariamente la directory /sbin alla variabile PATH e questa deve precedere ogni cronjob.
Guardare a riguardo la guida su Cron.

Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
Deborphan è un programma a riga di comando che si occupa di elencare tutte le librerie che non vengono più utilizzate dal sistema.


Potrebbero interessarti anche :

Ritornare alla prima pagina di Logo Paperblog

Possono interessarti anche questi articoli :