
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.