Chapitre 9. Garder son système Debian à jour

Table des matières

9.1. Comment puis-je garder mon système à jour ?
9.1.1. aptitude
9.1.2. apt-get et apt-cdrom
9.1.3. mirror
9.2. Faut-il être dans le mode mono-utilisateur pour mettre à jour un paquet ?
9.3. Faut-il garder toutes les archives .deb sur le disque ?
9.4. Comment puis-je garder un journal des paquets que j'ai ajoutés au système ? J'aimerais savoir quand et quelles mises à jour et suppressions de paquets ont eu lieu !
9.5. Puis-je mettre à jour automatiquement le système ?
9.6. J'ai plusieurs machines ; comment puis-je télécharger les mises à jour seulement une fois ?

L'un des buts de Debian est de fournir une méthode de mise à jour cohérente et un processus de mise à niveau sûr. Nous faisons toujours de notre mieux pour que la mise à niveau vers de nouvelles versions soit une procédure fluide. S'il y a des informations importantes à ajouter au processus de mise à niveau, les paquets en avertiront l'utilisateur et fourniront souvent une solution pour résoudre les problèmes éventuels.

Vous devriez aussi lire les notes de publication, qui décrivent en détail les spécificités de la mise à niveau, disponibles en ligne à l'adresse https://www.debian.org/releases/stable/releasenotes et présentes sur tous les CD, DVD et Blu-ray de Debian.

9.1. Comment puis-je garder mon système à jour ?

On pourrait simplement ouvrir une session FTP anonyme vers une archive Debian, parcourir les répertoires jusqu'à ce qu'on trouve le fichier désiré, le récupérer et enfin l'installer en utilisant dpkg. Notez que dpkg installera les fichiers mis à jour à leur place, même sur un système en marche. Parfois, la mise à jour d'un paquet aura besoin de l'installation d'une nouvelle version d'un autre paquet, auquel cas l'installation échouera si l'autre paquet n'est pas installé.

Beaucoup de gens trouvent cette approche trop gourmande en temps, car Debian évolue très rapidement ; typiquement, une douzaine ou plus de nouveaux paquets sont téléchargés chaque semaine. Ce nombre est encore plus grand avant la sortie d'une version majeure. Pour gérer cette avalanche, beaucoup de gens préfèrent utiliser une méthode automatique. Plusieurs outils de gestion des paquets sont disponibles dans ce but :

9.1.1. aptitude

aptitude est le gestionnaire de paquets recommandé pour les systèmes Debian GNU/Linux, comme décrit dans Section 8.1.3, « aptitude ».

Avant de pouvoir utiliser aptitude pour faire une mise à niveau, vous devrez éditer le fichier /etc/apt/sources.list pour le configurer. Si vous souhaitez mettre à jour votre système vers la dernière version stable de Debian, vous voudrez probablement utiliser une ligne comme celle-là :

deb http://ftp.fr.debian.org/debian/ stable main contrib

Vous pouvez remplacer ftp.us.debian.org (le miroir aux États-Unis) par le nom d'un miroir Debian plus proche de chez vous et plus rapide. Voir la liste des miroirs à l'adresse https://www.debian.org/mirror/list pour plus d'informations.

Ou vous pouvez utiliser le service de redirection httpredir.debian.org qui vise à résoudre les problèmes lié au choix d'un miroir Debian. Il utilise la situation géographique de l'utilisateur et d'autres informations pour choisir le meilleur miroir hébergeant les fichiers. Pour en bénéficier, utilisez un source comme celui-ci :

http://httpredir.debian.org/debian stable main contrib

Vous trouverez plus d'informations en lisant la page de manuel sources.list(5).

Pour mettre à jour votre système en ligne de commande, exécutez

aptitude update

suivi de

aptitude full-upgrade

Répondez à toutes les questions qui vous seront posées et votre système sera mis à jour.

Notez qu'aptitude n'est plus l'outil recommandé pour mettre à niveau d'une version de Debian GNU/Linux à une autre. Utilisez plutôt apt-get. Pour les mises à niveau entre les versions, vous devriez lire les notes de publication. Ce document décrit en détail les étapes recommandées ainsi que les problèmes à connaître avant la mise à niveau.

Vous trouverez plus d'informations en lisant la pages de manuel sources.list(8) et le fichier /usr/share/aptitude/README.

9.1.2. apt-get et apt-cdrom

Une alternative à aptitude est apt-get qui est un outil en ligne de commande basé sur APT (décrit précédemment dans Section 8.1.2, « APT »).

apt-get, l'outil en ligne de commande basé sur APT pour gérer les paquets, fournit un moyen simple et sûr d'installer et de mettre à niveau des paquets.

Pour utiliser apt-get, éditez le fichier /etc/apt/sources.list pour le configurer, tout comme pour Section 9.1.1, « aptitude ».

Exécutez

apt-get update

suivi de

apt-get dist-upgrade

Répondez à toutes les questions qui vous seront posées et votre système sera mis à jour. Voir aussi la page de manuel apt-get(8) ainsi que Section 8.1.2, « APT ».

Si vous souhaitez utiliser les CD, DVD ou BD pour installer des paquets, vous pouvez utiliser le programme apt-cdrom. Pour plus de détails, veuillez vous reporter aux notes de publication, paragraphe « Ajouter des sources APT à partir d'un disque optique ».

Veuillez noter que, quand vous installez un paquet, les archives sont conservées dans un sous-répertoire de /var. Pour ne pas saturer votre partition, vous devriez supprimer les archives en utilisant apt-get clean et apt-get autoclean ou les déplacer à un autre endroit (conseil : utiliser apt-move).

9.1.3. mirror

Ce script Perl et son programme (optionnel) de gestion, nommé mirror-master, peuvent être employés pour rechercher des parties indiquées par l'utilisateur d'une arborescence de répertoire sur un serveur particulier via un FTP anonyme.

Mirror est particulièrement utile pour télécharger un grand nombre de logiciels. Après le premier téléchargement, un fichier nommé .mirrorinfo est conservé sur l'ordinateur local. Les changements du système de fichiers distant sont détectés automatiquement par mirror, qui compare le fichier local avec un fichier semblable sur le système distant et télécharge seulement les fichiers modifiés.

Le programme mirror est généralement utile pour mettre à jour les copies locales des arborescences de répertoire distant. Les fichiers récupérés n'ont pas besoin d'être des fichiers Debian. (Depuis que le programme mirror a été porté en Perl, il peut aussi être exécuté sur des systèmes non-Unix). Bien que le programme mirror fournisse des mécanismes pour exclure des fichiers dont les noms correspondent à des chaînes indiquées par l'utilisateur, ce programme est plus utile quand son objectif est de télécharger des arborescences entières, plutôt que des paquets choisis.

9.2. Faut-il être dans le mode mono-utilisateur pour mettre à jour un paquet ?

Non. Les paquets peuvent être mis à jour en mode multi-utilisateur, même quand le système est en fonctionnement. Debian fournit le programme start-stop-daemon qui permet d'arrêter et de redémarrer les processus en cours d'exécution si cela est nécessaire pendant la mise à niveau du paquet.

9.3. Faut-il garder toutes les archives .deb sur le disque ?

Non. Si vous avez téléchargé les fichiers sur votre disque, alors après avoir installé les paquets vous pouvez les supprimer de votre système, par exemple en exécutant aptitude clean.

9.4. Comment puis-je garder un journal des paquets que j'ai ajoutés au système ? J'aimerais savoir quand et quelles mises à jour et suppressions de paquets ont eu lieu !

Passer l'option --log à dpkg active le journal des mises à jour et suppression de dpkg. Cela enregistre à la fois l'appel de dpkg-invokation (par exemple

2005-12-30 18:10:33 install hello 1.3.18 2.1.1-4

) et les résultats (par exemple

2005-12-30 18:10:35 status installed hello 2.1.1-4

). Si vous aimeriez enregistrer tous vos appels à dpkg (même ceux effectués en utilisant une interface telle qu'aptitude), vous pouvez ajouter

log /var/log/dpkg.log

dans votre /etc/dpkg/dpkg.cfg. Soyez sûr que votre fichier de journal sera recyclé périodiquement. Si vous utilisez logrotate, cela peut être réalisé en créant un fichier /etc/logrotate.d/dpkg qui contient les lignes suivantes

/var/log/dpkg {
  missingok
  notifempty
}

Vous trouverez plus de détails sur la journalisation de dpkg dans la page de manuel de dpkg(1).

aptitude enregistre les installations, les suppressions et les mises à jour de paquets qu'il s'apprête à effectuer dans le fichier /var/log/aptitude. Notez que les résultats de ces actions ne sont pas enregistrés dans ce fichier !

Une autre façon d'enregistrer vos actions est d'exécuter votre session de gestion de paquets dans le programme script(1).

9.5. Puis-je mettre à jour automatiquement le système ?

Oui. Vous pouvez utiliser cron-apt ; cet outil met à jour le système à intervalle régulier en utilisant un cron. Par défaut, il met juste à jour la liste des paquets et télécharge les nouveaux paquets mais ne les installe pas.

Note : La mise à jour automatique des paquets n'est PAS recommandée sur les systèmes testing ou unstable, car cela peut apporter un comportement inattendu ou supprimer des paquets sans le notifier.

9.6. J'ai plusieurs machines ; comment puis-je télécharger les mises à jour seulement une fois ?

Si vous avez plus d'une machine Debian dans votre réseau, il est utile d'utiliser apt-cacher pour garder tous vos systèmes Debian à jour.

apt-cacher réduit les besoins de bande passante des miroirs Debian en diminuant la fréquence de mises à jour des fichiers Packages, Releases et Sources, et en récupérant une seule fois chaque fichier, indépendamment de la requête actuelle, à partir du proxy. apt-cacher construit automatiquement un miroir HTTP Debian basé sur les requêtes qui passent par le proxy.

Évidemment, vous pouvez profiter des mêmes améliorations avec un proxy standard pour lequel tous vos systèmes sont configurés.