Sur Linux, presque tout s'installe par des paquets. Un paquet est une archive qui contient un logiciel, ses fichiers de configuration, et la liste de ce dont il a besoin pour fonctionner. Le gestionnaire de paquets est le programme qui récupère ces archives depuis un dépôt, résout les dépendances, et garde la trace de ce qui est installé. Cette page vous donne le modèle mental commun à tous ces outils, puis vous oriente vers le guide de celui que vous utilisez.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Comprendre ce que fait réellement un gestionnaire de paquets, au-delà de la
commande
install - Distinguer paquet, dépôt, dépendance et métadonnées
- Reconnaître les cinq grandes familles et savoir laquelle tourne sur votre serveur
- Choisir entre l'outil natif et un gestionnaire universel selon le contexte
Les trois notions à saisir avant les commandes
Section intitulée « Les trois notions à saisir avant les commandes »Toutes les commandes que vous taperez reposent sur trois notions. Les confondre est la source de la plupart des erreurs de débutant.
Le dépôt est un serveur qui héberge les paquets de votre distribution. Il est
déclaré dans un fichier de configuration (/etc/apt/sources.list côté Debian,
/etc/yum.repos.d/ côté RHEL). Votre machine ne connaît que les logiciels des
dépôts qu'elle a déclarés : c'est pourquoi un paquet peut être « introuvable »
alors qu'il existe.
Les métadonnées sont l'index du dépôt : la liste des paquets, leurs versions
et leurs dépendances. Votre machine en garde une copie locale, et cette copie
vieillit. C'est toute la raison d'être de apt update ou dnf makecache :
rafraîchir l'index avant d'installer. Un apt install qui échoue sur un paquet
qui existe pourtant, c'est presque toujours un index périmé.
La dépendance est le lien entre paquets. Installer un serveur web tire souvent une dizaine de bibliothèques. Le gestionnaire calcule cet arbre pour vous, et c'est précisément là qu'il peut échouer quand deux paquets réclament des versions incompatibles de la même bibliothèque.
Les cinq gestionnaires natifs
Section intitulée « Les cinq gestionnaires natifs »Chaque distribution a son gestionnaire, adapté à son format de paquet et à sa politique de mises à jour. Ils ne sont pas interchangeables. Le tableau ci-dessous vous dit lequel vous concerne, et les guides détaillés prennent le relais.
| Gestionnaire | Distributions | Format | Guide |
|---|---|---|---|
| APT | Debian, Ubuntu et dérivés | .deb | APT |
| DNF | RHEL, AlmaLinux, Rocky, Fedora | .rpm | DNF |
| Zypper | openSUSE, SLES | .rpm | Zypper |
| Pacman | Arch Linux et dérivés | .pkg.tar.zst | Pacman |
| APK | Alpine Linux (très présent en conteneur) | .apk | APK |
Les trois opérations de base se ressemblent partout, seule la syntaxe change. Sur un serveur Debian ou Ubuntu :
sudo apt update # rafraîchir l'index des dépôtssudo apt install nginx # installersudo apt remove nginx # désinstallerSur RHEL, AlmaLinux ou Rocky, dnf fait la même chose, et rafraîchit son index
automatiquement avant chaque opération, ce qui rend le update explicite
inutile :
sudo dnf install nginxsudo dnf remove nginxAttention au faux ami : apt upgrade et dnf upgrade ne font pas la même
chose que apt update. Le premier met à jour les logiciels, le second met à
jour l'index. Beaucoup de débutants lancent apt update en croyant patcher
leur système, et ne patchent rien du tout.
Les gestionnaires universels
Section intitulée « Les gestionnaires universels »Quand on travaille sur plusieurs distributions, jongler entre les syntaxes devient pénible, et les scripts de déploiement se remplissent de conditions. Les gestionnaires universels proposent une couche commune, avec des philosophies très différentes.
Nix est le plus abouti, et le plus exigeant. Chaque paquet est stocké dans
/nix/store/ sous un hash calculé à partir de toutes ses dépendances. Deux
versions d'un même logiciel cohabitent sans conflit, chaque modification crée une
génération à laquelle on peut revenir, et une même configuration produit le
même résultat sur deux machines. Il fonctionne sur n'importe quelle distribution
et sur macOS.
nix profile install nixpkgs#htop # installernix shell nixpkgs#python312 # tester sans installernix profile history # voir les générationsFlatpak et Snap répondent à un autre besoin : distribuer des applications de bureau avec leurs dépendances embarquées et une isolation par bac à sable. Sur un serveur, leur intérêt est marginal. Homebrew, venu de macOS, est très répandu pour installer des outils de développement dans le répertoire de l'utilisateur, sans toucher au système.
Choisir selon le contexte
Section intitulée « Choisir selon le contexte »| Contexte | Ce que je recommande |
|---|---|
| Serveur de production | L'outil natif de la distribution, sans exception |
| Script déployé sur plusieurs distributions | L'outil natif, avec une détection de la famille ; ou Nix si la reproductibilité prime |
| Poste de travail, outils de développement | Homebrew ou Nix, qui n'encombrent pas le système |
| Besoin de reproductibilité stricte | Nix, et éventuellement NixOS |
| Conteneur | Le gestionnaire de l'image de base, presque toujours APK ou APT |
Dépannage
Section intitulée « Dépannage »| Symptôme | Cause probable | Solution |
|---|---|---|
Unable to locate package alors que le paquet existe | Index local périmé, ou dépôt non déclaré | sudo apt update, puis vérifier les dépôts déclarés |
| Des dépendances non satisfaites bloquent l'installation | Mélange de dépôts, ou paquet tiers installé à la main | Corriger les dépendances cassées |
| Le paquet installé n'est pas à la version attendue | La distribution fige les versions par branche | Vérifier la version disponible avec apt policy ou dnf info |
| Un logiciel installé à la main n'est jamais mis à jour | Il est hors du champ du gestionnaire | Le repackager, ou l'installer depuis un dépôt |
Could not get lock | Une autre opération de paquets est en cours | Attendre la fin, ou identifier le processus qui tient le verrou |
À retenir
Section intitulée « À retenir »- Un gestionnaire de paquets fait trois choses : parler à un dépôt, résoudre les dépendances, et garder la trace de ce qui est installé.
apt updaterafraîchit l'index, il ne met rien à jour. C'estapt upgradequi applique les correctifs. La confusion est fréquente et lourde de conséquences en sécurité.- Cinq familles couvrent l'essentiel : APT, DNF, Zypper, Pacman, APK. Les opérations sont les mêmes, seule la syntaxe change.
- Un logiciel installé hors des dépôts sort du radar : pas de mise à jour, pas de correctif de sécurité.
- En production, l'outil natif. Les gestionnaires universels servent le poste de travail, les tests et la reproductibilité, pas le serveur.
dnfrafraîchit son index tout seul, contrairement àapt: une différence qui surprend quand on passe d'une famille à l'autre.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Corriger les dépendances cassées : diagnostiquer et réparer un état de paquets incohérent.
- Appliquer les mises à jour de sécurité : mises à jour ciblées,
unattended-upgradesetdnf-automatic. - Créer ses propres paquets avec fpm : empaqueter un binaire ou un script en
.deb,.rpmet.apk. - Découvrir Nix : le gestionnaire reproductible, du store aux générations.