Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Astuces pour garder son système Debian propre

Nota : Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !

Introduction

Vous installez une Debian Sid puis, au fil du temps, en plus de l'environnement de bureau Gnome vous en installez d'autres. Vous ajoutez aussi quelques gestionnaires de fenêtres, comme Openbox, par exemple. Bien sûr, comme vous aimez tester tout un tas de trucs, vous ajouter des applications de toute sorte pour voir de quoi elles ont l'air ou pour tenter de venir en aide à des gens. Certes, à l'occasion vous faites un petit ménage à coup de aptitude purge mais sans plus.

Puis un jour vous tombez sur l'article de Raphaël Hertzog “Garder un système Debian propre, astuce n°1 : se débarrasser des fichiers de configuration inutiles”. Vous lisez attentivement cet article et vous vous dites : “Ouais, il faudrait bien que je me mette en pratique ses conseils depuis le temps que je modifie ma pauvre Sid.” Et c'est ce que j'ai fait.

Comme les astuces que l'on retrouve dans les textes de Raphaël Hertzog, il a écrit en tout 6 textes sur le sujet, peuvent en intéresser plus d'un, je reprend ici l'essentiel que ce que l'on retrouve dans ces textes. Pour consulter les textes en entier et les commentaires qui s'y rattachent, vous trouverez à la fin de ce tuto, en référence, les liens vers les textes présents sur un des sites de Raphaël Hertzog.

Astuces #1 : se débarrasser des fichiers de configuration inutiles

Il est important de savoir que le système de gestion des paquets Debian est fait de telle sorte qu’il conserve les fichiers de configuration d’un paquet lors de sa suppression. C’est une caractéristique qui devient utile lorsque vous réinstallez un paquet puisque vous n’aurez pas à refaire le paramétrage de celui-ci.

C'est bien mais si je ne réinstalle jamais un paquet je vais alors me retrouver avec des fichiers de configuration qui vont encombrer inutilement mon système. Pire, dans certain cas, ces mêmes fichiers peuvent jusqu'à parasiter mon système et peuvent donc entraîner un mal fonctionnement. Aussi, il est bon de se débarrasser de ces fichiers obsolètes à l'occasion. Dépendant de la fréquence à laquelle vous apporter des modification à votre système, vous aurez à faire le ménage plus ou moins souvent.

Comment se débarrasser de ces fichiers de configuration inutiles ?

Il s'agit essentiellement de purger tous les paquets dont il ne reste plus que les fichiers de configuration présents sur le système. Pour ce faire, on peut y arriver assez facilement avec aptitude et plus spécifiquement avec la commande :

aptitude purge ~c

ou

aptitude purge ?config-files

Avant de procéder, on peut remplacer purge par search dans les commandes ci-dessus pour visualiser uniquement la liste des paquets concernés. On peut aussi lancer ces commandes en ajoutant l'option -s pour simuler le tout.

Pour ceux qui sont “allergiques” à la ligne de commande, n'ayez pas peur. Il existe une solution graphique. Vous pouvez en effet vous débarrassez de ces fichiers inutiles à l'aide de Synaptic. Voici la méthode à suivre :

  • 1) Une fois dans Synaptic cliquez sur le bouton « État » en bas à gauche de l'écran.
  • 2) Cliquez ensuite sur « Non installés (résidus de configuration) » : la liste des paquets pouvant être purgés s’affiche alors.
  • 3) Sélectionnez tous les paquets puis en faisant un clic droit puis sélectionner « Marquer pour suppression complète ».
  • 4) Finalement, il ne vous reste plus qu'à cliquer sur « Appliquer » pour lancer la purge des paquets.

Astuce #2 : enlever les paquets obsolètes

Un paquet est considéré comme obsolète du moment que plus aucun des dépôts APT présents dans le fichier /etc/apt/source.lists (et /etc/apt/sources.list.d/) ne le fournit. De nombreuses raisons peuvent conduire à cet état :

  • Le créateur du paquet a arrêté tout support depuis un long moment, personne n’a pris la relève et le mainteneur Debian a préféré retirer le paquet de l’archive Debian. Des alternatives sont la plupart du temps disponibles en remplacement ;
  • Le paquet Debian était orphelin depuis longtemps, personne ne l’a repris en charge et il n’avait que peu d’utilisateurs. Il se peut également que l’équipe Debian QA (Quality Assurance – Assurance Qualité) ait demandé son retrait ;
  • La dernière version du paquet a été empaquetée sous un nom différent. Soit en raison d’un nombre de changements tellement important qu’il était préférable de ne pas mettre à jour automatiquement vers le dernier paquet (ce fut le cas pour request-tracker et nagios par exemple, qui embarquaient tous les deux un numéro de version dans leurs noms), soit simplement parce que le mainteneur du paquet souhaitait permettre à l’utilisateur d’avoir plusieurs versions du paquet installées en même temps (ce qui est le cas par exemple pour le noyau Linux, l’interpréteur Python et de nombreuses bibliothèques) ;
  • L’application a été renommée, et le mainteneur a donc renommé le paquet. Il a gardé un paquet de transition sous l’ancien nom pendant un cycle de publication puis ce dernier a été supprimé.

Ce n’est dans tous les cas jamais une bonne idée de conserver les paquets obsolètes : ils ne profitent d’aucune mise à jour de sécurité, et peuvent causer des problèmes lors des mises à jour, en dépendant de paquets devant être supprimés pour finir celles-ci.

Vous pouvez les supprimez d’un seul coup grâce à

aptitude purge ~o

(ou aptitude purge ?obsolete), mais vous souhaitez peut-être analyser un peu plus la situation avant : il se pourrait que certains paquets que vous avez installés manuellement (et absents des dépôts APT) fassent partie du lot, et ces derniers ne doivent pas subir le même traitement. Vous pouvez obtenir la liste des paquets concernés via aptitude search ?obsolete.

Cette même liste est bien sûr accessible en passant par Synaptic, gestionnaire de paquets en mode graphique : cliquez sur le bouton « État », puis sur « Installés (locaux ou obsolètes) ». Vous pouvez maintenant parcourir la liste et décider, pour chaque paquet, s’il doit être conservé ou non.

Astuce #3 : se débarrasser des paquets externes à Debian

APT a cela de puissant qu’il permet facilement l’ajout de nouveaux dépôts externes, et l’installation de logiciels à partir de ces derniers.

Malheureusement, certains de ces logiciels ne s’avèrent pas être très bien maintenus : paquets de piètre qualité ou plus mis à jour. Un paquet fonctionnant parfaitement au début peut devenir une plaie pour la maintenance du système, par exemple en posant une dépendance sur un paquet devant être supprimé lors de la mise à jour.

Mon but ici est donc de vous montrer comment identifier ces paquets, qui ne proviennent ni de Debian, ni d’Ubuntu, de telle sorte que vous puissiez les passer en revue de temps en temps, et ne garder que ceux dont vous avez réellement besoin. Les paquets obsolètes sont en fait un sous-ensemble de ces paquets mais, les ayant traités dans le dernier billet, je n’y reviendrai pas.

Tout dépôt APT bien conçu est fourni avec un fichier Release le décrivant (celui-ci par exemple). Ces fichiers contiennent un certain nombre de valeurs permettant à APT d’identifier les paquets que contiennent les dépôts correspondants.

Tous les dépôts officiels Debian mentionnent ainsi Origin=Debian (ou Origin=Ubuntu pour Ubuntu). L’attribut Origin de chaque dépôt présent dans votre fichier sources.list peut être vérifié grâce à

apt-cache policy
un extrait du retour de la commande
[...]
 500 http://ftp.debian.org/debian/ lenny/main i386 Packages
     release v=5.0.8,o=Debian,a=stable,n=lenny,l=Debian,c=main
     origin ftp.debian.org
[...]

Partant de là, il suffit de demander à aptitude de renvoyer la liste des paquets installés mais non présents dans un dépôt Debian officiel :

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

search peut être remplacé par purge ou par remove si vous souhaitez supprimer/purger tous les paquets correspondants.
Ceci étant, il est plus probable que vous ne vouliez en supprimer que quelques-uns, intelligemment choisis car il y en a sûrement encore que vous utilisez !

synaptic vous permet également de parcourir le contenu de chaque dépôt : cliquez sur le bouton « Origine » et une liste de dépôts apparaît. Il suffit de parcourir les dépôts non-Debian à la recherche des paquets installés et à jour.

Il est possible de faire encore mieux, c'est de créer une vue personnalisée ainsi :

  1. Cliquez sur l’entrée « Filtres » du menu « Configuration ».
  2. Cliquez ensuite sur « Nouveau » pour créer un nouveau filtre.
  3. Appelez-le par exemple « Paquet externe ».
  4. Décochez toutes les entrées de l’onglet « État » à l’exception de « Installés ».

Astuce #4 : trouver et réinstaller les paquets altérés

Ici, il s'agit de vérifier que les fichiers composant les paquets sont toujours identiques à ce qu’ils étaient lors de l’installation.

Si vous aimez mettre les mains dans le cambouis et que vous avez modifié manuellement certains fichiers afin de procéder à quelques tests rapides, ou si vous installez les nouvelles versions de paquets à partir des sources, il est possible que vous ayez remplacé certains fichiers provenant du paquet originel. Ne serait-il pas intéressant de détecter ces modifications (et d’y remédier !) ? Pour cela, il existe un outil parfaitement conçu pour y arriver. Cet outil c'est debsums.

Lancé sans argument, debsums est très verbeux : il listera chaque fichier installé (à l’exception des fichiers de configuration) en affichant son état : “OK” s’il n’a pas été modifié, et “FAILED” dans le cas contraire.

  • L’option –all permet d’inclure les fichiers de configuration.
  • L’option –config permet, au contraire, de ne prendre en compte que les fichiers de configuration.
  • L’option –changed, enfin, permet de demander à debsums une liste restreinte aux seuls fichiers modifiés.

Prenons un exemple

debsums --changed
retour de la commande
/usr/lib/perl5/AptPkg/Config.pm
/usr/lib/perl5/AptPkg.pm
...

Ici, debsums nous indique, entre autres, que le fichier /usr/lib/perl5/AptPkg.pm a été modifié.

La commande

dpkg --search /usr/lib/perl5/AptPkg.pm

nous permet de trouver que le paquet concerné est libapt-pkg-perl.

C'est bien. Une fois cette information connue, il ne reste plus qu'à réinstaller le paquet concerné pour écraser les fichiers modifiés avec les originaux. Donc :

aptitude reinstall libapt-pkg-perl

ou

apt-get --reinstall install libapt-pkg-perl

Et on refait le processus jusqu'à ce que debsums ne montre plus de fichiers modifiés.

Astuce #5 : trouver et supprimer les fichiers ne provenant pas de paquets

Certains fichiers ne proviennent pas d’un paquet Debian. Dans ce cas, la commande dpkg –search ne trouve aucun paquet associé. Par exemple :

dpkg --search /srv/cvs
retour de la commande
  dpkg-query : aucun chemin ne correspond à /srv/cvs

Votre système contient forcément de ces fichiers. Tout d'abord, il y a ceux qui se trouvent dans votre /home. Et ce ne sont certainement pas les seuls, puisque de nombreux services, ou démons, créent ce type de fichiers (qui sont habituellement stockés dans /var) lors de leur fonctionnement normal : fichiers locaux pour un serveur de bases de données, pool d’emails pour un serveur de mails, etc. C’est tout à fait normal, et vous ne souhaitez absolument pas y toucher !

A l’inverse, certains fichiers dans /usr peuvent ne pas avoir été empaquetés, ce qui n’est pas normal si vous installez systématiquement à partir de paquets. Les lister permet donc de détecter un logiciel installé manuellement.

L’installation manuelle d’un logiciel peut être la source de nombreux problèmes. Prenons l’exemple d’un logiciel installé manuellement, et également à partir d’un paquet Debian. Au fil du temps, l’installation faite à partir du paquet sera mise à jour, tandis que celle manuelle non. Les autres paquets dépendant de ce logiciel “croiront” que leurs dépendances seront satisfaites, puisque ledit logiciel est censé être à jour, alors qu’il n’en sera rien : l’installation manuelle prenant l’ascendant sur celle du paquet, les vieux fichiers seront toujours utilisés…

Convaincu de vouloir vous en débarrasser ? Voyons déjà comment les trouver.

à suivre…

Référence :

1) N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
doc/systeme/apt/debianpropre.txt · Dernière modification: 18/09/2015 07:33 par Papadakis

Pied de page des forums

Propulsé par FluxBB