Maîtriser APT sur Debian et dérivés
Mise à jour :
Sur les systèmes GNU/Linux, la gestion des logiciels passe par ce qu’on appelle un gestionnaire de paquets. Un gestionnaire de paquets sert à installer, mettre à jour, configurer et supprimer des logiciels de manière simple et fiable. Chaque grande famille de distribution utilise son propre outil : RPM pour Red Hat et Fedora, Pacman pour Arch Linux, APK pour Alpine…
Sur Debian et ses nombreuses dérivées comme Ubuntu, Kali Linux
ou Linux Mint, c’est APT (Advanced Package Tool) qui tient ce rôle. Il
repose sur le format de paquet .deb
et propose une interface en ligne de
commande puissante et conviviale pour gérer les applications et leurs
dépendances. Dans ce guide, je vais me concentrer sur l’utilisation d’APT, un
incontournable pour tout administrateur système travaillant avec Debian.
Les commandes essentielles d’APT
Voici les principales commandes d’APT pour gérer les paquets logiciels de manière efficace, avec des explications supplémentaires sur leur usage pratique :
-
Mettre à jour la liste des paquets :
Terminal window apt updateAvant d’installer un paquet ou de mettre à jour le système, il est indispensable d’actualiser la liste des paquets disponibles. Cette commande interroge les dépôts définis dans
/etc/apt/sources.list
et télécharge les informations sur les nouvelles versions de logiciels sans modifier le système. Important :apt update
ne met pas à jour les paquets installés, il met à jour uniquement le cache local des métadonnées. -
Mettre à jour les paquets installés :
Terminal window apt upgradeAprès avoir exécuté
apt update
, cette commande met à jour tous les paquets installés vers leur dernière version disponible, sans retirer ou installer de nouveaux paquets. -
Mettre à jour et gérer les changements complexes :
Terminal window apt full-upgradeCette commande, plus agressive que
upgrade
, installe les nouvelles versions même si cela implique la suppression ou l’ajout de paquets pour résoudre les dépendances. -
Installer un paquet :
Terminal window apt install <nom_du_paquet>Installe un paquet depuis les dépôts. Si le paquet dépend d’autres bibliothèques ou logiciels, APT les installe automatiquement.
-
Installer une version spécifique d’un paquet : Il est possible de forcer l’installation d’une version précise d’un paquet :
Terminal window apt install <nom_du_paquet>=<version>Exemple :
Terminal window apt install nginx=1.18.0-6.1Pour trouver la version exacte d’un paquet, utilisez la commande
apt policy
détaillé ci-dessous. -
Supprimer un paquet (en conservant les fichiers de configuration) :
Terminal window apt remove <nom_du_paquet>Désinstalle un paquet mais laisse ses fichiers de configuration. Cela peut être utile pour conserver certains réglages si le paquet est réinstallé plus tard.
-
Supprimer un paquet et ses fichiers de configuration :
Terminal window apt purge <nom_du_paquet>Désinstalle complètement le paquet ainsi que ses fichiers de configuration stockés dans
/etc
. -
Rechercher un paquet :
Terminal window apt search <mot_clé>Permet de chercher un paquet en utilisant un mot-clé. Cette recherche s’effectue dans la base de données locale qui doit être tenue à jour avec
apt update
. -
Afficher les informations détaillées d’un paquet :
Terminal window apt show <nom_du_paquet>Fournit des détails utiles tels que la version, la taille, les dépendances, l’origine et la description du paquet.
-
Nettoyer le cache local des paquets téléchargés :
Terminal window apt cleanSupprime tous les fichiers
.deb
téléchargés stockés dans/var/cache/apt/archives/
. Cela permet de libérer de l’espace disque sans affecter les logiciels installés. -
Supprimer uniquement les paquets obsolètes du cache :
Terminal window apt autocleanNettoie uniquement les paquets inutilisables qui ne peuvent plus être téléchargés (parce qu’ils ont été remplacés ou supprimés).
Fonctionnement d’APT
Pour fonctionner correctement, APT s’appuie sur des dépôts définis dans des fichiers de configuration. Ces dépôts contiennent les paquets logiciels disponibles pour installation ou mise à jour.
Le fichier principal utilisé est /etc/apt/sources.list
. Il contient la
liste des dépôts que le système va interroger. Chaque ligne décrit un dépôt,
avec la structure suivante :
deb http://deb.debian.org/debian/ bullseye main contrib non-free
- deb : indique qu’il s’agit de paquets binaires.
- URL : adresse du serveur du dépôt.
- Distribution : nom de la version (exemple : bullseye pour Debian 11).
- Sections : catégories de logiciels (main, contrib, non-free).
Des dépôts supplémentaires peuvent être ajoutés dans le répertoire
/etc/apt/sources.list.d/
. Chaque fichier présent dans ce dossier peut
contenir une ou plusieurs entrées de dépôts, ce qui facilite l’organisation.
Types de dépôts courants :
- main : logiciels libres supportés officiellement par Debian.
- contrib : logiciels libres nécessitant des éléments non libres.
- non-free : logiciels dont certaines parties ne respectent pas complètement les critères du logiciel libre.
- security : mises à jour de sécurité.
- backports : versions plus récentes de certains logiciels pour les anciennes distributions stables.
Exemple d’ajout du dépôt de sécurité :
deb http://security.debian.org/debian-security bullseye-security main
Après toute modification des sources, il est nécessaire de mettre à jour l’index des paquets :
apt update
Ajouter des dépôts APT
Avant d’ajouter un dépôt, il est important de vérifier qu’il est fiable et compatible avec la version de la distribution utilisée. Un dépôt mal configuré ou non sécurisé peut compromettre la stabilité ou la sécurité du système.
-
Utiliser un fichier séparé dans
/etc/apt/sources.list.d/
Pour une meilleure organisation, il est recommandé de créer un fichier spécifique :Terminal window sudo nano /etc/apt/sources.list.d/mon_depot.listEt d’y insérer l’URL du dépôt.
-
Ajouter la clé GPG du dépôt : Pour sécuriser les téléchargements et vérifier l’authenticité des paquets, il faut ajouter la clé publique du dépôt :
Terminal window wget -O- http://repository.example.com/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/mon_depot-archive-keyring.gpgIl est aussi possible d’ajouter la clé directement dans
/etc/apt/trusted.gpg.d/
, mais l’utilisation de keyrings séparés est préférable pour des raisons de sécurité. -
Associer le dépôt à son keyring : Lors de l’ajout du dépôt, spécifier le chemin du keyring pour éviter les avertissements de sécurité :
Terminal window deb [signed-by=/usr/share/keyrings/mon_depot-archive-keyring.gpg] http://repository.example.com/debian stable main -
Mettre à jour l’index APT : Après avoir ajouté le dépôt et sa clé, il est nécessaire d’actualiser la liste des paquets disponibles :
Terminal window sudo apt update
Si tout est correctement configuré, les nouveaux paquets du dépôt ajouté seront désormais accessibles via APT.
La commande apt-add-repository
Sur certaines distributions dérivées de Debian comme Ubuntu ou Linux
Mint, il existe une commande spécifique appelée apt-add-repository
pour
faciliter l’ajout de dépôts. Cet outil permet d’ajouter ou de supprimer un dépôt
en une seule commande, sans avoir à éditer manuellement les fichiers de
configuration.
Le paquet qui fournit cette commande est software-properties-common
. Il
doit être installé si la commande n’est pas disponible :
sudo apt install software-properties-common
Ajouter un dépôt avec apt-add-repository
Pour ajouter un nouveau dépôt :
sudo apt-add-repository "deb http://repository.example.com/ubuntu stable main"
Après l’ajout, il est nécessaire de mettre à jour l’index des paquets :
sudo apt update
Ajouter un PPA (Personal Package Archive)
Sur Ubuntu et ses dérivés, apt-add-repository
est souvent utilisé pour ajouter
des PPA hébergés sur Launchpad :
sudo apt-add-repository ppa:nom_du_ppa
Exemple :
sudo apt-add-repository ppa:graphics-drivers/ppasudo apt update
Les PPA sont pratiques pour obtenir des versions plus récentes de logiciels, mais ils ne sont pas disponibles sur Debian standard sans adaptations spécifiques.
Supprimer un dépôt
Pour retirer un dépôt ajouté avec apt-add-repository
:
sudo apt-add-repository --remove "deb http://repository.example.com/ubuntu stable main"
Ou pour retirer un PPA :
sudo apt-add-repository --remove ppa:graphics-drivers/ppa
Après la suppression, il est également recommandé de mettre à jour l’index des paquets :
sudo apt update
Gestion avancée des paquets
APT propose des mécanismes avancés pour contrôler finement le comportement d’installation et de mise à jour des paquets. Cela permet d’imposer certaines versions, d’empêcher la mise à jour automatique de logiciels spécifiques, ou de gérer des priorités entre plusieurs sources.
-
Configurer des préférences de paquets : Dans le répertoire
/etc/apt/preferences.d/
, il est possible de créer des fichiers de préférences pour définir des priorités entre différents dépôts. Cela est particulièrement utile lorsque plusieurs dépôts contiennent le même paquet ou lorsque l’on souhaite forcer l’utilisation d’une version spécifique.Exemple de configuration pour forcer l’utilisation de la branche stable :
/etc/apt/preferences.d/nodejs Package: nodejsPin: origin deb.nodesource.comPin-Priority: 600- Pin-Priority > 500 : le paquet est préféré s’il est disponible.
- Pin-Priority = 1001 : le paquet est installé même si cela implique un changement de version majeur.
-
Afficher les priorités et versions disponibles avec
apt policy
Pour visualiser quelles versions de paquet sont disponibles et quelle source sera utilisée :Terminal window apt policy nodejsnodejs:Installé : (aucun)Candidat : 20.19.1-1nodesource1Table de version :20.19.1-1nodesource1 600500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages20.19.0-1nodesource1 600500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages20.18.3-1nodesource1 600500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages20.18.2-1nodesource1 60018.19.1+dfsg-6ubuntu5 500500 http://fr.archive.ubuntu.com/ubuntu noble/universe amd64 Packages...Cela donne une vue complète sur la provenance et la priorité des versions disponibles.
Pour installer une version spécifique, il suffit d’utiliser la commande
apt install
suivie du nom du paquet et de la version souhaitée :Terminal window apt install nodejs=20.19.1-1nodesource1 -
Verrouiller un paquet pour empêcher sa mise à jour Pour bloquer un paquet à une version spécifique et éviter toute mise à jour automatique :
Terminal window apt-mark hold <nom_du_paquet>Cela est utile pour éviter des incompatibilités après une personnalisation ou une intégration particulière.
-
Déverrouiller un paquet Pour lever un verrou et permettre à nouveau la mise à jour :
Terminal window apt-mark unhold <nom_du_paquet> -
Lister les paquets verrouillés Pour vérifier les paquets actuellement en “hold” :
Terminal window apt-mark showhold
Sécurité et bonnes pratiques avec APT
La bonne gestion des paquets ne se limite pas à l’installation et à la mise à jour. Pour maintenir un système stable et sécurisé, il est important d’appliquer quelques règles essentielles lors de l’utilisation d’APT.
-
Mettre régulièrement à jour le système L’exécution régulière des commandes suivantes est indispensable pour appliquer les dernières corrections de bugs et de failles de sécurité :
Terminal window sudo apt updatesudo apt upgradeUne mise à jour quotidienne est recommandée, surtout pour les serveurs exposés à Internet.
-
Vérifier l’authenticité des dépôts Avant d’ajouter un dépôt externe, il est important de s’assurer de sa fiabilité. Seuls les dépôts signés avec une clé GPG connue et valide doivent être utilisés. L’ajout d’un dépôt douteux peut exposer le système à des risques de compromission.
-
Limiter le nombre de dépôts tiers Multiplier les sources externes augmente les risques d’incompatibilité et de failles de sécurité. Il est préférable de privilégier les dépôts officiels de Debian et d’utiliser les dépôts tiers uniquement si nécessaire.
-
Nettoyer régulièrement le cache APT Les fichiers
.deb
téléchargés sont stockés dans/var/cache/apt/archives/
. Avec le temps, ce dossier peut occuper beaucoup d’espace disque inutilement. Il est recommandé de le nettoyer régulièrement :Terminal window sudo apt cleanPour supprimer uniquement les paquets obsolètes :
Terminal window sudo apt autoclean -
Utiliser
apt full-upgrade
avec prudence Cette commande permet d’appliquer toutes les mises à jour, même si cela implique de supprimer ou de remplacer certains paquets. Il est conseillé de lire attentivement la liste des actions proposées avant de valider. -
Automatiser les mises à jour de sécurité Pour renforcer la sécurité, il est possible de configurer les mises à jour de sécurité automatiques en installant le paquet
unattended-upgrades
:Terminal window sudo apt install unattended-upgradesAprès l’installation, il faut activer et configurer le service selon les besoins. Cela permet d’appliquer les mises à jour critiques sans intervention manuelle.
-
Sauvegarder les fichiers de configuration Avant de réaliser de grandes mises à jour ou des changements importants dans les dépôts, il est judicieux de sauvegarder les fichiers de configuration, en particulier
/etc/apt/
. L’utilisation d’outils commeetckeeper
facilite cette tâche en versionnant automatiquement les modifications dans un dépôt Git.
Dépannage avec APT
Même avec une utilisation correcte, il peut arriver qu’APT rencontre des erreurs. Savoir diagnostiquer et corriger rapidement ces problèmes est essentiel pour garantir le bon fonctionnement du système.
-
Forcer la reconfiguration des paquets : Lorsque l’installation ou la mise à jour d’un paquet échoue, il peut être nécessaire de forcer la reconfiguration :
Terminal window sudo dpkg --configure -aCette commande tente de terminer les installations ou mises à jour incomplètes.
-
Corriger les paquets cassés : Si le système détecte des dépendances non satisfaites, utiliser :
Terminal window sudo apt --fix-broken installCela permet de résoudre automatiquement les problèmes de dépendances en installant ou supprimant les paquets nécessaires.
-
Nettoyer le cache corrompu : Un cache de paquets endommagé peut bloquer APT. Pour le nettoyer entièrement :
Terminal window sudo apt cleansudo apt updateCette opération supprime tous les fichiers
.deb
téléchargés localement, puis recharge les informations depuis les dépôts. -
Forcer la suppression d’un paquet problématique : Si un paquet empêche le fonctionnement normal d’APT :
Terminal window sudo dpkg --remove --force-remove-reinstreq <nom_du_paquet>Cette commande force la suppression d’un paquet mal installé ou en état instable.
-
Vérifier l’état des dépôts : Des erreurs comme
NO_PUBKEY
ou404 Not Found
signalent des problèmes de dépôts. Il faut alors :-
S’assurer que les URLs dans
/etc/apt/sources.list
et/etc/apt/sources.list.d/
sont correctes. -
Mettre à jour ou importer les clés manquantes si besoin :
Terminal window sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <ID_DE_LA_CLE>
-
-
Examiner les journaux APT : Pour comprendre l’origine d’un problème, consulter les journaux dans :
Terminal window /var/log/apt/history.log/var/log/apt/term.logCes fichiers contiennent les opérations récentes et les erreurs détaillées.
Contrôle de connaissances
Tu as suivi tout le guide sur APT ? Très bien ! C’est maintenant le moment de vérifier ce que tu as retenu. Ce contrôle de connaissances te permettra de tester ta compréhension des notions essentielles : gestion des paquets, manipulation des sources, commandes de base et bonnes pratiques de sécurité.
L’objectif est de t’assurer que tu maîtrises suffisamment APT pour l’utiliser efficacement dans ton travail quotidien ou sur ton serveur personnel.
Pourquoi ce contrôle ?
Cet contrôle va vous permettre de valider vos connaissances sur le sujet abordé dans le guide. Il comporte des QCM, des questions vrai/faux et des réponses ouvertes à un mot.
🕒 Le chronomètre commence dès que vous cliquez sur Démarrer le test. Vous devrez terminer l’examen avant la fin du temps imparti.
🎯 Pour réussir, vous devez obtenir au moins 80% de bonnes réponses.
💡 Je ne fournis pas directement les réponses aux questions. Cependant, si certaines sont complexes, des pistes d’explication pourront être proposées dans le guide ou après l’examen.
Bonne chance ! 🚀
- 10 questions aléatoires issues de la banque de questions,
- 5 minutes pour répondre,
- 80 % de bonnes réponses nécessaires pour valider.
Ce quiz est une excellente façon de consolider tes acquis avant de gérer des serveurs Debian ou Ubuntu en production. N’hésite pas à refaire le test plusieurs fois pour renforcer ta maîtrise !
Conclusion
La maîtrise d’APT est essentielle pour gérer efficacement un système Debian ou ses dérivés. Comprendre les commandes de base, savoir ajouter et sécuriser des dépôts, utiliser les options avancées et respecter les bonnes pratiques permet de maintenir un environnement stable, sécurisé et performant. Avec une utilisation régulière et rigoureuse, APT devient un véritable allié dans l’administration quotidienne des serveurs et postes de travail Linux.