Commande dpkg sous Linux : installer et gérer les packages Debian

Lorsque vous installez un logiciel sur Ubuntu ou Debian avec apt
le gestionnaire de paquets appelle doucement dpkg en arrière-plan pour faire le travail réel. dpkg est l’outil de bas niveau qui décompresse et installe .deb fichiers, gère la base de données des packages et gère la suppression et la purge. Savoir comment l’utiliser directement est utile lorsque vous avez un local .deb fichier qui ne se trouve pas dans un référentiel, lorsque vous devez demander quels fichiers un package est installé ou lorsque vous souhaitez trouver quel package possède un fichier spécifique sur votre système.

Syntaxe

SMS

dpkg (OPTIONS) COMMAND (ARGUMENTS)

Les opérations d’installation, de suppression, de purge et de configuration nécessitent sudo car ils modifient les répertoires système et la base de données des packages. Commandes de requête telles que dpkg -l, dpkg -L, dpkg -Set dpkg -s s’exécute généralement sans privilèges élevés.

Installer un package

Pour installer un local .deb déposer:

Terminal

sudo dpkg -i package.deb

dpkg décompresse l’archive, exécute les scripts du responsable et enregistre le package dans sa base de données. Si le package comporte des dépendances non satisfaites, l’installation échoue avec une erreur de dépendance. Corrigez-le en exécutant :

Terminal

sudo apt install -f

apt install -f (correctif cassé) résout et installe toutes les dépendances manquantes, puis termine l’installation de dpkg en attente.

Pour la plupart des locaux .deb installe, apt install ./package.deb
est plus facile car il peut résoudre les dépendances dans la même étape. Utiliser dpkg -i lorsque vous avez spécifiquement besoin de l’opération de package de niveau inférieur.

Supprimer un paquet

Pour désinstaller un package tout en conservant ses fichiers de configuration :

Terminal

sudo dpkg -r package-name

Pour désinstaller un package et supprimer ses fichiers de configuration en même temps (une purge complète) :

Terminal

sudo dpkg -P package-name

Utiliser -P lorsque vous souhaitez une suppression propre sans configuration restante, ou lorsque vous envisagez de réinstaller avec une nouvelle configuration.

Liste des packages installés

Pour lister chaque package installé avec sa version et son statut :

Terminal

dpkg -l

La sortie est large. Chaque ligne de package commence par trois colonnes d’état : action souhaitée, état actuel du package et état d’erreur. L’état d’installation normal apparaît comme iisuivi du nom du package, de la version, de l’architecture et de la description :

sortir

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-=============-============-=================================
ii curl 8.5.0 amd64 command line tool for transferring data
ii nginx 1.26.0 amd64 small, powerful, scalable web/proxy server

Le premier i signifie que le package est sélectionné pour l’installation, et le deuxième i signifie qu’il est installé et configuré. Filtrer par nom pour affiner le résultat :

Terminal

dpkg -l 'nginx*'

sortir

ii nginx 1.26.0 amd64 small, powerful, scalable web/proxy server
ii nginx-common 1.26.0 all small, powerful, scalable web/proxy server (common files)

Liste des fichiers installés par un package

Pour voir chaque fichier qu’un package a placé sur votre système :

Terminal

dpkg -L nginx

sortir

/.
/etc
/etc/nginx
/etc/nginx/nginx.conf
/etc/nginx/sites-available
/etc/nginx/sites-enabled
/usr/sbin
/usr/sbin/nginx
...

Ceci est utile lorsque vous devez trouver où un package installe son binaire, ses fichiers de configuration ou sa documentation.

Rechercher quel package possède un fichier

Pour identifier quel package a installé un fichier particulier :

Terminal

dpkg -S /usr/sbin/nginx

sortir

nginx: /usr/sbin/nginx

Vous pouvez également effectuer une recherche par motif :

Terminal

dpkg -S '*/bin/curl'

sortir

curl: /usr/bin/curl

Afficher les détails du forfait

Pour imprimer les métadonnées complètes d’un package installé, y compris la version, les dépendances et la description :

Terminal

dpkg -s nginx

sortir

Package: nginx
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 47
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Version: 1.26.0-1ubuntu1
...

Inspecter un fichier .deb sans installer

Pour lire les métadonnées d’un .deb fichier avant de l’installer :

Terminal

dpkg --info package.deb

sortir

 new Debian package, version 2.0.
size 1234567 bytes: control archive=2048 bytes.
...
Package: myapp
Version: 2.1.0
Architecture: amd64
...

Pour lister les fichiers que le package installerait sans réellement l’installer :

Terminal

dpkg --contents package.deb

Extraire un package sans installer

Pour déballer le contenu d’un .deb déposer dans un répertoire pour inspection :

Terminal

dpkg -x package.deb /tmp/extracted

La structure des répertoires reflète l’emplacement où les fichiers seraient installés sur le système réel.

Exporter et restaurer les sélections de packages

Pour exporter une liste de tous les packages installés (utile pour répliquer un système) :

Terminal

dpkg --get-selections > installed-packages.txt

Pour restaurer ces sélections sur une autre machine :

Terminal

sudo dpkg --set-selections < installed-packages.txt
sudo apt-get dselect-upgrade

Reconfigurer un package installé

Certains packages exécutent une configuration interactive au moment de l’installation. Pour exécuter à nouveau cette configuration :

Terminal

sudo dpkg-reconfigure package-name

Ceci est couramment utilisé pour reconfigurer tzdata pour les changements de fuseau horaire, keyboard-configurationou locales.

Réparer l’état du paquet cassé

Si une mise à jour du système ou une opération manuelle laisse les packages dans un état à moitié installé ou non configuré, exécutez :

Terminal

sudo dpkg --configure -a

Cela traite toutes les étapes de configuration du package en attente. Suivez-le avec sudo apt install -f si les problèmes de dépendance persistent.

Dépannage

dpkg signale des problèmes de dépendance
dpkg installe le fichier de package que vous lui avez fourni, mais il ne télécharge pas les dépendances manquantes. Courir sudo apt install -f pour installer les packages requis et terminer la configuration en attente.

Une opération de package a été interrompue

Si une mise à jour ou une installation s’est arrêtée avant la fin de la configuration, exécutez sudo dpkg --configure -a. Cela reprend les scripts de configuration de package en attente.

dpkg ne trouve pas de paquet

Utilisez le nom du package installé, pas le .deb nom de fichier. Courir dpkg -l 'pattern*' pour trouver les packages installés correspondants, puis utilisez ce nom de package avec des commandes telles que dpkg -L, dpkg -sou sudo dpkg -r.

Référence rapide

Pour une référence rapide imprimable, consultez l’aide-mémoire dpkg .

Commande Description
dpkg -i pkg.deb Installer un fichier .deb local
dpkg -r package Supprimer un paquet, conserver la configuration
dpkg -P package Purger un package et sa configuration
dpkg -l Lister tous les packages installés
dpkg -l 'pattern*' Filtrer les packages installés
dpkg -L package Lister les fichiers installés par un package
dpkg -S /path/to/file Rechercher quel package possède un fichier
dpkg -s package Afficher l’état et les détails du colis
dpkg --info pkg.deb Inspecter un fichier .deb
dpkg --contents pkg.deb Lister les fichiers dans un .deb
dpkg -x pkg.deb /dir Extraire un .deb sans installer
dpkg --get-selections Exporter la liste des packages installés
dpkg-reconfigure package Réexécuter la configuration du package
dpkg --configure -a Réparer les installations incomplètes

Conclusion

dpkg est le fondement de la gestion des paquets sur les systèmes basés sur Debian. Pour les installations et mises à jour quotidiennes à partir des référentiels, apt est le meilleur outil car il résout automatiquement les dépendances. Atteindre dpkg directement lorsque vous devez installer un .deb fichier à partir du disque, auditez le package installé ou diagnostiquez l’état d’un package défectueux.