Garder sa distribution GNU/Linux propre comme un sou neuf (deuxième partie)

Vous qui lisez ce blog régulièrement, vous vous rappellerez sans doute qu’il y a déjà quelques mois je m’étais intéressé à différentes méthodes visant à maintenir propre et net son système GNU/Linux… C’était dans ce billet et il n’y était guère question que de lignes de commandes.

Nous allons cette fois-ci et comme promis en conclusion du précédent article, nous orienter vers les applications graphiques. Comme toujours ce sont les distributions Debian/Ubuntu qui ont mes faveurs mais la plupart de ces outils sont présents ou installables sur bon nombre de systèmes Linux.

L’avantage de ces outils graphiques réside essentiellement dans leur ergonomie, qui leur permet de gérer simultanément une grande quantité de paramètres, mais comme toujours ils peuvent être utilisables eux-même en ligne de commande ou n’être simplement qu’une interface graphique à une ou plusieurs commandes préexistantes, comme l’est par exemple Gtkorphan pour deborphan

Suppression des fichiers de configuration dans Synaptic
Suppression des fichiers de configuration dans Synaptic

Tout nettoyage efficace commence par la purge des paquets obsolètes ou superflus et l’on dispose pour cela de synaptic et computer-janitor ; certes ce dernier n’est plus installé automatiquement sur les dernières versions d’Ubuntu, mais il n’en reste pas moins dans les dépots…

Le bouton État de Synaptic est particulièrement intéressant au sens ou il permet de connaitre immédiatement le statut des paquets et partant de faire des suppressions plutôt « intelligentes » notamment pour les paquets « pouvant être supprimés » (orphelins) ou encore les « résidus de configurations » . Il faut toujours garder à l’esprit que Synaptic est une GUI (Graphic User Interface) pour apt-get et que tout comme cette commande il ne gère pas la suppression automatique des dépendances ; de même pour obtenir l’équivalent de l’option purge il faudra sélectionner les paquets « pour une suppression complète » et il se chargera alors d’éliminer également les fichiers de configuration…

Nettoyage du système
Nettoyage du système 

D’une façon un peu plus automatique mais aussi plus opaque à l’utilisateur on peut également utiliser l’application identifiée par Nettoyage du système alias computer-janitor dans le menu administration…

Cette application traquera pour vous dans les confins du système tout à la fois les paquets inutiles, les fichiers de configurations orphelins et les anciens noyaux…

Petite limite selon moi à son intérêt et à son utilisation (ce qui explique certainement son retrait des applications installées automatiquement par le système), l’impossibilité pour l’utilisateur d’intervenir sur son mode de sélection ou son paramétrage, hormis la liste finale…

Nettoyage des librairies orphelines
Nettoyage des librairies orphelines

Un autre de ces outils fort utiles pour débarrasser son système des paquets superflus est Gtkorphan, GUI de la commande deborphan, permettant d’indiquer facilement via un menu le type de fichiers ou de bibliothèques orphelines que l’on souhaite effacer.

Ce n’est d’ailleurs pas la sa seule qualité, car l’éventail et la modularité des options est particulièrement riche. On peut spécifier en effet si l’on souhaite rechercher là encore les fichiers de configuration non effacés par une suppression de paquet ou choisir le type de librairies orphelines à enlever, de celles relatives à python, à perl, etc,  jusqu’à la totalité, soit l’équivalent d’un deborphan –guess-all en ligne de commande.

Par ailleurs, puisque l’on fait le ménage dans le système de paquetage logiciel, il est de bon ton de vider son cache ce qui peut faire gagner à terme quelques centaines de méga-octets d’espace disque. Synaptic peut le faire si on le lui spécifie dans ses options mais d’autres outils à vocation plus générale le font également : c’est ceux-ci que nous allons aborder à présent.

Nettoyage avec Bleachbit
Nettoyage avec Bleachbit

Bleachbit est ce que l’on pourrait qualifier de nettoyeur à tout faire, s’agissant des historiques, caches et répertoires temporaires divers. A noter que deux modes de fonctionnement sont possibles : un mode utilisateur plutôt orienté vidage de caches et un mode root plus ciblé sur le nettoyage système (cache des paquets, vidage de /tmp et des journaux système, traductions inutiles, etc) et toutes choses requérant les attributions de l’administrateur. Ce dernier mode est particulièrement efficace pour se défaire des fichiers d’internationalisation non supprimés par localepurge, avec une fois de plus à la clé une quantité notable d’espace disque récupéré.

Fslint
Recherche de fichiers temporaires avec Fslint

 

Dans un registre un peu plus technique vient Fslint, utilisable également en ligne de commande.

Cet outil au demeurant hautement paramétrable et donc extrêmement polyvalent va quant à lui permettre de rechercher d’abord dans son home directory mais à priori partout où on le lui spécifiera les fichiers dupliqués, les répertoires vides, les fichiers temporaires ou encore les liens symboliques erronés… Le site doc.ubuntu-fr.org qualifie Fslint de couteau suisse et je partage amplement cet avis.

Enfin, pour conclure ce rapide tour d’horizon (non exhaustif) des outils graphiques, je vais simplement présenter deux applications disponibles uniquement sur Ubuntu que sont Ubuntu Tweak et Ailurus, encore que ce dernier fonctionne également sous Fedora. Ces deux utilitaires sont de véritables postes de commandes du système à la vocation beaucoup plus large que le simple nettoyage du système, même si elles intègrent en effet cette fonctionnalité. Dans les deux cas ces applications ne se trouvent pas sur les dépôts officiels et il faudra donc télécharger les .deb correspondant à sa version de distribution ainsi qu’à son architecture. D’une façon plus cohérente dans la mesure où on peut les trouver via launchpad on installera leur dépôt ppa au moyen de la commande add-apt-repository ce qui permettra des mises à jours et des suppressions aisées.

Il serait trop long et un peu vain de détailler ici le fonctionnement de ces deux applications dont le but est de paramétrer son système avec finesse ; les essayer est un bien meilleur révélateur. En guise de conclusion, quelques copies d’écran qui je l’espère vous donneront envie de le faire…

Nettoyage avec Ubuntu Tweak
Nettoyage avec Ubuntu Tweak

Ubuntu Tweak fait la part belle à la gestion des paquets, y compris les ppa et facilite la gestion des sources. Dans ses versions pour des distributions récentes, les fonctions de nettoyage s’étendent également aux caches des navigateurs, entre autres…
Il ne faut cependant pas négliger le reste de ses fonctionnalités, qui permettent d’accéder facilement à nombre de paramètres peu accessibles du système.

Fonctionnalité "ordinateur médecin" dans Ailurus.
Fonctionnalité « ordinateur médecin » dans Ailurus.

Ailurus est peu ou prou équivalent à Ubuntu Tweak sur bien des points, mais se veut néanmoins plus didactique dans son approche au sens où toutes les modifications effectuées sur le système sont explicitement décrites avec la ligne de commande correspondante.

Note : pour aller plus loin avec Ubuntu Tweak et Ailurus, je vous invite à consulter les pages consacrées à ces applications sur le site doc.ubuntu-fr.org.
Et toujours dans la catégorie bonnes lectures, je vous invite à consulter une série d’articles rédigés par Raphaël Herzog, par ailleurs auteur des Cahiers de l’Admin Debian, sur son blog :

Enfin, et j’en terminerai la dessus, maintenir un système en bon ordre de marche résulte nécessairement d’une démarche volontaire et de l’utilisation conjointe d’un certain nombre d’outils, graphiques ou non, et pour certains partiellement automatiques, mais toujours sans perdre de vue que c’est vous qui êtes aux commandes…

Garder sa distribution GNU/Linux propre comme un sou neuf (première partie)

Bien que la robustesse des systèmes de fichiers les plus fréquemment utilisés sous GNU/Linux et leur capacité intrinsèque à ne pas se fragmenter à l’utilisation ne soit plus à démontrer, force est de constater que la fréquence des mise à jour, quand ce n’est pas la succession d’installations/désinstallations de programmes contribuent néanmoins à encombrer inutilement le système de paquets obsolètes voire orphelins.
De même l’utilisation fréquente des applications de messagerie ou de navigation sur le web se traduit inévitablement par la mise en cache d’un grand nombre de fichiers temporaires, qui s’ils ne sont pas purgés périodiquement contribuent eux aussi à « l’encrassement » général du système…

Sans prétendre à l’exhaustivité, cet article se veut être un recueil de bonnes pratiques visant à maintenir son système GNU/Linux aussi propre que possible.

Comme d’habitude, nous nous intéresserons plus particulièrement aux distributions de type Debian/Ubuntu et dérivées, et dans ce premier article nous aborderons les outils disponibles en ligne de commande. Il en existe évidemment d’autres en mode graphique qui leur sont complémentaires ou qui permettent d’aller plus loin, aussi je leur consacrerai un prochain billet sur ce blog.

A chaque installation ou mise à jour d’un paquet logiciel, ce dernier est  téléchargé depuis les dépôts avant installation, puis est conservé en cache pour pouvoir être rapidement réinstallé, le cas échéant.
Si cette politique est tout à fait louable pour économiser de la bande passante et gagner du temps sur le téléchargement, on se retrouve très rapidement avec un cache de paquets de plusieurs giga-octets dont on peut facilement venir à bout :

sudo aptitude clean && sudo aptitude autoclean

Si l’on gagne ainsi un espace disque non négligeable, on peut cependant faire mieux. Chaque désinstallation de logiciel laisse en général (sauf si l’on a pris soin d’utiliser l’option –purge) des fichiers de configurations dont on peut se débarrasser facilement :

sudo aptitude purge ~c

Au reste, on peut sans forcément le savoir conserver au sein du système de nombreux paquets devenus obsolètes au fil des mise à jour que l’on éliminera comme suit :

sudo aptitude purge ~o

Sans faire preuve de frilosité outre mesure, on peut tout à fait préférer vérifier ce que l’on s’apprête à supprimer. Il suffira pour cela de remplacer dans ce qui précède l’argument purge par search, tout simplement…

A ce stade, vous aurez remarqué que j’utilise le gestionnaire de paquet aptitude au lieu d’apt-get qui est plus volontiers invoqué dans la documentation. De mon point de vue, étayé par cet article ou encore celui-ci, aptitude est à la fois plus souple et plus puissant qu’apt-get, et avant tout gère mieux les dépendances, y compris et surtout pour les mises à niveau de distributions. C’est également une habitude que j’ai prise depuis la Debian 3.1 « Sarge » et dont je n’ai pas envie de me défaire…

Maintenir propre sa base de paquets est une bonne chose, mais on peut cependant aller plus loin et débarrasser son système de nombre de fichiers inutiles, à commencer par les bibliothèques orphelines ou les fichiers de traduction dans les langues autres que la sienne. Pour cela on va se servir de deux programmes extrêmement utiles et efficaces que sont deborphan et localepurge. Installons-les pour commencer :

sudo aptitude install -r deborphan localepurge

deborphan (et son pendant graphique gtkorphan) repère les bibliothèques orphelines i.e. les composants de programmes rendus inutiles par désinstallation mais non supprimés par la gestion automatique des dépendances. Invoqué sans plus d’arguments à la ligne de commande, deborphan dresse la liste des « orphelins ». On l’utilise en général combiné à d’autre programmes, voire au sein de scripts shells :

deborphan | xargs sudo aptitude -y purge

supprimera les orphelins mais si l’on veut supprimer les paquets -dev devenus inutiles il suffira de faire :

deborphan --guess-dev | xargs sudo aptitude -y purge

Enfin, si l’on a pas froid aux yeux (et fait quelques vérifications préalables) on peut aussi procéder à un nettoyage radical avec :

deborphan --guess-all | xargs sudo aptitude -y purge

Pour en terminer avec la suppression des paquets inutilisés, voici un exemple de script de nettoyage permettant d’automatiser ce genre de tâche :

[sourcecode language= »bash » highlight= »3,31″]
#!/bin/zsh
echo « liste des paquets inutilisés : »
deborphan
echo « nettoyer? o/n »
read netdeb
if [[ $netdeb == o ]]
then
apt-get remove –purge `deborphan`
fi
echo « paquets desinstallés avec fichiers de config présents »
dpkg -l |grep « rc   » | awk ‘{ print $1″: »$2 }’ > liste_nom
for i in `more liste_nom`
do
echo $i > temp_verif
verif=`awk -F ‘:’ ‘{ print $1 }’ temp_verif`
if [[ $verif == « rc » ]]
then
paquet=`awk -F ‘:’ ‘{ print $2 }’ temp_verif`
echo « purger le paquet : » $paquet « ?  o/n »
read netconf
if [[ $netconf == « o » ]]
then
dpkg –purge $paquet
fi
fi
done
# nettoyage fichiers temporaires
rm liste_nom temp_verif
[/sourcecode]

Par ailleurs, l’internationalisation toujours plus poussée amène avec elle un inconvénient de taille, si l’on peut dire, sous la forme des traductions des pages de man. Hormis l’anglais qui est la langue native du système et le français la langue d’usage il est inutile de conserver l’ensemble des traductions et pour cela localepurge est notre ami. A l’installation, il suffit de cocher les cases en, fr et fr_FR :

configuration de localepurge
Configuration de localepurge.

Quant à l’usage on peut invoquer directement localepurge dans un terminal pour constater immédiatement son action, cependant c’est également sur le long terme que son action est efficace puisqu’il entre en action à la moindre installation de paquet afin de ne conserver que les traductions voulues.

Résultat
Résultat

Le seul reproche que l’on peut adresser à localepurge, c’est de ne pas éliminer toutes les traductions, notamment les fichiers d’internationalisation de l’interface graphique.
Voilà la transition toute trouvée pour aborder le thème de mon prochain article, car c’est précisément une situation à laquelle on remédiera en utilisant d’autres outils, graphiques cette fois.

D’ici quelques jours, je vous proposerai donc d’examiner plus avant le fonctionnement de Synaptic, Computer Janitor pour la gestion des paquets, BleachBit et Fslint pour le nettoyage sans oublier, mais cette fois-ci uniquement pour Ubuntu, cet outil fort pratique qu’est Ubuntu Tweak…

Ma première install-party

Avant... Cliché O. Legendre (licence Creative Commons Zéro)
Avant… (photo sous licence Creative Commons Zéro)

J’ai toujours rêvé de participer à une install-party.  Non que le mot revête à mes yeux tellement de charme : je serais preneur d’une traduction française compréhensible, mais je ne suis pas sûr qu’atelier festif d’installation de système libre, ni un scintillant néologisme tel que fêtelier informatique fasse vraiment l’affaire.

Usons donc du mot pour être compris, sachant que c’est la chose qui mérite l’intérêt : il s’agit de permettre, au cours d’un atelier à caractère mi-sérieux mi-ludique (qui est un peu la marque de fabrique du monde Linux), l’installation simultanée d’un système libre sur les ordinateurs de tous les participants, sous la houlette de quelques praticiens chevronnés.
On a déjà développé dans ce blog le grand intérêt des systèmes libres, et de nombreuses bibliothèques publiques proposent, parfois avec l’aide d’associations locales de soutien au logiciel libre, des install-parties pour leurs usagers ; mais les universités n’ont pas tellement emboîté le pas dans ce domaine, ce qui est un peu paradoxal quand on sait qu’elles forment un public abondant, jeune et a priori bien disposé à l’égard d’un système informatique à coût nul. Du reste, bien des étudiants n’ont pas attendu que leurs bibliothécaires s’intéressent au libre, et notamment dans les disciplines scientifiques, ils l’utilisent depuis longtemps déjà.

Soucieux, à titre professionnel de participer à la dissémination des systèmes libres à l’université et chez les étudiants qui n’y connaitraient rien ; tenté, à titre personnel, par l’installation d’un Linux sur ma vieille machine (vous savez, celle qui a 5 ans, qui met 6 minutes à démarrer sous Windows et 7 à ouvrir un document texte) ; bref, bien décidé à tenter l’expérience à la BU, j’ai demandé de l’aide aux collègues et nous avons organisé la chose à titre interne et expérimental, puisque nous avons sur place trois informaticiens tout à fait bien disposés envers le petit manchot.

Ma première Linux party a donc eu lieu le 9 février dernier, organisée par et pour des collègues, à titre d’expérience et de formation. Brève fiche pratique pour ceux qui voudraient faire de même, et pour nous-mêmes l’an prochain.

L’organisation générale
– faire un mail à l’ensemble du personnel et recueillir les inscriptions : une dizaine sur l’ensemble du réseau (quelques 120 collègues), ce n’est pas si mal. Nous avions fixé un plafond de 12.
– demander aux participants d’apporter leur machine deux jours avant pour pouvoir se livrer à un diagnostic de leur état : une machine trop ancienne (au-delà de 5 ans) pourrait ne pas bien supporter le passage.
– leur suggérer qu’un apport de type gastronomique était bienvenu (c’est tout de même une party).

La régie

La scène... Cliché O. Legendre (licence Creative Commons Zéro)
La scène…(photo sous licence Creative Commons Zéro)

– réserver une salle à la BU et y acheminer le réseau nécessaire pour une douzaine de postes, mettre un vidéoprojecteur en place pour les démonstrations. La salle de formation classique ne se prête pas bien à cet usage (les tables sont déjà pourvues, donc encombrées, d’ordinateurs…), on a donc dévoyé une salle de réunion.

Embrouillamini de fils...
… et les coulisses. (photo sous licence CC-Zero)

– préparer les machines d’appoint (pour ceux qui n’apportent pas leur machine mais qui veulent juste voir comment ça se passe et manipuler le système) et les PC personnels déposés pour examen.

– choisir le système à installer (Ubuntu 10.04 en l’occurrence, pour ne pas surcharger les machines un peu anciennes que nous allions utiliser) et graver tous les CD nécessaires.
– animer la séance et assister au fur et à mesure ceux dont les machines donnaient des signes de faiblesse ou posaient des problèmes particuliers. Les trois collègues informaticiens disponibles ont largement suffi à la tâche, la procédure étant très bien balisée parce qu’ils sont surcompétents et surmotivés, bref des surhommes quoi.

Bilan au bout de 4 heures
Ubuntu version 10.04 est installé sur les dix machines : 4 PC personnels et 6 fournis par le service. Ces dix postes fonctionnent. Une intervention postérieure (trois minutes) sur les postes a cependant été nécessaire pour modifier les paramètres d’accès internet : ceux qui servaient lors de l’installation à l’intérieur de la BU, ne permettaient pas l’usage d’une connexion filaire extérieure, et le passage en DHCP n’est pas parfaitement géré par l’interface graphique du système.

Ma vieille machine est redevenue utilisable. Elle démarre en moins d’une minute et répond gentiment, et vite, quand je lui demande d’ouvrir un fichier.

Après ! (licence Creative Commons Zéro)
Après ! (photo sous licence Creative Commons Zéro)

Perspectives
– Organiser la même l’an prochain, mais cette fois pour les étudiants.
– Passer en dual-boot (système mixte Linux-Windows) au prochain renouvellement de postes de la bibliothèque numérique, puisque hélas notre SIGB ne tourne pas correctement sous Linux.
– … Et donc, bien sûr, changer de SIGB. Mais c’est un chantier d’une autre ampleur, donc une autre histoire et d’autres billets.

Adobe Digital Editions sous GNU/Linux, c’est possible !

A l’heure où le nombre de publications au format électronique va croissant, quoi de plus légitime que de vouloir consulter des e-books au moyen de son système d’exploitation favori ?
C’est en effet la question que l’on peut se poser lorsque, comme moi, on utilise au quotidien à titre personnel autant que professionnel un système GNU/Linux, en l’occurrence Ubuntu 10.10 « Maverick Meerkat » sur son ordinateur et que l’on se retrouve face à cela…

Installeur d'Adobe Digital Editions
Le message insupportable…

Si vous voulez en faire l’expérience et que vous n’utilisez ni Windows™ ni MacOS™, cela va de soi, rendez vous sur le site d’Adobe Digital Editions®, vous verrez, c’est édifiant !
Dès lors, on peut davantage douter de la bonne volonté que du savoir-faire d’Adobe qui promet une version Linux de son lecteur depuis la version 1.0 sortie en… 2007 ! Et ce d’autant plus que le très officiel Adobe Reader 9.0 est disponible dans les dépôts d’Ubuntu, au même titre que les plugins Flash, Shockwave ou Air…
Cela étant on peut comprendre la réticence d’Adobe à libérer le code source d’une application gérant des DRM vers une communauté globalement hostile à ce principe… et qui trouverai là l’occasion rêvée de contourner la gestion des droits électroniques !

Mais revenons à des considérations plus pratiques, on ne va quand même pas se laisser démonter par un message défaitiste !

A ce stade les solutions envisageables restent d’avoir une machine en dual-boot permettant de choisir un système supporté par Adobe au démarrage ou d’exécuter Windows dans une machine virtuelle. Mais tout cela est long, lourd et peu fonctionnel : peut-on décemment imaginer d’avoir à quitter toutes ses applications et redémarrer sa machine pour lire un e-book ? Quant à utiliser une machine virtuelle sur un netbook ou un ordinateur à la configuration matérielle limitée, je n’ose même pas l’imaginer.

Fort heureusement Wine est là pour nous aider et si ce n’est déjà fait, commençons par l’installer, ce qui avec Debian ou Ubuntu peut se faire en tapant ce qui suit dans un terminal :

$ sudo aptitude install -r wine

N.B. : Wine n’est pas un émulateur, c’est une couche de compatibilité applicative entre  logiciels Windows et système Linux ; Wine est présent dans toutes les distributions Linux récentes et si ce n’est en ligne de commande, il est facile moyennant quelques clics de l’installer avec son gestionnaire de paquets favori…

Le deuxième défi reste de trouver sur le site d’Adobe le fichier exécutable de l’installeur… et ce n’est pas une mince affaire. Car la page qui nous a si mal reçu contient un exécutable en flash permettant de lancer l’installation… pourquoi faire simple ? Mais rien n’est perdu et il suffit de suivre la note technique d’installation. Sur cette page au paragraphe « Manually install Adobe Digital Editions for Windows » figure le lien direct vers l’installeur

Où trouver l'installeur ?
Où trouver l’installeur ?

Une fois téléchargé l’installeur qui se nomme benoitement « setup.exe« , il convient de rendre ce dernier exécutable, soit via ses propriétés dans l’interface graphique ou bien :

$ sudo chmod +x setup.exe

et dans la foulée de lancer l’installation en double-cliquant sur l’icône de « setup.exe » ou encore :

$ wine setup.exe

par suite l’installation se passe comme sous… Windows !

Déroulement de l'installation
Une installation comme sous Windows…

Je passe rapidement sur les différentes étapes de l’installation, identique en tout point à ce qui se fait dans le monde MicroSoft. Il vous sera successivement demandé de choisir un chemin d’installation, d’accepter les termes du contrat de licence… mais après copie des fichiers un dossier « My Digital Editions » ainsi qu’une icône de bureau auront fait leur apparition. Magique, non ?

Voilà, désormais Adobe Digital Editions est installé sur votre ordinateur GNULinux et vous pouvez à loisir consulter l’offre de livres numériques de la BCU… Bonne lecture !