Aller au contenu

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 update

    Avant 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 upgrade

    Aprè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-upgrade

    Cette 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.1

    Pour 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 clean

    Supprime 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 autoclean

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

Terminal window
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é :

Terminal window
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 :

Terminal window
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.list

    Et 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.gpg

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

Terminal window
sudo apt install software-properties-common

Ajouter un dépôt avec apt-add-repository

Pour ajouter un nouveau dépôt :

Terminal window
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 :

Terminal window
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 :

Terminal window
sudo apt-add-repository ppa:nom_du_ppa

Exemple :

Terminal window
sudo apt-add-repository ppa:graphics-drivers/ppa
sudo 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 :

Terminal window
sudo apt-add-repository --remove "deb http://repository.example.com/ubuntu stable main"

Ou pour retirer un PPA :

Terminal window
sudo apt-add-repository --remove ppa:graphics-drivers/ppa

Après la suppression, il est également recommandé de mettre à jour l’index des paquets :

Terminal window
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: nodejs
    Pin: origin deb.nodesource.com
    Pin-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 nodejs
    nodejs:
    Installé : (aucun)
    Candidat : 20.19.1-1nodesource1
    Table de version :
    20.19.1-1nodesource1 600
    500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
    20.19.0-1nodesource1 600
    500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
    20.18.3-1nodesource1 600
    500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
    20.18.2-1nodesource1 600
    18.19.1+dfsg-6ubuntu5 500
    500 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 update
    sudo apt upgrade

    Une 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 clean

    Pour 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-upgrades

    Aprè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 comme etckeeper 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 -a

    Cette 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 install

    Cela 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 clean
    sudo apt update

    Cette 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 ou 404 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.log

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