Aller au contenu

Paramètres des cookies

Choisissez, par catégorie, les cookies que vous autorisez. Vous pouvez modifier votre choix à tout moment via Paramètres des cookies, en bas de chaque page. Politique de confidentialité

Nécessaires

Toujours activés

Indispensables pour vous connecter, conserver votre panier et mémoriser vos choix. Ils sont toujours activés.

Quels cookies ?
  • weboke_sessie, weboke_klant, weboke_remember: votre session et le maintien de la connexion
  • weboke_basket: votre panier
  • wkBtwIncl: l'affichage des prix TTC ou HT
  • wok_cookies: votre choix concernant les cookies, 12 mois

Mesure quelle publicité mène à une visite ou à une commande, pour que nous ne payions pas des publicités inefficaces.

Quels cookies ?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), jusqu'à 90 jours
  • OpenAI Ads, publicités dans ChatGPT
  • wok_aff: le partenaire qui vous a orienté vers nous (programme d'affiliation), 60 jours

4,6

Pays et langue

Chaque pays a son propre site, avec les prix et la TVA de ce pays.

Afficher

Module 4 · 4.1

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 :

  1. 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.
  2. 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.
  3. 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 main

Ubuntu 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.gpg

Lisez-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.

CommandeCe qu'elle fait
apt updateRécupère la liste des paquets et versions présents dans les sources. N'installe rien.
apt upgradeMet à 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-upgradeLa 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 upgrade

apt 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 besoin

La 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 Packages

apt-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 update récupère seulement la liste ; apt upgrade met à jour sans supprimer ; apt full-upgrade peut aussi supprimer.
  • Les mises à jour de sécurité proviennent de la suite dont le nom contient -security ; apt list --upgradable et apt-cache policy montrent d'où vient une version.
  • Un vieux numéro de version avec +deb13u1 ou ubuntu0.x peut 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

1. Vous tapez sudo apt upgrade sur un serveur auquel vous n'avez pas touché depuis une semaine, et apt indique que tout est à jour. Pourtant, vous savez qu'une mise à jour d'OpenSSH est sortie hier. Quelle est l'explication la plus probable ?



2. Quelle est la différence entre apt remove et apt purge ?



3. Dans apt list --upgradable, vous voyez openssh-server/noble-security .... Que signifie la partie noble-security ?



4. Le site d'un programme annonce la version 2.8, alors que Debian fournit la 2.6 avec +deb13u2. Un collègue affirme : « Debian est donc vulnérable à toutes les failles corrigées dans la 2.7 et la 2.8. » Qu'est-ce qui est exact ?



5. Pourquoi une source de paquets supplémentaire doit-elle avoir sa propre clé avec Signed-By ?



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.

Exercice Z4.1: Quelles mises à jour sont des mises à jour de sécurité ?

Fichier pour cet exercice : apt-upgradable.txt





Nous ne conservons pas ce que vous saisissez ni ce que nous trouvons. Votre navigateur mémorise vos réponses et si l'exercice est réussi. Si vous êtes connecté, nous enregistrons uniquement dans Mes formations que l'exercice était (presque) correct ; vous pouvez aussi le supprimer à cet endroit.

Pour aller plus loin

Un instant…

Configurez vos domaines

Pour chaque domaine, réglez les serveurs de noms, l'association à votre hébergement et le futur titulaire.

Chargement de vos domaines…