Module 4 · 4.1
Français
Gestion des paquets avec apt
Module 4: Logiciels et mises à jour · Temps de lecture : 10 minutes
Objectif pédagogique : À l'issue de cette leçon, vous saurez installer, mettre à jour et supprimer des logiciels avec apt, vous verrez d'où provient un paquet et vous reconnaîtrez les mises à jour qui sont des mises à jour de sécurité.
Notions clés : paquet, source de paquets (dépôt), sources.list, fichier .sources (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, source de sécurité, dnf
Pourquoi un gestionnaire de paquets ?
Sous Windows, vous téléchargez un programme d'installation depuis un site web. Sur un serveur Linux, vous ne le faites presque jamais. Les logiciels arrivent sous forme de paquet depuis une source de paquets (dépôt, ou repository) : un serveur de la distribution qui contient des milliers de programmes, tous compilés et testés pour votre version de Debian ou d'Ubuntu. Le programme qui récupère, installe et met à jour ces paquets s'appelle le gestionnaire de paquets. Sur Debian et Ubuntu, il s'agit d'apt (avec dpkg en dessous), sur AlmaLinux et Rocky Linux de dnf.
Cela présente trois grands avantages :
- Une seule commande met tout à jour. Le serveur web, le serveur SSH, les bibliothèques et le noyau proviennent de la même source. Vous n'avez pas besoin de consulter le site de chaque programme pour savoir si une nouvelle version existe.
- L'origine est vérifiée. Chaque source de paquets est signée avec une clé. apt refuse les paquets dont la signature n'est pas valide.
- Les dépendances sont gérées. Si nginx a besoin d'une bibliothèque, apt l'installe automatiquement avec lui, puis la supprime plus tard.
Les sources de paquets : d'où vient le logiciel ?
Les sources utilisées par apt sont indiquées dans /etc/apt/. Pendant longtemps, il s'agissait d'un seul fichier sources.list avec des lignes comme :
deb http://deb.debian.org/debian bookworm mainUbuntu 24.04 et les versions suivantes, les images cloud de Debian et de plus en plus de nouvelles installations utilisent le format plus récent deb822 : des fichiers séparés portant l'extension .sources dans /etc/apt/sources.list.d/. Vous pouvez convertir un ancien sources.list avec sudo apt modernize-sources (apt 3, Debian 13). Par exemple sur Debian 13 :
anna@web1:~$ cat /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: http://deb.debian.org/debian-security
Suites: trixie-security
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpgLisez-le ainsi : la suite est la version (trixie correspond à Debian 13 ; noble à Ubuntu 24.04), le composant est une partie de la source (main chez Debian ; main, universe, restricted et multiverse chez Ubuntu), et Signed-By indique avec quelle clé la source doit être signée. Ce dernier point est important : une clé appartient à une seule source, pas à toutes les sources à la fois. Si vous ajoutez plus tard une source d'un éditeur (Docker, Caddy, PostgreSQL), elle reçoit son propre fichier de clé et sa propre ligne Signed-By (leçon 9.2).
La source dont le nom contient -security est la source de sécurité. C'est de là que proviennent les mises à jour de sécurité, généralement le jour même où une faille est rendue publique. Sur Ubuntu, cette suite s'appelle noble-security (ou le nom de votre version).
Si vous utilisez encore l'ancien sources.list, tout fonctionne normalement. Évitez simplement de déclarer la même source sous les deux formats, sinon apt se plaint de lignes en double.
update, upgrade et full-upgrade
La différence entre ces trois notions est le premier piège pour les débutants.
| Commande | Ce qu'elle fait |
|---|---|
apt update | Récupère la liste des paquets et versions présents dans les sources. N'installe rien. |
apt upgrade | Met à jour les paquets installés vers la version la plus récente de cette liste. Ne supprime jamais rien. Une mise à jour qui obligerait à supprimer un autre paquet est ignorée. |
apt full-upgrade | La même chose, mais peut aussi supprimer des paquets ou en installer de nouveaux si nécessaire. Nécessaire lors d'une mise à niveau de version (leçon 4.3) et parfois pour un nouveau noyau. |
Donc toujours d'abord update, puis upgrade :
anna@web1:~$ sudo apt update
Hit:1 http://deb.debian.org/debian trixie InRelease
Get:2 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
...
3 packages can be upgraded. Run 'apt list --upgradable' to see them.
anna@web1:~$ apt list --upgradable
Listing... Done
libssl3t64/trixie-security 3.5.1-1+deb13u1 amd64 [upgradable from: 3.5.1-1]
openssh-server/trixie-security 1:10.0p1-7+deb13u1 amd64 [upgradable from: 1:10.0p1-7]
tzdata/trixie-updates 2026b-0+deb13u1 all [upgradable from: 2026a-0+deb13u1](Les numéros de version ci-dessus sont un exemple.) Après le nom figure la suite d'où provient la nouvelle version. Tout ce qui porte -security est une mise à jour de sécurité : vous voulez l'installer au plus vite. -updates correspond à d'autres mises à jour stables, comme de nouvelles données de fuseaux horaires.
Ensuite :
anna@web1:~$ sudo apt upgradeapt affiche ce qui va changer et demande une confirmation. Lisez cette liste. Si vous voyez « The following packages will be REMOVED » (les paquets suivants seront supprimés), il se passe quelque chose d'inhabituel et vous voulez d'abord savoir pourquoi.
Installer, supprimer et faire le ménage
anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx # programme supprimé, la configuration dans /etc est conservée
anna@web1:~$ sudo apt purge nginx # programme et configuration supprimés
anna@web1:~$ sudo apt autoremove # nettoyer ce dont plus rien n'a besoinLa différence entre remove et purge est pratique : si vous voulez retirer un logiciel temporairement et le réinstaller plus tard avec les mêmes réglages, utilisez remove. Si vous voulez vraiment repartir de zéro, purge.
Rechercher et obtenir plus d'informations :
anna@web1:~$ apt search fail2ban
anna@web1:~$ apt show fail2ban
anna@web1:~$ apt-cache policy openssh-server
openssh-server:
Installed: 1:10.0p1-7
Candidate: 1:10.0p1-7+deb13u1
Version table:
1:10.0p1-7+deb13u1 500
500 http://deb.debian.org/debian-security trixie-security/main amd64 Packages
*** 1:10.0p1-7 500
500 http://deb.debian.org/debian trixie/main amd64 Packagesapt-cache policy est la commande à utiliser pour savoir d'où vient un paquet et quelle version apt choisira. Le *** se trouve à côté de la version installée, Candidate est ce qu'une mise à niveau installerait.
Versions de Debian et version d'un programme
Une plainte fréquente : « Debian contient une vieille version de nginx. » C'est exact, et c'est voulu. Debian et Ubuntu figent les versions à la sortie d'une release et n'ajoutent ensuite que des correctifs de sécurité et des réparations importantes, sans nouvelles fonctionnalités. C'est pourquoi un paquet avec un « vieux » numéro de version peut tout de même contenir tous les correctifs de sécurité récents : ils ont été rétroportés (backport) dans l'ancienne version. Vous le reconnaissez au suffixe, comme +deb13u1 ou ubuntu0.1.
Ne comparez donc jamais uniquement le numéro de version avec le site de l'éditeur pour juger si vous êtes vulnérable. Consultez les avis de sécurité de votre distribution : le Debian Security Tracker (security-tracker.debian.org) et les Ubuntu Security Notices (ubuntu.com/security/notices) indiquent, faille par faille, si votre version est corrigée.
Quelques règles pour un serveur serein
- N'installez que ce dont vous avez besoin. Chaque paquet est du code qui doit être mis à jour, et parfois un service à l'écoute (leçon 5.1).
- Préférez la distribution à un site web. Un programme que vous compilez vous-même ou téléchargez sous forme de fichier isolé n'est pas mis à jour par
apt upgrade. Vous devez alors suivre vous-même les avis de sécurité. - Une source supplémentaire uniquement de l'éditeur lui-même, avec sa propre clé et
Signed-By. N'ajoutez jamais une clé « pour tout » et jamais une source d'un site inconnu (leçon 4.3). - Lisez ce que demande apt. Lors d'une mise à niveau, apt peut vous demander si vous voulez remplacer un fichier de configuration modifié par la nouvelle version de l'éditeur. Si vous ne savez plus ce que vous y avez changé, choisissez « keep the local version » (conserver la version locale, le choix par défaut) et examinez plus tard la différence avec
diff: la nouvelle version est placée à côté sous le nom.dpkg-dist.
Sur AlmaLinux et Rocky Linux
Le gestionnaire de paquets s'y appelle dnf et les paquets sont des .rpm. Les commandes ressemblent à celles d'apt : dnf check-update (la liste), dnf upgrade (mise à jour, update et upgrade en une seule fois), dnf install, dnf remove, dnf info. Les sources se trouvent dans /etc/yum.repos.d/*.repo. Beaucoup de logiciels supplémentaires (comme fail2ban) proviennent de la source séparée EPEL, que vous activez d'abord avec dnf install epel-release. Pour n'afficher que les mises à jour de sécurité, utilisez dnf updateinfo list --security.
En pratique : l'écran du VPS
Chez WebOké, comme chez la plupart des autres fournisseurs, l'installation de votre VPS configure déjà correctement les sources standard de la distribution. En général, vous n'avez rien à y changer. Mettez le serveur à jour dès la première connexion avec apt update et apt upgrade (leçon 1.2), et créez un snapshot dans le panneau de votre fournisseur avant toute modification importante.
Résumé
- Sur Debian et Ubuntu, les logiciels proviennent de sources de paquets signées ; apt récupère, installe, met à jour et fait le ménage.
apt updaterécupère seulement la liste ;apt upgrademet à jour sans supprimer ;apt full-upgradepeut aussi supprimer.- Les mises à jour de sécurité proviennent de la suite dont le nom contient
-security;apt list --upgradableetapt-cache policymontrent d'où vient une version. - Un vieux numéro de version avec
+deb13u1ouubuntu0.xpeut contenir tous les correctifs (backport) : consultez les avis de sécurité de votre distribution. - Une source supplémentaire uniquement de l'éditeur lui-même, avec sa propre clé dans
Signed-By.
Quiz
Exercice
Exercice Z4.1: Quelles mises à jour sont des mises à jour de sécurité ? Le fichier d'exemple apt-upgradable.txt contient la sortie de apt list --upgradable et apt-cache policy d'un serveur Debian 13. Répondez aux questions suivantes : quels paquets proviennent de la source de sécurité, quel paquet provient de la source d'un éditeur plutôt que de Debian, quelle version de openssh-server est actuellement installée, et quel paquet est une simple mise à jour stable sans raison de sécurité ? Le programme compare vos réponses avec la clé de correction fixe. Si vous avez déjà votre propre serveur, lancez les mêmes commandes et regardez ce que vous obtenez.
Pour aller plus loin
- Sécuriser votre VPS : les cinq premières minutes
- Bien démarrer avec votre VPS
- Cahier de l'administrateur Debian, chapitre 6 (apt) : https://debian-handbook.info/browse/stable/apt.html
- Page de manuel
sources.list(5)(format deb822) : https://manpages.debian.org/trixie/apt/sources.list.5.en.html - Debian Security Tracker : https://security-tracker.debian.org/tracker/
