dpkg (Debian Package) est le gestionnaire de paquets des distributions Linux Debian et ses dérivés Ubuntu, Linux Mint, etc.
Elle se présente sous la forme d’une commande pour lister, installer ou supprimer un paquet .deb.
Les paquets Debian étant des fichiers .deb que l’on peut télécharger sur internet.
Il contient les fichiers d’installation et de configuration pour installer une application, librairies dans le système d’exploitation.
Ce tutoriel vous explique comment utiliser la commande dpkg pour gérer vos paquets sur les distributions Linux Debian.

Table des matières
- 1 Qu’est-ce que le gestionnaire de paquets dpkg ?
- 2 Le dossier /var/lib/dpkg/
- 3 Installer un paquet deb
- 4 Supprimer un paquet deb
- 5 Les états des paquets deb
- 6 Comment utiliser la commande dpkg
- 7 Les dépendances entre paquets
- 8 Résoudre les erreurs et problèmes d’installation de paquet
- 9 Les outils autour du système de paquets dpkg
- 10 Liens
Qu’est-ce que le gestionnaire de paquets dpkg ?
dpkg est la commande de base pour gérer les paquets au sein de la distribution Debian et ses dérivés.
Elle vous permet d’installer ou supprimer un paquet du système, mais aussi gérer ceux installés.
Un paquet se présente sous la forme d’un fichier .deb.
Les sites des projets libres permettent de les télécharger ainsi que les éditeurs de logiciels tiers.
En utilisant la commande dpkg, on peut demander à installer le paquet dans le système.
Ce dernier décompresse le fichier .deb pour copier les fichiers aux emplacements par défaut puis jouer les scripts de configuration.
Enfin, l’administrateur peut aussi supprimer un paquet installé.
Le système de paquet Debian fonctionne avec une base données présente dans le dossier /var/lib/dpkg/.
Celle-ci stocke les paquets installés, supprimés ou inactifs et donc reflète l’état des paquets installés dans le système.
Par exemple, lorsque vous supprimez un paquet, ce dernier est marqué comme désinstallé dans celle-ci.
La commande dpkg interroge à tout moment cette base de données.
Enfin on trouve aussi des commandes des dérivés de la commande dpkg :
- dpkg-divert : remplacer la version d’un fichier contenu dans un paquet
- dpkg-query : Un outil pour interroger la base de données de dpkg
- dpkg-split : Outil de décomposition/recomposition des paquets Debian
- dpkg-statovveride : Annuler la propriété et le mode des fichiers
- dpkg-trigger : Un utilitaire pour activer les actions différées de paquets
Le dossier /var/lib/dpkg/
La base de données dpkg se trouve dans le dossier /var/lib/dpkg/ avec différents fichiers ou sous-dossiers.
Fichiers | Description |
alternatives | Les informations alternatives utilisées par la commande update-alternatives |
available | Les informations des paquets disponibles, c’est à dire installés dans le système |
diversions diversions-old | Les informations de déviation utilisées par dpkg et définies par dpkg-divert. Le fichier old est une sauvegarde |
info | Dossier stockant les fichiers de configuration, md5 et scripts des paquets installés |
lock | Ce fichier indique que dpkg est en cours d’utilisation. Cela évite d’avoir plusieurs instances de dpkg |
statoverride | Fichier qui contient la liste actuelle des remplacements de statistiques de le système. Il se trouve dans l’administration de dpkg répertoire, ainsi que d’autres fichiers importants pour dpkg, tels que en tant que statut ou disponible |
status status-old | Les informations d’état de tous les packages. Le fichier old est une sauvegarde |
Installer un paquet deb
On installe un paquet avec dpkg en utilisant le paramètre -i ou –install.
Par exemple :
dpkg -i vim_2%3a8.1.0875-5_amd64.deb
Lorsque vous installez un paquet par dpkg (ou indirectement par apt), ce dernier effectue 6 étapes successives :
- Extrait les fichiers de contrôle du nouveau package
- Si une autre version du même package a été installée avant la nouvelle installation, exécute le script prerm de l’ancien package
- Exécute le script preinst, s’il est fourni par le package
- Décompresse les nouveaux fichiers et sauvegarde en même temps les anciens fichiers, de sorte qu’en cas de problème, ils puissent être restaurés
- Si une autre version du même package a été installée avant la nouvelle installation, exécute le script postrm de l’ancien package. Notez que ce script est exécuté après le script preinst du nouveau package, car les nouveaux fichiers sont écrits en même temps que les anciens fichiers sont supprimés
- Configure le package :
- Décompresse les fichiers de configuration et sauvegardez en même temps les anciens fichiers de configuration, afin qu’ils puissent être restaurés en cas de problème
- Exécute le script postinst, s’il est fourni par le package
Lorsque l’on installe le paquet, on peut voir les étapes à l’écran :
- Lecture de la base de données dpkg (/var/lib/dpkg/status)
- Préparation puis dépaquetage du paquet
- Installation du paquet
- Paramétrage du paquet avec les étapes de configuration
Si toutes les étapes s’exécutent correctement alors le paquet est considéré comme étant installé.
Sinon une erreur s’affiche et le paquet prend un état ou statut selon à quelle phase le plantage se produit.
Ici il s’agit d’une erreur de dépendance (voir plus bas).
Supprimer un paquet deb
On supprime un paquet avec l’option -r ou -P.
Par exemple :
dpkg -r vim
- -r pour –remove : supprime tout sauf les fichiers de configuration. Cela peut éviter d’avoir à reconfigurer le package s’il est réinstallé ultérieurement.
- -P ou –purge : supprime tout, y compris les fichiers de configuration
La suppression d’un package comprend les étapes suivantes:
- Exécutez le script prerm
- Supprimez les fichiers installés
Les états des paquets deb
Les paquets ont des états selon les actions effectuées par l’utilisateur.
En effet, vous pouvez installer un paquet qui sera considéré comme installé si tout se passe correctement.
Mais l’installation peut planter et afficher une erreur à différentes phases.
Par exemple, si cela se produit pendant la phase de configuration, il sera alors considéré comme étant à moitié configuré.
Etats | Description |
not-installed | Le package n’est pas installé sur votre système |
config-files | Seuls les fichiers de configuration du package existent sur le système |
half-installed | L’installation du package a été lancée, mais pas terminée pour une raison quelconque |
unpacked | Le package est décompressé, mais pas configuré |
half-configured | Le package est déballé et la configuration a été commencé, mais pas encore terminé pour une raison quelconque |
triggers-awaited | Le package attend le traitement du déclencheur par un autre package |
triggers-pending | Le package a été déclenché |
installed | Le paquet est correctement déballé et configuré |
Pour lister les paquets et leurs états, on utilise la commande dpkg avec l’option -l (pour list) :
dpkg -l
La première colonne reflète l’état du paquet avec deux caractères distincts.
Le premier caractère: L’état souhaité pour l’utilisateur. Les valeurs possibles :
- u = Inconnu (un état inconnu)
- i = Installer (marqué pour l’installation)
- r = Supprimer (marqué pour suppression)
- p = Purge (marqué pour purge)
- h = Hold (Garder )
Le second caractère : Le deuxième caractère signifie l’état actuel, qu’il soit installé ou non. Les valeurs possibles sont
- n = Non installé (Not-installed)
- c = Fichiers de configuration (Config-files)
- H = Semi-installé (Half-installed)
- U = Décompressé (Unpacked)
- F = Semi-configuré (Half-configured)
- W = Attente de déclenchements (Triggers-awaiting)
- t = Déclenchements en attente (Triggers-pending)
- i = Installé (Installed)
Par exemple ii signifie que le paquet est installé dans le système alors rc signifie que le paquet est marqué comme supprimé mais les fichiers de configuration sont encore présents.
Enfin ce dernier exemple ou l’installation s’arrête après l’étape de dépaquetage du paquet et plante à l’étape d’installation à cause d’un problème de dépendance.
Du coup le paquet est e, état iU : on tente d’installer mais il s’arrête sur le statut décompressé.
Par contre lorsque vous purgez le paquet, ce dernier n’est plus listé dans la base de données dpkg.
Comment utiliser la commande dpkg
Enfin la commande dpkg permet de gérer les paquets.
Vous pouvez donc installer, supprimer des paquets ou lister ceux installés.
Le tutoriel suivant vous donne les principales utilisations de la commande dpkg :
Les dépendances entre paquets
Lorsque vous installez des programmes, ils dépendent d’autres programmes pour fonctionner. Ces autres programmes sont appelés dépendances.
En général, les dépendances sont des bibliothèques (librairies) ou des paquets liés à un langage de programmation et avec la bonne version.
Par exemple en installant fslint, cela installe des librairies (libXXX) mais aussi des paquets python, tout simplement car une partie de fslint est écrit en python.
Sans ces paquets supplémentaires, le logiciel en peut pas fonctionner.
Il faut savoir que dpkg n’est pas capable de résoudre les dépendances.
Lorsque vous installez un paquet, il faut fournir tous les paquets dont il dépend, sinon cela provoque une erreur de dépendance.
Si dessous, on tente d’installer vim alors que le paquet vim-runtime est requis.
dpkg: des problèmes de depédances empêchent la configuration de vim
vim dépend de vim-runtime (=2:8.1.075-5) ...
Le paquet vim-runtime n'est pas installé
dpkg : erreur de traitement du paquet vim (--install) :
des problèmes de dépandances - laisse non configuré
Si l’on reprend l’exemple de fslint, cela devient vite compliqué car il faut fournir une dizaines de paquets en plus.
Ne parlons pas alors des mises à niveau de la distribution qui serait tout simplement impossible à effectuer avec dpkg.
C’est pour cela que des outils supplémentaires comme apt ou aptitude existent qui sont capables de résoudre les dépendances en téléchargeant tous les paquets ligne depuis les dépôts.
Résoudre les erreurs et problèmes d’installation de paquet
Si vous rencontrez des erreurs lors de l’installation de paquet, rendez-vous dans le tutoriel suivant :
Les outils autour du système de paquets dpkg
Installer un paquet avec dpkg n’est pas compliqué en soi, mais pour les applications importantes, des dizaines de dépendances sont à satisfaire.
Il devrait alors très vite fastidieux de devoir télécharger et à installer à la main chacun des paquets.
Pour faciliter les choses, Debian a très vite mis en place des dépôts en ligne (repository) et des outils pour télécharger et installer des paquets automatiquement les paquets.
Les dépôts en ligne sont des serveurs WEB ou FTP qui mettent à disposition tous les paquets d’une version de la distribution.
Voici quelques outils utiles qui sont pour la plupart des front-end.
C’est à dire qu’ils vont en amont gérer les dépôts, téléchargement des paquets pour ensuite utiliser dpkg pour installer les paquets nécessaires.
Dselect
dselect est un programme utilisé pour gérer les paquets logiciels dans le système d’exploitation Debian.
Il possède une interface utilisateur en mode texte, un ensemble de raccourcis clavier qui est généralement considéré comme assez non intuitif, et son mécanisme de résolution des dépendances est sous-optimal.
dselect peut maintenant utiliser apt comme «méthode» dorsale pour installer des paquets.
dselect permet d’effectuer les actions suivantes :
- Mise à jour de l’information sur les paquets
- Sélection des paquets que vous désirez avoir sur votre système
- Installer et mise à niveau des paquets
- Configuration de tout paquet non configuré
- Supprimer des applications non désirées
On peut très facilement naviguer et lister tous les paquets du dépôts avec le nom, version et description de tous les paquets.
Apt : installer et mise à jour de paquets et distribution
Advanced Package Tool (ou APT) est le gestionnaire de paquets en ligne de commande pour Debian et ses dérivés.
Il fournit des outils en ligne de commande pour rechercher, gérer et interroger des informations sur les packages disponibles sur les dépôts des distributions.
L’outil est capable de résoudre les dépendances inter-paquets.
Il permet aussi de mettre à niveau la distribution vers une nouvelle version majeure.
Aptitude
Aptitude est une interface basée sur Ncurses et ligne de commande pour de nombreuses bibliothèques Apt, qui sont également utilisées par Apt, le gestionnaire de paquets Debian par défaut.
Ce outil est arrivé bien après apt et peut être vu comme une version améliorée.
Ainsi, dans de nombreuses situations impliquant l’installation, la suppression et la résolution de conflits pour les paquets, Aptitude prouve sa valeur plutôt qu’apt-get.
do-release-upgrade
La commande do-release-upgrade spécifique à Ubuntu permet de mettre à niveau Ubuntu.
do-release-upgrade fait partie du package «update-manager-core». Le script détermine la version vers laquelle vous allez effectuer la mise à niveau, essayez de savoir si elle est prise en charge ou non et vous plaignez de cette dernière.
Puis l’outil tous les scripts nécessaires à la mise à niveau de la distribution.
Plus globalement pour la mise à niveau d’Ubuntu :
dpkg-reconfigure
dpkg-reconfigure est un puissant outil en ligne de commande utilisé pour reconfigurer un paquet déjà installé.
C’est l’un des nombreux outils proposés sous dpkg – le système central de gestion des paquets sur Debian/Ubuntu et Linux Mint.
Essentiellement son utilisation consiste à indiquer le nom du paquet à reconfigurer.
sudo dpkg-reconfigure tzdata
Liens
- Apt Linux : installer et mise à jour de package et distribution
- 13 commandes APT à connaitre sur Debian, Ubuntu, Mint, …
- /etc/apt/sources.list : fichier de configuration des sources APT
- Add Repository : Modifier /etc/apt/sources.list sur Debian ou Ubuntu
- L’authentification des paquets sur APT
- Comment ajouter des clés de signature au référentiel APT sur Debian, Ubuntu
- dpkg : gestionnaire de paquets pour Debian, Ubuntu ou Mint
- 13 exemples d’utilisation de la commande dpkg pour les distributions Linux basées sur Debian
- Aptitude Linux : comment l’utiliser pour gérer les paquets
- 10+ exemples d’utilisation avancé de la commande Aptitude sur Linux
- apt-file : chercher et lister des fichiers dans les paquets
- apt-daily.service et unattended-upgrade : qu’est-ce que, faut-il le supprimer
- Linux : installer un paquet (logiciel)
- Ubuntu : mettre à jour les paquets et applications
- Ubuntu : activer les dépôts universe, multiverse, restricted
- Ubuntu : ajouter PPA (dépôt personnel de logiciels)
- Utiliser DNF/YUM sur Linux Fedora, Redhat (REHL)