kubenow
Se connecterCommencer gratuitement

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) et dnf (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/*
  • update et install dans la même instruction RUN : 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.

Contenu aligné sur les programmes publiés par la CNCF (KCNA, CKAD, CKA, CKS), par le Linux Professional Institute (LPIC-1) et par Cisco (CCNA 200-301). KubeNow n'est ni affilié ni approuvé par la CNCF, la Linux Foundation, le LPI ou Cisco ; CKA, CKAD, CKS et KCNA sont des marques de la Linux Foundation, LPIC-1 est une marque du Linux Professional Institute, Cisco et CCNA sont des marques de Cisco Systems.