L.10 · Le système au quotidien
Paquets et dépôts
Leçon théorique · questionnaire de validation · gratuit, dans le navigateur
On n'installe pas un logiciel sur un serveur en téléchargeant un fichier sur un site : on passe par le gestionnaire de paquets de la distribution. Il récupère le logiciel dans des dépôts signés, installe ses dépendances, et le met à jour avec le reste du système. C'est aussi ce qui se passe dans chaque Dockerfile (RUN apt-get install …). Cette leçon est théorique : votre machine de lab n'a pas de droits d'administration.
Ce que vous saurez à la fin : installer, mettre à jour et supprimer des paquets avec
apt(Debian, Ubuntu) etdnf(Red Hat, Fedora, Rocky), comprendre le rôle des dépôts et de leurs signatures, et appliquer les bonnes pratiques dans une image de conteneur.
1. Deux familles
| Debian, Ubuntu | Red Hat, Rocky, Alma, Fedora | |
|---|---|---|
| Format de paquet | .deb |
.rpm |
| Outil bas niveau | dpkg |
rpm |
| Gestionnaire (dépendances, dépôts) | apt |
dnf (ex-yum) |
2. apt au quotidien
sudo apt update # met à jour la LISTE des paquets disponibles (pas les paquets)
sudo apt upgrade # met à jour les paquets installés
sudo apt install nginx # installe, avec ses dépendances
sudo apt remove nginx # désinstalle (garde la configuration)
sudo apt purge nginx # désinstalle et supprime la configuration
apt search serveur web # cherche
apt show nginx # décrit (version, dépendances, taille)
dpkg -l | grep nginx # les paquets installés
dpkg -L nginx # les fichiers installés par un paquet
dpkg -S /usr/sbin/nginx # à quel paquet appartient ce fichier ?
Piège classique : apt install après une longue période sans apt update échoue (« 404 Not Found ») : la liste locale pointe vers des versions qui n'existent plus.
3. dnf au quotidien
sudo dnf install nginx
sudo dnf upgrade
sudo dnf remove nginx
dnf search nginx ; dnf info nginx
rpm -qa | grep nginx # installés
rpm -qf /usr/sbin/nginx # à quel paquet appartient ce fichier ?
4. Les dépôts et leurs signatures
Les dépôts sont listés dans /etc/apt/sources.list.d/ (Debian, Ubuntu) ou /etc/yum.repos.d/ (Red Hat). Chaque dépôt est signé par une clé : le gestionnaire refuse un paquet dont la signature ne correspond pas. Ajouter un dépôt tiers (celui de Kubernetes, de Docker…), c'est donc ajouter sa clé et son adresse : on fait confiance à l'éditeur pour tout ce qu'il publiera. À ne faire que pour des sources reconnues.
5. Dans un Dockerfile
FROM ubuntu:24.04
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates \
&& rm -rf /var/lib/apt/lists/*
updateetinstalldans la même instructionRUN: sinon le cache des couches peut réutiliser une vieille liste de paquets ;-y: pas de question interactive pendant la construction ;--no-install-recommends: seulement le nécessaire, une image plus petite et moins de vulnérabilités ;rm -rf /var/lib/apt/lists/*: ne pas garder la liste téléchargée dans l'image ;- dans un script, préférez
apt-getàapt, dont l'affichage n'est pas garanti stable.
6. Les autres formats
snap et flatpak empaquettent une application avec ses dépendances, surtout côté poste de travail. pip, npm ou go install gèrent les bibliothèques d'un langage, hors du gestionnaire du système. Sur un serveur, la règle reste : le gestionnaire de la distribution d'abord, puis les conteneurs pour isoler ce qui n'y est pas.
Validez la leçon avec le questionnaire.