Sur Debian, Ubuntu et leurs dérivées, APT est l'outil qui installe, met à jour et supprime les logiciels, en gérant automatiquement les dépendances. Ce guide couvre les commandes du quotidien, le fonctionnement des dépôts (avec le nouveau format deb822), l'ajout sécurisé d'un dépôt tiers via une clé GPG, et le dépannage des erreurs fréquentes. Il s'adresse aux administrateurs débutants à intermédiaires sur Debian/Ubuntu. Pour les autres familles, voyez dnf (Red Hat, Fedora), Pacman (Arch) ou APK (Alpine).
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Utiliser les commandes APT essentielles (installer, mettre à jour, supprimer)
- Comprendre les dépôts et le format moderne
deb822 - Ajouter un dépôt tiers avec sa clé GPG, sans
apt-key - Verrouiller une version et gérer les priorités
- Dépanner les erreurs APT courantes
Prérequis
Section intitulée « Prérequis »- Une machine Debian ou Ubuntu (les exemples utilisent Debian 13 « trixie » et Ubuntu 24.04)
- Un compte avec les droits
sudo - Quelques bases de ligne de commande Linux
apt ou apt-get : lequel utiliser
Section intitulée « apt ou apt-get : lequel utiliser »Deux familles de commandes coexistent et prêtent à confusion. apt est l'interface moderne et conviviale, pensée pour l'usage interactif : sortie lisible, barre de progression, couleurs depuis APT 3.0 (Debian 13). apt-get et apt-cache sont les commandes historiques, à la sortie stable.
La règle est simple : apt au clavier, apt-get dans les scripts. APT vous le rappelle d'ailleurs lui-même si vous scriptez apt :
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.Autrement dit, l'affichage d'apt peut changer d'une version à l'autre : un script qui parse sa sortie cassera. Dans un playbook ou un Dockerfile, préférez apt-get install -y.
Les commandes essentielles d'APT
Section intitulée « Les commandes essentielles d'APT »Voici les commandes que vous utiliserez tous les jours. Chacune agit sur le cache local des métadonnées ou sur les paquets installés.
-
Mettre à jour la liste des paquets :
Fenêtre de terminal sudo apt updateCette commande interroge les dépôts et télécharge les métadonnées des versions disponibles, sans rien installer. C'est le préalable à toute installation. Important :
apt updatene met pas à jour les logiciels, seulement le cache local. -
Mettre à jour les paquets installés :
Fenêtre de terminal sudo apt upgradeMet à jour les paquets installés vers leur dernière version, sans en supprimer ni en ajouter de nouveaux.
-
Mettre à jour, y compris les changements de dépendances :
Fenêtre de terminal sudo apt full-upgradePlus complète qu'
upgrade, elle accepte de supprimer ou ajouter des paquets pour résoudre les dépendances. Utile lors d'une montée de version, à lire attentivement avant de valider. -
Installer un paquet (et ses dépendances automatiquement) :
Fenêtre de terminal sudo apt install nginxPour forcer une version précise :
Fenêtre de terminal sudo apt install nginx=1.26.0-1 -
Supprimer un paquet, en gardant ou non sa configuration :
Fenêtre de terminal sudo apt remove nginx # garde les fichiers de /etcsudo apt purge nginx # supprime aussi la configuration -
Retirer les dépendances devenues inutiles :
Fenêtre de terminal sudo apt autoremove -
Rechercher et inspecter un paquet :
Fenêtre de terminal apt search <mot_clé> # cherche dans le cache localapt show nginx # version, taille, dépendances, description -
Nettoyer les archives téléchargées :
Fenêtre de terminal sudo apt clean # supprime tout /var/cache/apt/archives/sudo apt autoclean # supprime seulement les .deb obsolètes
Comment APT trouve les paquets : les dépôts
Section intitulée « Comment APT trouve les paquets : les dépôts »APT télécharge les paquets depuis des dépôts déclarés dans des fichiers de configuration. Deux formats coexistent aujourd'hui.
Le format moderne deb822 (.sources)
Section intitulée « Le format moderne deb822 (.sources) »Depuis Debian 12 et Ubuntu 24.04, le format par défaut est deb822 : des fichiers .sources dans /etc/apt/sources.list.d/, plus lisibles et plus faciles à automatiser. Sur Debian 13, le dépôt principal vit dans /etc/apt/sources.list.d/debian.sources :
Types: debURIs: http://deb.debian.org/debianSuites: trixie trixie-updatesComponents: main contrib non-free-firmwareSigned-By: /usr/share/keyrings/debian-archive-keyring.pgpChaque champ est explicite : Types (deb pour les binaires), URIs (le serveur), Suites (la version, ici trixie), Components (les sections) et surtout Signed-By, qui lie le dépôt à sa clé de signature. C'est ce dernier champ qui sécurise la chaîne.
L'ancien format une ligne (sources.list)
Section intitulée « L'ancien format une ligne (sources.list) »Le format historique, une ligne par dépôt dans /etc/apt/sources.list, reste accepté :
deb http://deb.debian.org/debian bookworm main contrib non-free-firmwareOn le croise encore partout, mais il est progressivement remplacé par deb822. Pour un nouveau dépôt, préférez le format .sources.
Précision utile, parce que beaucoup d'articles l'exagèrent : le format une ligne est déprécié, pas supprimé, et la page de manuel de Debian 13 annonce un retrait pas avant 2029. Rien ne presse donc pour convertir un serveur existant. Quand vous déciderez de le faire, APT 3.0 fournit la commande apt modernize-sources, qui convertit les fichiers et sauvegarde les originaux. Elle est détaillée, avec ses limites, dans le guide Debian 13 « Trixie ».
Les sections de dépôt
Section intitulée « Les sections de dépôt »Que ce soit en une ligne ou en deb822, les composants classent les logiciels par licence et par rôle :
| Composant | Contenu |
|---|---|
| main | logiciels libres officiellement supportés |
| contrib | logiciels libres dépendant d'éléments non libres |
| non-free / non-free-firmware | logiciels ou firmwares non entièrement libres |
| security | mises à jour de sécurité |
| backports | versions récentes rétroportées vers la stable |
Après toute modification des sources, rechargez l'index :
sudo apt updateAjouter un dépôt tiers en toute sécurité
Section intitulée « Ajouter un dépôt tiers en toute sécurité »Installer un logiciel absent des dépôts officiels (Docker, Node.js, etc.) demande d'ajouter un dépôt tiers. La règle d'or : toujours vérifier la signature des paquets avec la clé GPG de l'éditeur.
La méthode correcte tient en deux temps. D'abord, télécharger la clé de l'éditeur dans un keyring dédié :
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key \ | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpggpg --dearmor convertit la clé au format binaire attendu. Ensuite, déclarer le dépôt en deb822 en pointant Signed-By sur ce keyring :
Types: debURIs: https://deb.nodesource.com/node_22.xSuites: nodistroComponents: mainSigned-By: /usr/share/keyrings/nodesource.gpgUn sudo apt update valide la configuration : si la clé correspond, les paquets du dépôt deviennent disponibles ; sinon, APT refuse le dépôt plutôt que d'installer un paquet non vérifié.
apt-add-repository et les PPA (Ubuntu)
Section intitulée « apt-add-repository et les PPA (Ubuntu) »Sur Ubuntu et ses dérivées, la commande apt-add-repository (paquet software-properties-common) automatise l'ajout d'un dépôt, notamment les PPA hébergés sur Launchpad :
sudo apt-add-repository ppa:graphics-drivers/ppasudo apt updatePour retirer un dépôt ou un PPA, ajoutez --remove. Les PPA n'existent pas sur Debian standard ; n'ajoutez que des PPA d'éditeurs de confiance, car ils ont le même niveau d'accès que les dépôts officiels.
Maîtriser les versions
Section intitulée « Maîtriser les versions »APT permet de figer une version ou d'arbitrer entre plusieurs sources, ce qui est précieux sur un serveur de production.
Voir quelle version sera installée avec apt policy
Section intitulée « Voir quelle version sera installée avec apt policy »apt policy bashbash: Installed: 5.2.37-2+b9 Candidate: 5.2.37-2+b9 Version table: *** 5.2.37-2+b9 500 500 http://deb.debian.org/debian trixie/main amd64 Packages 100 /var/lib/dpkg/statusInstalled est la version présente, Candidate celle qui s'installerait, et la table liste les versions disponibles avec leur priorité et leur origine. Indispensable pour comprendre pourquoi APT choisit telle version.
Forcer une priorité avec le pinning
Section intitulée « Forcer une priorité avec le pinning »Dans /etc/apt/preferences.d/, un fichier de préférences impose une priorité à une source. Exemple pour privilégier Node.js depuis le dépôt NodeSource :
Package: nodejsPin: origin deb.nodesource.comPin-Priority: 600Une Pin-Priority supérieure à 500 rend la source prioritaire ; 1001 force l'installation même en cas de retour à une version antérieure. À manier avec prudence : un pin mal réglé peut bloquer des mises à jour de sécurité.
Verrouiller un paquet avec apt-mark
Section intitulée « Verrouiller un paquet avec apt-mark »Pour empêcher la mise à jour d'un paquet (par exemple un noyau ou une base de données validée) :
sudo apt-mark hold postgresql-16 # verrouilleapt-mark showhold # liste les paquets verrouilléssudo apt-mark unhold postgresql-16 # déverrouilleSécurité et bonnes pratiques
Section intitulée « Sécurité et bonnes pratiques »La gestion des paquets est un point sensible de la sécurité d'un serveur. Quelques règles limitent les risques.
-
Appliquer les mises à jour régulièrement. Un
sudo apt update && sudo apt upgradefréquent applique les correctifs de sécurité. Sur un serveur exposé, c'est non négociable. -
N'ajouter que des dépôts de confiance. Chaque dépôt tiers peut installer du code avec les droits root. Vérifiez l'éditeur et la clé GPG, et limitez le nombre de sources externes.
-
Automatiser les correctifs de sécurité avec le paquet
unattended-upgrades, qui applique seul les mises à jour critiques :Fenêtre de terminal sudo apt install unattended-upgradessudo dpkg-reconfigure --priority=low unattended-upgrades -
Versionner
/etc/apt/. Avant une grosse opération, sauvegardez votre configuration de dépôts. L'outiletckeeperversionne automatiquement/etcdans un dépôt Git, ce qui permet de revenir en arrière après une modification hasardeuse.
Dépannage
Section intitulée « Dépannage »Même bien utilisé, APT peut se bloquer. Voici les erreurs les plus fréquentes et leur correction.
| Symptôme | Cause probable | Solution |
|---|---|---|
dpkg was interrupted | Installation interrompue | sudo dpkg --configure -a |
| Dépendances non satisfaites | Paquets cassés | sudo apt --fix-broken install |
| Cache corrompu, erreurs de lecture | Archives endommagées | sudo apt clean && sudo apt update |
NO_PUBKEY à l'update | Clé GPG du dépôt absente | Réinstaller la clé en keyring Signed-By |
404 Not Found | URL ou suite invalide dans les sources | Corriger le .sources ou le sources.list |
| Paquet impossible à retirer | Paquet en état instable | sudo dpkg --remove --force-remove-reinstreq <paquet> |
Pour comprendre l'origine d'un incident, les journaux APT retracent chaque opération :
cat /var/log/apt/history.log # paquets installés, mis à jour, suppriméscat /var/log/apt/term.log # sortie détaillée des opérationsMettre en pratique
Section intitulée « Mettre en pratique »Mettez ces gestes en situation sur une VM jetable : installer un paquet avec apt, le figer avec un hold pour qu'une mise à jour l'ignore, et identifier quel paquet possède un fichier avec dpkg.
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »aptpour le clavier,apt-get/apt-cachepour les scripts (interface stable).apt updaterafraîchit le cache ;apt upgrademet à jour les paquets installés.- Les dépôts se déclarent désormais en
deb822(.sources), avec un champSigned-By. apt-keyest supprimé : une clé GPG va dans un keyring dédié, référencé parSigned-By.apt policymontre quelle version s'installera ;apt-mark holdverrouille un paquet.- Un
NO_PUBKEYse règle en réinstallant la clé, jamais avecapt-key.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Versionner /etc avec etckeeper : Tracer les changements de configuration, dont les dépôts.
- APK : les paquets sur Alpine : Le gestionnaire léger des conteneurs.