Aller au contenu
Administration Linux medium

Gérer les paquets sous Linux

9 min de lecture

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.

  • 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

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.

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.

GestionnaireDistributionsFormatGuide
APTDebian, Ubuntu et dérivés.debAPT
DNFRHEL, AlmaLinux, Rocky, Fedora.rpmDNF
ZypperopenSUSE, SLES.rpmZypper
PacmanArch Linux et dérivés.pkg.tar.zstPacman
APKAlpine Linux (très présent en conteneur).apkAPK

Les trois opérations de base se ressemblent partout, seule la syntaxe change. Sur un serveur Debian ou Ubuntu :

Fenêtre de terminal
sudo apt update # rafraîchir l'index des dépôts
sudo apt install nginx # installer
sudo apt remove nginx # désinstaller

Sur 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 :

Fenêtre de terminal
sudo dnf install nginx
sudo dnf remove nginx

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

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.

Fenêtre de terminal
nix profile install nixpkgs#htop # installer
nix shell nixpkgs#python312 # tester sans installer
nix profile history # voir les générations

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

ContexteCe que je recommande
Serveur de productionL'outil natif de la distribution, sans exception
Script déployé sur plusieurs distributionsL'outil natif, avec une détection de la famille ; ou Nix si la reproductibilité prime
Poste de travail, outils de développementHomebrew ou Nix, qui n'encombrent pas le système
Besoin de reproductibilité stricteNix, et éventuellement NixOS
ConteneurLe gestionnaire de l'image de base, presque toujours APK ou APT
SymptômeCause probableSolution
Unable to locate package alors que le paquet existeIndex 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'installationMélange de dépôts, ou paquet tiers installé à la mainCorriger les dépendances cassées
Le paquet installé n'est pas à la version attendueLa distribution fige les versions par brancheVérifier la version disponible avec apt policy ou dnf info
Un logiciel installé à la main n'est jamais mis à jourIl est hors du champ du gestionnaireLe repackager, ou l'installer depuis un dépôt
Could not get lockUne autre opération de paquets est en coursAttendre la fin, ou identifier le processus qui tient le verrou
  • 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 update rafraîchit l'index, il ne met rien à jour. C'est apt upgrade qui 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.
  • dnf rafraîchit son index tout seul, contrairement à apt : une différence qui surprend quand on passe d'une famille à l'autre.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn