12 Personnes En ligne

cialis online | viagra online

Nettoyer les paquets Ubuntu/Debian

7 mai 2009 par admin  
Classé dans Astuces

** Article offert par nootilus **

Voici une petite astuce en ligne de commande permettant de faire le ménage dans les paquets Ubuntu/Debian.

Elle a Ă©tĂ© testĂ©e sur Ubuntu 9.04/8.10 et eeeBuntu 2. A tester sous Xandros (qui utilise certain paquets Debian mais n’est pas 100% compatible).

DĂ©soler pour le manque d’image dans l’article mais cela n’Ă©tait pas possible ^^
Voila, la suite se trouve … dans la suite !

PrĂ©requis : vĂ©rifier qu’on a tous les outils.

L’astuce fait appel Ă  quatre commandes du shell; dpkg, grep, awk et xargs. Il faut vĂ©rifier que vous les avez sur votre système.
Deux mĂ©thodes; soit taper la commande et voir si on obtient un message signalant que le programme n’est pas installĂ©, ou faire une recherche dans le cache d’installation, en tapant :

$ dpkg -l | grep awk

Si le paquet est dans votre système, vous verrez ceci (par exemple) :

ii mawk     1.3.3-11.1ubuntu1
a pattern scanning and text processing language

Sinon la commande ne retournera rien. Il se peut Ă©galement que la commande dpkg ne soit pas installĂ©e (ce qui serait Ă©tonnant), dans ce cas il ne vous reste plus qu’Ă  la tĂ©lĂ©charger.

A priori, les quatre commandes sont installĂ©es par dĂ©faut. Si ce n’est pas le cas, un coup de sudo apt-get install rĂ©soudra tout problème.

Etape 1 - lister les paquets

La liste des paquets est lisible en tapant la commande suivante :

$ dpkg -l

Cette commande vous retournera la liste de tous les paquets que votre système, qu’ils soient installĂ©s, semi-installĂ©s (dĂ©pendances manquantes) ou orphelins.
Les deux lettres avant le nom du paquet indiquent sont Ă©tat; ii signifie installĂ© et rc signifie qu’il s’agit d’un fichier de configuration orphelin (son application n’est plus sur le système). C’est bien entendu ces fichiers Ă©tiquetĂ©s rc qui nous intĂ©ressent.

Etape 2 - Isoler les fichiers de configuration

Pour pouvoir isoler les fichiers de configuration, il nous faut récupérer les lignes qui commencent par rc. Pour cela on passe par une commande extrêmement courante et puissante du shell : grep.
Pour passer l’argument de sortie de la commande dpkg (la liste complète) Ă  la commande grep, on les sĂ©pare de la barre verticale. La commande sera donc maintenant comme ceci :

$ dpkg -l | grep ^rc

Cette ligne retournera la liste fournie par dpkg mais n’affiche maintenant que la liste des fichiers de configuration orphelins. Cela mĂŞme dont nous voulons dĂ©barrasser le système.

Etape 3 - Isoler les noms des paquets

Pour pouvoir utiliser le rĂ©sultat de notre recherche, il nous faut maintenant garder uniquement les noms des paquets, les informations accessoires (Ă©tat du paquet, source, version, description) ne nous Ă©tant d’aucune utilitĂ©. Nous allons donc ajouter Ă  notre ligne de commande un petit travail sur la chaĂ®ne de caractères. Nous allons Ă©liminer de l’affichage tout ce qui nous parasite pour ne garder en fait que le second mot affichĂ© Ă  chaque ligne (l’ordre d’affichage Ă©tant l’Ă©tat, le nom, la version, la description).

Pour cela on utilise la commande awk avec l’argument suivant : print (afficher) et $2 pour “2ème mot“, ce qui en français signifie simplement “affiche le 2ème mot” :

$ dpkg -l | grep ^rc | awk ‘{print $2}’

Cette fois, notre ligne de commande retourne uniquement la liste des noms des paquets à éliminer. Ça devient de plus en plus clair :)

Etape 4 - Purger la liste

On pourrait tenter de purger ce que awk retourne, mais il manque encore quelque chose; la commande purge (-P) de dpkg ne prend comme argument que ce qui se trouve à la suite de la commande sur la même ligne, or awk retourne une liste comprenant un nom de paquet par ligne. Si nous lançons la purge telle quelle seul le premier paquet sera purgé.
Nous allons donc utiliser le dernier de nos quatre outils pour transformer cette liste en ligne simple : xargs.

Désormais, notre commande sera la suivante :

$ dpkg -l | grep ^rc | awk ‘{print $2}’ | xargs echo

Cette fois le shell vous retourne une liste brute de noms de paquets Ă  la suite les uns des autres. C’est exactement ce que nous voulions fournir comme arguments pour que dpkg puisse purger votre système des fichiers de configuration inutiles. Transformons cette liste en commande complète (attention, cette opĂ©ration est irrĂ©versible) :

$ dpkg -l | grep ^rc | awk ‘{print $2}’ | sudo xargs dpkg -P

On ajoute le sudo parce que l’opĂ©ration de purge est laissĂ©e Ă  la responsabilitĂ© de l’administrateur système.

Etape 5 - Et après ?

Une fois lancĂ©e, la purge des fichiers de configuration sera effectuĂ©e. Si vous retournez Ă  l’Ă©tape 2, vous verrez que la commande ne vous retourne plus aucune liste. Et pour cause, les fichiers de configuration orphelins ont disparu.

A partir de lĂ , il est possible d’imaginer placer cette commande dans un script, le rendre exĂ©cutable et le confier au dĂ©mon Cron pour que cette purge s’effectue rĂ©gulièrement.

Je vous invite Ă©galement Ă  consulter les man des commandes utilisĂ©es, surtout grep, et de vous “amuser” avec pour imaginer quelles utilitĂ©s vous allez pouvoir en tirer.

A noter :
Le programme apt possède en fait une commande qui semble similaire (mais c’est Ă  vĂ©rifier) :

$ sudo apt-get autoremove

Bon nettoyage de printemps ! :)

.Nootilus

>> Autres liens :


Outils divers :


Liens relatifs :

Catégorie : Astuces | Permalien
, , , ,
6 Réponses pour “Nettoyer les paquets Ubuntu/Debian”
  1. grhim Dit:

    tres bon tuto pour ceux qui ne connaissais pas

    tu as oublier de preciser les outils fait pour cela :

    dpkg,grep,awk et xarg

    pour allez plus loin tu peu faire un ’sed’ et une boucle ‘for’ (bash)

    ;p

  2. EricD86 Dit:

    Merci bcp Nootilus pour cet article. ca va ĂŞtre bien pour mon ubuntu 9.04 !
    Ca va permettre de faire un peu de ménage.

  3. Nootilus Dit:

    Merci, grhim et EricD86.

    Petite explication toute bĂŞte Ă  propos de l’absence de capture d’Ă©cran; une fois faite, cette opĂ©ration est difficile Ă  renouveler. En effet lorsqu’on a purgĂ© son système des fichiers de config, si on recommence l’opĂ©ration de listage… on n’obtient rien :)
    Comme j’ai testĂ© le script avant de rĂ©diger mon tuto, au moment de m’y mettre, je n’avais plus rien Ă  montrer … :)

  4. stEeef Dit:

    Bon et bien on vas essayer sa , en esperent pas faire de betise .

    Super tutos Nootilus .

  5. Nootilus Dit:

    stEeef, la seule bĂŞtise que tu risques, c’est d’indiquer Ă  la commande GREP des caractères correspondant Ă  des paquets qu’il ne faut pas effacer (^ii par exemple) ou pire; oublier la commande GREP, ce qui aurait pour consĂ©quence … de purger entièrement ta bibliothèque de paquets :)

  6. stEeef Dit:

    En gros je risque juste un F9 , je vais voir ca alors .

    merci de ta reponse Nootilus


Dites ce que vous en pensez...
Et oh, si vous voulez une image avec votre commentaire, inscrivez vous sur gravatar!

EEE PC Logiciels sur Facebook