openSYD

Autour de la distribution Ubuntu et du Logiciel Libre

Maintenir sa Ubuntu propre et à jour

Même si par définition un système Linux fait preuve d’une bonne rigueur dans la gestion de ses paquets, ses fichiers et ses dépendances, il peut parfois être utile d’aller plus loin pour gagner de quelques Ko à plusieurs centaines de Mega-Octets.

Toutes les commandes qui vont suivre ne sont pas d’un niveau débutant mais rassurez-vous, les plus simples font gagner le plus de place ;)


Voilà donc une collection de commandes, outils et recommandations pour tenir sa Ubuntu tirée à 4 épingles.

1. Tenir propre…

Nettoyer le référentiel local (débutant)

Rappel : lorsque vous installez un paquet, APT récupère les fichiers nécessaires depuis les hôtes listés dans /etc/apt/sources.list, les stocke dans un référentiel local (/var/cache/apt/archives/), et ensuite procède à l’installation.

#apt-get clean
Après l’installation du paquet, ce dernier n’est pas supprimé afin de ne pas devoir être à nouveau téléchargé s’il doit être reconfiguré. La commande clean supprime donc les paquets .deb qui ont été récupérés, excepté les fichiers verrou ‘lock’ dans /var/cache/apt/archives/ et /var/cache/apt/archives/partial/. Par contre, si vous avez besoin de réinstaller un paquet, APT devra le télécharger à nouveau.

#apt-get autoclean
Tout comme clean, autoclean nettoie le référentiel local des paquets récupérés. La différence est qu’il supprime uniquement les paquets qui ne peuvent plus être téléchargés et qui sont grandement inutiles. Autrement dit, si 2 versions différentes d’un même paquet sont présentes dans le référentiel, seule la plus ancienne sera supprimée.

Supprimer les fichiers de configuration à la désinstallation d’un paquet (débutant)

#apt-get remove –purge nom_paquet
Cette commande entraîne la suppression du paquet, mais aussi de ses fichiers de configuration. Sans l’option –purge, ces fichiers sont conservés sur le système. Ceci permet de réinstaller plus rapidement le package.

Supprimer les paquets orphelins (avancé)

#deborphan
La commande deborphan (qui dépend du programme du même nom, à installer) trouve les paquets orphelins sur votre système, c’est à dire ceux dont aucun autre paquet ne dépend. Par défaut, la recherche est effectuée dans les sections «libs» et «oldlibs». Pour supprimer l’ensemble des paquets listés :

# apt-get remove --purge `deborphan`

Ou encore lancer sudo orphaner pour choisir individuellement les paquets à supprimer
L’option -a permet de vérifier l’ensemble des paquets, sans se limiter à ces sections. Pour supprimer TOUS les paquets orphelins :

# apt-get remove --purge `deborphan --guess-all`

Nota : le paquet gtkorphan est un front-end développé en Perl/Gtk2 qui s’appuie sur deborphan

Supprimer les locales inutiles (intermédiaire)

#localepurge
Chaque paquet s’installe avec ses traductions dans plusieurs langues s’il a été traduit ; les fichiers de traduction font partie intégrante du paquet. Ces traductions prennent de la place sur le disque dur, et ne nous servent jamais. Localepurge nettoie les « locales » (traductions) inutilisées. Comme le suggère la description du paquet, il est recommandé de savoir ce que l’on fait puisque ce programme interfère avec le système de gestion de paquets.

Enlever les anciens kernels (avancé)

Rappel : les linux-kernel-headers contiennent les API (fichiers décrivant la syntaxe à respecter pour être compris par le noyau quand on lui demande quelque-chose) offertes par le noyau Linux. Ces fichiers sont nécessaires pour compiler des programmes utilisant ces API.

Les paquets linux-headers, légèrement différents, servent eux à la compilation de modules (drivers) pour le noyau

Le noyau de la distribution fait parti des mises à jour régulières. Les nouveaux kernels remplacent ceux en place mais ne les suppriment pas. Il en est de même si vous installez un kernel optimisé en lieu et place de celui de base pour plateforme i386.
Le plus simple est d’utiliser le gestionnaire de paquets Synaptic et de rechercher tous les paquets dont le nom contient linux-image puis linux-header. Si plusieurs kernel sont installés pour une même architecture (386, 686, K7…), vous pouvez ne conserver que le plus récent, c’est à dire celui dont le numéro est le plus élevé. Attention tout de même de bien savoir ce que vous faites !

Supprimer des fichiers suivant leur ancienneté (débutant et intermédiaire)

#tmpreaper
La paquet tmpreaper permet de rechercher récursivement dans un répertoire donné les fichiers qui n’ont pas été accédés depuis un certain laps de temps. Il est possible d’exécuter cette tâche régulièrement en paramétrant son fichier de configuration /etc/tmpreaper.conf

Pour installer tmpreaper :

sudo apt-get install tmpreaper

Pour effacer les fichiers de plus de 7 jours dans le répertoire /tmp

tmpreaper 7d /tmp

Pour en savoir plus, un simple man tmpreaper fera l’affaire.

Quelques conseils sur le nettoyage :

  • Exécuter apt-get autoclean (ou apt-get clean si le besoin de place est critique) de temps en temps pour libérer de l’espace disque.
  • Utiliser deborphan avec l’option –guess-all avec prudence ! Cette méthode de suppression peut s’avérer relativement dangereuse dans certains cas de figure (ex. dépendances défectueuses).
  • Conserver le noyau actuel (ca va de soi!) mais aussi l’avant-dernier, il pourrait être utile en cas de problème avec le dernier installé.
  • Rajouter l’option -t (test) à tmpreaper pour qu’il affiche les fichiers susceptibles d’être supprimés

2. Tenir à jour…

La mise à jour des dépots (débutant)

#apt-get update
L’installation, la mise à jour et la suppression des applications s’effectue en ligne avec la commande apt-get. Cette commande interroge les serveurs (ou référentiels) déclarés dans le fichier /etc/apt/sources.list et récupérera sur chacun d’eux les catalogues. Le fichier Packages.gz pour la liste des paquets binaires (mot clef deb) et le fichier Sources.gz pour la liste des paquets source (mot clef deb-src).

Le fichier Packages.gz contient le nom, la version, la taille, une description courte et une longue, les dépendances de chaque paquet (et des informations complémentaires). Toute ces informations sont affichées (et utilisées) par des logiciels d’administration des paquets comme dselect ou aptitude.

Le fichier Sources.gz contient le nom, la version et les dépendances pour la compilation (les paquets nécessaires pour construire le paquet) de chaque paquet (et des informations complémentaires) ; ces informations sont utilisées par apt-get source ou par des outils similaires.

Ainsi, une fois que la commande a correctement récupéré les catalogues des référentiels, elle les analyse de manière à rendre disponibles les informations concernant les nouveaux paquets et les paquets mis à jour.

La mise à jour des paquets (débutant)

#apt-get upgrade
La commande upgrade permet d’installer les versions les plus récentes de tous les paquets présents sur le système en utilisant les informations récupérées dans les catalogues de chaque référentiel.

Les paquets installés dont il existe de nouvelles versions sont récupérés et mis à niveau. En aucun cas des paquets déjà installés ne sont supprimés ; de même, des paquets qui ne sont pas déjà installés ne sont ni récupérés ni installés. Les paquets dont de nouvelles versions ne peuvent pas être installées sans changer le statut d’installation d’un autre paquet sont laissés dans leur version courante. Et bien entendu, on doit d’abord exécuter la commande update pour que apt-get connaisse l’existence de nouvelles versions des paquets.

Quelques conseils sur la mise à jour :

  • Laisser sur ‘Fréquemment’ la fréquence de recherche des mises à jour automatique dans le Gestionnaire de canaux logiciels pour bénéficier des derniers correctifs et améliorations dans les plus brefs délais

Les articles sur le même sujet :


Tags , , , + Dans la catégorie Actu libre

11 commentaires

  1. Il vaudrait mieux attendre quelques jours avant de faire les mises à jour dès leurs sorties… ;-)

  2. Pas forcement si l’on considère que le problème d’affichage qui a affecté un nombre important d’utilisateurs suite à une mise à jour du serveur X est une erreur dont tiendrons compte à l’avenir les développeurs (et ce dont je suis persuadé)

    Car les mises à jour n’intègrent pas que des corrections de bugs (où dans ce cas oui, une périodicité plus large serait plus appropriée) mais aussi des mises à jour de sécurité, où la réactivité est importante.

    Cela dit, je comprend ton point de vue ;)

  3. pour avoir des fichiers dans /tmp vieux de 7 jours c’est que tu rebootes moins de 1 fois par semaine. A mon avis, pour /tmp c’est mieux de faire un reboot, lorsqu’on peut.

  4. Le script a une erreur de frappe :

    rm -Rf /var/tmp/ *

    qui le rend dangereux pour les données. Voir :
    forum.ubuntu-fr.org/viewt…

  5. Je viens de modifier en conséquence le billet :)

  6. Est-ce que la commande
    apt-get remove –purge `deborphan`
    ne supprime pas complètement le paquet deborphan au lieu des paquets inutiles?

  7. Je retire ce que j’ai dit à 22 heures 54. Je n’avai pas remarqué les apostrophes inversées.

  8. Bonjour

    >> #apt-get clean
    >> Après l’installation du paquet, ce dernier n’est pas supprimé afin de ne pas devoir être à
    >> nouveau téléchargé s’il doit être reconfiguré. La commande clean supprime donc les
    >> paquets .deb qui ont été récupérés, excepté les fichiers verrou ‘lock’ dans
    >> /var/cache/apt/archives/ et /var/cache/apt/archives/partial/. Par contre, si vous avez
    >> besoin de réinstaller un paquet, APT devra le télécharger à nouveau.

    Est-il possible à ce moment là de graver le contenu de ces 2 répertoires sur CD/DVD afin de pouvoir cleaner son système et d’avoir un backup des packages au cas où l’on souhaite réinstaller sa ubuntu sur un ordi ne disposant pas de connexion internet ?

    Bien entendu ca ne dispenserait pas d’une mise à jour des paquets plus tard mais je vois là, si toutefois c’est possible une solution palliative aux vieilles distro ubuntu dont les dépots ferment au bout d’un certain moment… et dont malheureusement les machines ne peuvent pas toujours faire tourner la dernière 7.04 ????

    Merci pour vos réponses.
    Bonne journée.

  9. Salut,

    Il est possible de graver les paquets présents dans ces 2 répertoires pour les réinstaller ou les installer sur une autre machine.

    Mais je ne le recommande pas car outre le fait que les versions des paquets seront probablement obsolètes, l’installation devra être faite à l’aide de la commande ‘dpkg’ ou son pendant graphique sous gnome ‘gdebi’ qui ne gèrent pas les dépendances comme le fait APT.

    Mais en pratique et avec de la patience, oui, tu peux tout à fait récupérer et installer un paquet du cache d’APT au risque de devoir installer tous les paquets dépendants avant celui souhaité.

  10. OK merci pour le tuyau. Ceci dit, à prioris, si les packages se stockent ds les dossiers /archives et /archives/partial, les paquets correspondants aux dépendances doivent s’y trouver aussi non ?

    A ce moment là il y a probablement un moyen permettant de regraver une distro en y intégrant les paquets qu’on avait dans nos /archives ?

    C’est juste une supposition, Linux je commence juste mais ca me fait bien planner.

Laisser un commentaire