Maîtriser la gestion des paquets avec APT sous Linux

Commandes et Système

Maîtriser la gestion des paquets avec APT sous Linux

Que vous administriez un serveur Debian en production ou que vous découvriez Ubuntu sur votre poste de travail, APT est l’outil que vous utiliserez au quotidien pour installer, mettre à jour et supprimer des logiciels via la ligne de commande. Voici le guide complet pour maîtriser APT.

Surtout, la maîtrise d’APT est indispensable pour tous les administrateurs systèmes, car il intervient dans de nombreux scénarios : préparer un serveur web en installant Nginx et PHP, maintenir un parc de machines Debian à jour, ou encore diagnostiquer un problème d’installation d’un paquet. Autant de situations où connaître les bonnes commandes, et surtout leurs options, est nécessaire.

Ce tutoriel est un guide de survie avec les commandes APT à connaître, des plus courantes aux plus spécifiques, pour être capable de gérer les paquets sur Linux. Il s’agit du gestionnaire de paquets utilisé sur Debian et les distributions basées sur Debian, comme Ubuntu, Linux Mint, Kali Linux, ou encore Raspberry Pi OS.

APT, c’est quoi exactement ?

APT, pour Advanced Package Tool, est le gestionnaire de paquets des distributions de la famille Debian. Il s’appuie sur l’outil de plus bas niveau , qui se charge de l’installation effective des fichiers , tandis qu’APT apporte une couche d’intelligence : résolution automatique des dépendances, téléchargement des paquets depuis des dépôts distants, gestion des mises à jour, etc. Bien que ce soit un outil accessible depuis le terminal, il facilite grandement l’installation de paquets sur les distributions où il est utilisé.

Historiquement, les administrateurs utilisaient deux outils distincts : pour la gestion des paquets et pour la recherche d’informations. Depuis Debian 8 et Ubuntu 16.04, la commande unifie les fonctions les plus utiles de ces deux outils. Ainsi, nous utiliserons comme commande tout au long de ce guide, bien que parfois la même commande fonctionnerait en remplaçant par .

Avant de commencer : la quasi-totalité des commandes de gestion (installation, suppression, mise à jour) nécessite des privilèges élevés. Vous devrez donc les préfixer avec , ou les exécuter en tant que root.

Bon à savoir : et restent disponibles et opérationnelles.

Mettre à jour le cache des paquets : apt update

C’est LA commande à exécuter avant toute autre opération. Celle que vous pourrez trouver de nombreuses fois dans les tutoriels publiés sur IT-Connect. Contrairement à ce que son nom laisse penser, ne met à jour aucun logiciel : cette commande synchronise l’index local des paquets avec le contenu des dépôts déclarés sur votre machine.


Cela signifie que APT contacte chaque dépôt listé dans le fichier et dans les fichiers du répertoire , puis télécharge la liste des paquets disponibles avec leurs versions. Sans cette étape, votre système travaille avec des informations obsolètes. Ainsi, si vous installez un paquet sans précéder l’opération par un , vous pourriez installer une ancienne version d’un paquet (qui n’est pas la dernière disponible dans les dépôts).

La sortie de la commande vous indique le nombre de paquets pouvant être mis à niveau :


Ou bien :


Comme le message le suggère, vous pouvez lister les paquets concernés avant de lancer la mise à niveau :


Cette commande retourne la liste des paquets dont une mise à jour est disponible. Voici un exemple.


Prenez l’habitude de ce réflexe : d’abord, le reste ensuite.

Mettre à jour le système : apt upgrade et apt full-upgrade

Une fois le cache rafraîchi avec , la mise à niveau des paquets installés s’effectue avec la commande suivante (indiquez “O” et validez avec Entrée pour confirmer).


Cette commande met à jour tous les paquets pour lesquels une nouvelle version est disponible, sans jamais supprimer de paquet existant. Si une mise à jour nécessite la suppression d’un autre paquet, elle est simplement retenue.

Pour aller plus loin, il existe :


Cette commande, équivalente à , autorise APT à supprimer des paquets si c’est nécessaire pour mener la mise à niveau à son terme. Elle est notamment utilisée lors des montées de version de distribution (Debian 12 vers Debian 13, par exemple).

La routine de maintenance d’une machine Debian/Ubuntu tient en une ligne :


L’option ajoutée ici permet d’accepter automatiquement les mises à jour, ce qui évite d’appuyer sur “O” puis sur Entrée.

Pour mettre à jour un seul paquet : fait l’affaire, puisqu’il installe la dernière version disponible du paquet, qu’il soit déjà présent ou non :


L’option garantit que le paquet ne sera pas installé s’il est absent du système : seul un paquet déjà présent sera mis à niveau.

Installer des paquets : apt install

Parlons maintenant de l’installation d’un paquet avec la commande APT. Comme précisé dans l’exemple précédent, l’installation s’effectue avec la commande suivante :


APT calcule alors les dépendances nécessaires, affiche un récapitulatif (paquets à installer, espace disque requis) et attend votre confirmation. On peut constater que le paquet sera accompagné par l’installation de en tant que dépendance.

Plusieurs options méritent d’être connues :

  • Installer plusieurs paquets en une seule commande :

Il suffit de spécifier tous les noms à la suite, avec un espace entre chaque nom.

Répondre automatiquement “oui” à la confirmation, indispensable dans les scripts :


  • Installer une version précise d’un paquet :

D’accord, mais comment fait-on pour connaître les versions disponibles ? Utilisez ou , vous obtiendrez la réponse ! La première commande offre un résultat plus facilement lisible avec une seule version par ligne. Par exemple :


  • Limiter l’installation au strict nécessaire, en excluant les paquets recommandés (différents des paquets suggérés) :

Cette option est appréciable sur les serveurs, où l’on cherche à réduire la surface d’attaque et l’empreinte disque. Cela peut éviter de se retrouver avec des paquets correspondants à des outils que l’on n’utilisera pas.

  • Simuler une installation sans rien modifier, pour vérifier ce qu’APT prévoit de faire :

L’option (ou , ) fonctionne avec la plupart des commandes APT. C’est un bon réflexe avant une opération sensible sur un serveur de production.

  • Réinstaller un paquet dont les fichiers ont été altérés ou supprimés par erreur :

Enfin, sachez qu’APT peut installer un fichier local en résolvant ses dépendances, ce que ne sait pas faire seul :


Le est obligatoire pour qu’APT comprenne qu’il s’agit d’un chemin local et non d’un nom de paquet. De nombreuses applications et outils sont distribués sous la forme de fichiers à installer manuellement, c’est donc important de connaître cette méthode d’installation.

Rechercher des paquets et obtenir des informations

Avant d’installer un paquet, encore faut-il connaître son nom exact. Jusqu’ici, j’ai spécifié à plusieurs reprises des noms de paquets que je connaissais, et surtout, qui sont très populaires. Pour identifier le nom d’un paquet, vous pouvez rechercher sur le Web ou demander à APT.

La recherche porte sur le nom et la description des paquets. Si vous recherchez un serveur Web, vous pourriez faire une recherche générique comme celle-ci :


Pour limiter la recherche aux noms de paquets uniquement, l’option est utile :


Même une simple requête comme celle-ci ne retournera pas un ou deux résultats. Sur ma machine, cet exemple retourne des dizaines de paquets. La raison : les librairies Nginx sont listées, comme car il y a le mot-clé recherché dans le nom.

Une fois le paquet identifié, la commande affiche sa fiche complète : version, dépendances, taille, description, dépôt d’origine, etc.


Dans le cas de Nginx, il n’y a pas de paquets recommandés. Néanmoins, il y a avec certains paquets, comme VLC Media Player. Ainsi, les paquets associés à la catégorie Recommends seront installés sur la machine, bien qu’ils ne soient pas indispensables. Si on veut éviter leur installation, il convient d’ajouter l’option évoquée précédemment.

Voici d’autres commandes à connaître pour obtenir des informations sur les paquets.

  • Lister les paquets installés :

  • Vérifier si un paquet précis est installé :

Note : l’avertissement “apt does not have a stable CLI interface.” n’est pas une erreur. Il rappelle simplement que le format de sortie de la commande peut évoluer d’une version à l’autre. Pour un usage interactif comme ici, vous pouvez l’ignorer sans risque. Dans un script en revanche, préférez apt-get dont la sortie reste stable dans le temps (ancienne commande encore supportée).

  • Connaître la version installée et la version candidate (celle qui serait installée par ), ainsi que le dépôt d’origine :

Ici, nous pouvons constater que la version installée est identique à la version disponible dans les dépôts. Autrement dit, le paquet est à jour. Mais attention, ceci est vrai dans le contexte des dépôts que nous utilisons : il n’est pas à exclure qu’une version plus récente soit disponible, mais celle-ci n’est peut-être pas encore dans les dépôts déclarés sur la machine locale.

  • Lister le contenu d’un paquet installé, avec l’outil dpkg :

Oublions un instant la commande APT, parce que cette commande complémentaire est très utile. Elle permet de savoir facilement où a été installé un paquet. L’exemple précédent retourne :


Supprimer des paquets : remove, purge et autoremove

Installer des paquets, c’est bien, mais être capable de les désinstaller et de faire du nettoyage sur la machine locale, c’est tout aussi important.

La suppression d’un paquet s’effectue avec la commande suivante :


Attention toutefois : supprime les binaires du paquet, mais conserve ses fichiers de configuration (généralement situés dans ). C’est un comportement volontaire, qui permet de réinstaller le paquet plus tard en retrouvant sa configuration.

Si l’on fait un avant / après en affichant le contenu du répertoire , cela confirme bien que la commande se comporte de cette façon.

Pour une suppression complète, configuration comprise, utilisez :


Si vous avez déjà supprimé un paquet avec et que vous souhaitez éliminer ses fichiers de configuration résiduels, exécuter a posteriori fonctionne également. Pour repérer ces paquets “fantômes”, à l’état “rc” (removed, config-files), la commande suivante est pratique :


L’exemple de nginx est intéressant parce que l’exécution de la commande n’a pas supprimé le répertoire . Aurais-je menti ? Non. C’est plus subtil. Les fichiers de configuration de base (, , l’arborescence ) sont fournis par le paquet , et non par .

Vous pouvez le vérifier avec :


Or, puis n’agissent que sur le paquet . Le paquet , lui, est resté en place, donc son contenu dans n’a pas bougé. Pour purger réellement la configuration, il faut viser le bon paquet :


Ce comportement signifie aussi que la désinstallation du paquet désinstalle uniquement ce paquet. Toutes les dépendances devenues inutiles sont restées là sur le système. Elles vont, d’une certaine façon, polluer la machine et s’accumuler au fil du temps.

Dans ce cas, vous pouvez faire le nettoyage avec cette commande conçue pour identifier et supprimer les dépendances qui ne sont plus nécessaires :


Il est également possible de faire tout d’un coup, à savoir combiner suppression des dépendances orphelines et purge de leur configuration :


Remarque : cette commande est aussi celle qui supprime les anciens noyaux Linux sur Ubuntu, un point à surveiller sur les machines dont la partition est de petite taille.

Gérer les dépôts APT

Les dépôts sont les sources depuis lesquelles APT télécharge les paquets. Chaque distribution est livrée avec un ensemble de dépôts préconfigurés. Leur déclaration se trouve à deux endroits :

  • Le fichier historique
  • Les fichiers individuels du répertoire

Une ligne de dépôt au format classique ressemble à ceci :


On y retrouve le type ( pour les paquets binaires, pour les sources), l’URL du miroir, le nom de la version de la distribution et les composants activés. En réalité, ce format n’est pas le seul et les distributions actuelles migrent plutôt vers un autre format de façon progressive : le format “deb822“, plus structuré, avec des fichiers .

Le format deb822 pour les sources

Debian 13 intègre une commande pour migrer du format classique vers ce nouveau format. Et vous savez quoi ? Elle est basée sur APT !


Note : avant d’exécuter cette commande en production, effectuez une sauvegarde de vos fichiers sources. En effet, il n’est pas à exclure que certaines options spécifiques (précisées entre crochets) ne soient pas reprises par cette commande. Elles devront être ajoutées à la main. Avec la configuration par défaut, il n’y a aucun problème.

Suite à l’exécution de cette commande, il y a un fichier nommé disponible sur la machine. Il remplace le fichier évoqué précédemment.

Il contient plusieurs blocs, dont celui-ci :


L’intérêt du format est sa lisibilité : chaque information occupe son propre champ, au lieu d’être condensée sur une seule ligne. La correspondance avec le format classique est directe :

  • le type d’entrée (, ). On peut en indiquer plusieurs séparés par une espace.
  • l’URL du miroir.
  • la ou les versions de la distribution (ici et ).
  • les composants activés (, , ).
  • le chemin de la clé GPG qui signe le dépôt, l’équivalent de l’attribut du format en ligne.

Ajouter un dépôt dans les sources

Sur Debian, quel que soit le format choisi, la première étape est commune : récupérer la clé GPG du dépôt et la stocker dans , conformément à la bonne pratique actuelle. Généralement, on vous communique pour cela une commande à exécuter pour télécharger cette clé et la mettre en place (instruction fournie dans la documentation de l’outil que vous souhaitez installer).

Quand c’est fait, il ne reste plus qu’à déclarer le dépôt sur votre machine locale. Voici un exemple pour Docker.

Avec le format classique, ce sera une ligne dans un fichier comme :


Avec le format deb822, ce sera un bloc complet dans un fichier comme :


Sur Ubuntu, l’ajout d’un PPA (Personal Package Archive) s’effectue avec :


Après tout ajout ou modification de dépôt, n’oubliez pas le réflexe habituel :


C’est indispensable, sinon votre cache de paquets local n’aura pas connaissance des paquets disponibles dans le nouveau dépôt.

Nettoyer et maintenir son système

APT conserve les paquets téléchargés dans le répertoire . Sur un système utilisé depuis longtemps, ce cache peut occuper plusieurs gigaoctets. Deux commandes permettent de faire le ménage.

Cette première commande vide intégralement le cache des paquets téléchargés.


Si l’on fait un avant / après, nous pouvons constater qu’il y a eu un gain de plus de 400 Mo sur la machine locale.

La commande APT avec l’option est plus conservatrice. Elle ne supprime que les paquets qui ne peuvent plus être téléchargés depuis les dépôts (anciennes versions, paquets retirés).


Ainsi, si nous voulons à la fois mettre à jour les paquets sur une machine Debian, tout en nettoyant les paquets obsolètes, une routine d’entretien sous Debian/Ubuntu peut donc ressembler à ceci :


Commandes et options avancées avec APT

Geler un paquet avec apt-mark

Si vous souhaitez empêcher la mise à jour d’un paquet précis (une application validée dans une version spécifique, par exemple), sachez que c’est possible. C’est parfois nécessaire sur des tâches d’upgrade. La commande répond à ce besoin :


Le paquet est alors “gelé” : il sera ignoré par et . Pour lever le gel :


Et pour lister les paquets actuellement gelés :


Réparer un système cassé

Une installation interrompue (coupure réseau, Ctrl+C malheureux) peut laisser APT dans un état incohérent. Deux commandes sont à connaître pour s’en sortir :


Souvent abrégée en , elle tente de résoudre les dépendances cassées. En complément, si dpkg signale des paquets non configurés :


Cette commande reprend la configuration des paquets là où elle s’était arrêtée. C’est une situation rare, mais cela peut dépanner !

Télécharger sans installer

Pour récupérer un fichier sans l’installer, par exemple pour le transférer sur une machine sans accès Internet :


Le fichier est déposé dans le répertoire courant. Par exemple, la commande précédente permet d’obtenir le fichier : . Sur la machine cible, l’installation s’effectuera avec ou .

Consulter l’historique des opérations

APT journalise toutes les opérations dans le fichier . Pour savoir quel paquet a été installé ou supprimé, et quand :


Cet historique complet permet de retracer l’ensemble des actions effectuées via APT. Voici un extrait :

Voici comment décrypter les informations de ce journal :

  • Start-Date : date et heure de début de l’opération, au format . C’est le moment où APT a commencé à traiter la commande.
  • Commandline : la commande exactement telle qu’elle a été saisie par l’utilisateur. Ce champ permet de retrouver précisément l’action déclenchée.
  • Requested-By : l’utilisateur à l’origine de l’opération, avec son nom et son UID entre parenthèses (). Pratique pour l’audit sur une machine partagée. Ce champ est absent lorsque l’action a été lancée directement en tant que root.
  • Remove / Purge / Install : la nature de l’opération et la liste des paquets concernés, avec leur architecture et leur version.
  • End-Date : date et heure de fin de l’opération. L’écart avec donne la durée de traitement (ici une à deux secondes selon les actions).

Remarque : les journaux plus anciens sont compressés (, etc.) et se consultent avec .

Aller plus loin : l’historique et le rollback natifs avec APT 3.2

Jusqu’à présent, consulter l’historique se limitait à lire le fichier , et revenir en arrière imposait de fouiller les journaux de ou de s’appuyer sur des snapshots du système de fichiers. La version APT 3.2, publiée par l’équipe Debian, introduit un système d’historique et de retour arrière (rollback) natif, comparable à ce que propose DNF sur les distributions de la famille Red Hat. C’est une grosse avancée pour APT.

Cette version ajoute cinq commandes dédiées à la gestion des transactions :

  • : affiche l’historique des transactions de paquets précédentes.
  • : fournit des informations détaillées sur une transaction spécifique.
  • : annule une transaction précise, à la manière d’un « Ctrl+Z ».
  • : réapplique une transaction qui avait été annulée.
  • : ramène l’état des paquets du système à une transaction antérieure.

Attention : ces commandes ne sont pas présentes sur Debian 13 (Trixie), la version utilisée comme référence pour écrire ce guide. APT 3.2 est attendu sur Ubuntu 26.04 LTS, sur Debian 14 (Forky) prévue pour l’été 2027, et est déjà disponible sur Debian Sid (Unstable) pour qui souhaite le tester. Sur un système Debian 13, la consultation du fichier vue précédemment reste donc la méthode à utiliser.

Le mémo APT

Pour conclure ce guide, voici le récapitulatif des commandes à garder sous la main pour être à l’aise avec APT sur Debian et ses dérivés.

Commande Rôle
Synchroniser l’index des paquets
Mettre à niveau les paquets installés
Mise à niveau avec suppressions autorisées
Installer un paquet
Supprimer un paquet (config conservée)
Supprimer un paquet et sa configuration
Supprimer les dépendances orphelines
Rechercher un paquet
Afficher la fiche d’un paquet
Lister les paquets installés
Versions installée/candidate et origine
/ Nettoyer le cache des paquets
Geler un paquet (fixer la version)
Réparer les dépendances cassées
Afficher la version d’APT

Conclusion

Suite à la lecture de ce guide, vous avez une bonne vue d’ensemble des commandes nécessaires pour gérer les paquets d’un système Debian ou Ubuntu au quotidien. Ce que l’on fait le plus fréquemment, c’est la synchronisation de l’index avec et l’installation de paquets avec , mais les autres possibilités sont aussi à connaître.

FAQ sur APT

APT fonctionne-t-il sur toutes les distributions Linux ?

Non, APT est propre à la famille Debian (Debian, Ubuntu, Linux Mint, Kali Linux, Raspberry Pi OS, etc.). Les distributions de la famille Red Hat (RHEL, Fedora, AlmaLinux, Rocky Linux) utilisent DNF/YUM, tandis qu’Arch Linux utilise pacman et openSUSE s’appuie sur zypper.

Quelle est la différence entre apt et apt-get ?

La commande regroupe les fonctions les plus utilisées de et dans une interface plus conviviale. Toutefois, reste recommandé dans les scripts, car sa sortie est stable d’une version à l’autre.

Quelle est la différence entre apt update et apt upgrade ?

La commande rafraîchit la liste des paquets disponibles sans rien installer, tandis que met à niveau les paquets installés. Les deux commandes sont complémentaires et s’exécutent dans cet ordre (important !).

Quelle est la différence entre apt upgrade et apt full-upgrade ?

La commande ne supprime jamais de paquet, alors que peut en supprimer si c’est nécessaire pour mener à bien la mise à niveau. Le second est notamment utilisé lors des changements de version de distribution.

Quelle est la différence entre apt remove et apt purge ?

L’option supprime le paquet mais conserve ses fichiers de configuration, tandis que supprime également la configuration. Utilisez pour repartir de zéro lors d’une réinstallation, ce qui est intéressant pour nettoyer un paquet et refaire une installation propre.

Comment installer une version spécifique d’un paquet avec APT ?

Utilisez la syntaxe , par exemple . Les versions disponibles se listent avec ou .

Comment empêcher la mise à jour d’un paquet ?

Gelez le paquet avec . Il sera ignoré par les commandes et jusqu’à ce que vous exécutiez . L’intérêt étant de pouvoir geler une version spécifique d’un paquet.

Comment lister tous les paquets installés sur le système ?

Utilisez , ou pour une sortie plus compacte. Pour rechercher un paquet précis, ajoutez un filtre : .

Comment installer un fichier .deb téléchargé manuellement ?

La méthode recommandée est , car APT résout automatiquement les dépendances. La commande fonctionne aussi, mais devra être complétée par si des dépendances manquent.

APT fonctionne-t-il sans connexion Internet ?

APT a besoin d’accéder aux dépôts pour télécharger les paquets. Sans connexion, vous pouvez installer des fichiers téléchargés au préalable avec (mais attention aux dépendances !), ou configurer un dépôt local ou un miroir interne sur votre réseau. Si vous avez un dépôt de paquets sur votre réseau local, alors non, vous n’avez pas besoin d’Internet.

SOURCE