Miniguida: tenere puliti i pacchetti Debian/Ubuntu

Pulire pacchetti Debian

Normalmente il sistema di package management garantisce un costante, sicuro e armonico aggiornamento delle applicazioni presenti nel sistema.

Tuttavia, i pacchetti obsoleti non potranno essere aggiornati da APT, in quanto essi non sono più presenti nei repository (puntati da /etc/apt/source.lists oppure da /etc/apt/sources.list.d/*), vuoi perché non più supportati dal programmatore, perché la nomenclatura è nel tempo cambiata (e per vari motivi non si è scelto l’aggiornamento automatico verso package con nuovo nome) o perché presenti nella distribuzione Linux poiché derivati da una qualche release passata, dalla quale l’attuale deriva da una (a volte impressionante) serie di aggiornamenti.

Pacchetti che non ricevano aggiornamenti di sicurezza possono divenire minacce per l’intero sistema operativo ed è bene, per una corretta sicurezza e pulizia del sistema stesso, rimuoverli.

Per far questo è possibile localizzarli con:

aptitude search ?obsolete

e rimuovere quelli non indispensabili (uno per uno) con il consueto:

apt-get --purge remove pacchetto

oppure rimuovere tutto direttamente con:

aptitude purge ?obsolete

oppure anche con un più sofisticato:

apt-get --purge remove $(aptitude search ?obsolete -F %p)

Il comando apt-get remove con l’opzione purge rimuove sia i pacchetti che i file di configurazione, cosa che di default (ovvero in mancanza di tale specifica indicazione) non avviene.

Se nel passato, a seguito di una disinstallazione, ci siamo dimenticati di rimuovere anche i file di configurazione o non abbiamo voluto farlo (pensando ad una successiva installazione del pacchetto, di modo che questo fosse già configurato), possiamo trovare tutti i pacchetti con configurazioni residue tramite:

aptitude show ?config-files

ed eliminare il tutto mediante:

aptitude purge ?config-files

Sempre sulla sicurezza e sugli aggiornamenti: grazie alla potenza del modo di installazione di pacchetti su Linux è possibile (e a volte “necessario”) utilizzare repository esterni, che però talvolta vengono lasciati a se stessi per lunghissimo tempo, dandoci una falsa parvenza di aggiornamento (leggi: non ci sono aggiornamenti: tutto è aggiornato, cosa che chiaramente non è vera).

Uno dei mille modi per renderci conto di cosa non appartenga ai repository ufficiali (nell’esempio di Debian) è tramite la seguente:

aptitude search '~S ~i !~ODebian !~o'

Tag: ,

Commenti

  1. [1]

    Si può anche usare Ubuntu Tweak: con una semplice interfaccia elimini pacchetti obsoleti, file di configurazione, cache dei pacchetti e anche i vecchi kernel, che sono quelli che occupano di più.
    Poi beh, il fascino del terminale…che però rischia di allontanare gli utonti, più a loro agiocon una GUI :)

    P.S. Puoi aggiungere ai comandi da terminale anche quello per i vecchi kernel? Sono circa 100MB l’uno e recuperi spazio e pulisci il sistema non poco così.

  2. [2]

    Io ci andrei cauto con il comando “aptitude purge ?obsolete”.
    Lanciato sul mio sistema cancellerebbe alcuni pacchetti come Handbrake che devono essere per forza alla versione che ho installato io per funzionare sul mio sistema.
    Vorrei però capire meglio, quando un pacchetto diventa obsolete.

  3. [3]

    @abba,
    .
    > Si può anche usare Ubuntu Tweak.
    .
    Vero, ma le miniguide (quelle pubblicate di qui in avanti) vorrei destinarle a chi vuol conoscere una distro Linux più nel dettaglio. Per tutto il resto c’è Mastercard.
    .
    > Puoi aggiungere ai comandi da terminale anche quello per i vecchi kernel?
    .
    Giusto!
    .
    Per conoscere il kernel in uso: uname -r
    Per listare i kernel installati: dpkg -l | grep linux-image
    Per rimuovere un kernel (obsoleto): sudo apt-get remove kernelFile

  4. [4]

    Forse per trovare i file di configurazione è

    aptitude show ?config-files

    e poi per eliminarli

    sudo aptitude purge ?config-files

  5. [5]

    A parte il fatto che non cancello mai i vecchi kernel per avere sempre un salvagente in caso di naufragio io oltre a

    sudo apt-get autoremove –purge

    non vado

  6. [6]

    Non mi pare una procedura molto sicura. Praticamente mi vuole disinstallare tutti i .deb che io ho installato a mano e non tramite repository!
    Quoto Diego: non vado oltre “autoremove”.

  7. [7]

    @Diego,
    .
    Forse per trovare i file di configurazione è
    aptitude show ?config-files
    .
    Assolutamente sì, grazie di aver segnalato l’orrore di copia/incolla ;)

  8. [8]

    @jonbonjovi,
    .
    nulla verrà fatto fino a tua conferma.
    .
    E’ sicuramente preferibile usare:
    .
    aptitude search ?obsolete
    .
    e rimuovere quelli non indispensabili (uno per uno) con il consueto:
    .
    apt-get –purge remove pacchetto

  9. [9]

    @Marco Buratto
    Grazie !

  10. [10]

    Sinceramente sto lontano da autoremove ho avuto cattive esperienze nell’usarlo (voleva brasarmi mezzo gnome), se devo fare qualcosa di specifico mi sono sempre affidato a Synaptic ottimo tools grafico praticamente puoi fare tutto da li.

    Tuttavia trovo queste guide utili fanno conoscere comando utili nel caso ci si dovesse trovare con Xorg fuori uso :)

  11. [11]

    Non credo sia autoremove il problema ma cosa hai rimosso prima :)
    Se ciò che hai rimosso aveva un sacco di roba collegata da una serie di dipendenze, autoremove fa fuori tutto ciò che era collegato e non più utilizzato da altri.
    Synaptic, nei files “auto removibili, fa lo stessa cosa, è un’interfaccia grafica per autoremove :)

  12. [12]

    aytin,

    assolutamente corretto.

  13. [13]

    Al riguardo di:
    .
    apt-get autoremove
    .
    l’articolo da cui ho tratto il mio tratta oggi l’argomento.
    .
    In breve:
    .
    - quando si installa un nuovo pacchetto, questo porta spesso con sé altri pacchetti quali dipendenze;
    .
    - i “pacchetti extra” saranno marcati come “automatically installed”;
    .
    - questi pacchetti sono visibili tramite: apt-mark showauto;
    .
    - se il pacchetto originale da cui dipendevano viene cancellato, questi pacchetti “extra” non sono più necessari;
    .
    - risulta possibile eliminarli automaticamente mediante: apt-get autoremove.

Inserisci il tuo commento