Installé avec le paquet dpkg
Voir aussi : dpkg-reconfigure, apt-get, gdebi
Remarques
- Attention, dpkg ne gère pas les dépendances, il ne fait qu’informer sur les fichiers requis.
- Pour un gestionnaire de paquets gérant les dépendances, utiliser gdebi
- Sinon utiliser apt-get install -f après la commande dpkg -i package.deb
Afficher la version de la commande dpkg
dpkg --version
ou
apt-cache policy dkpg
Téléchargement du paquet utilisé pour les tests
Il s’agit du paquet console-data permettant de définir la disposition du clavier.
# apt-get download console-data Réception de : 1 http://ftp.fr.debian.org/debian/ jessie/main console-data all 2:1.12-5 [1 150 kB] 1 150 ko réceptionnés en 1s (620 ko/s) # ls console-data_2%3a1.12-5_all.deb
Mode simulation (dry-run)
dpkg --dry-run [...]
ou
dpkg --simulate [...]
ou
dpkg --no-act [...]
Installer un paquet .deb
dpkg -i package.deb
ex :
# dpkg -i console-data_2%3a1.12-5_all.deb
Sélection du paquet console-data précédemment désélectionné.
(Lecture de la base de données... 182842 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de console-data_2%3a1.12-5_all.deb ...
Dépaquetage de console-data (2:1.12-5) ...
Paramétrage de console-data (2:1.12-5) ...
Installer un ensemble de packages contenu dans un répertoire
dpkg -R directory/
Supprimer un package (sauf fichiers de configuration)
dpkg -r package
Ne supprimera que le paquet cité et non ses dépendances.
ex :
# dpkg -r console-data
(Lecture de la base de données... 183494 fichiers et répertoires déjà installés.)
Suppression de console-data (2:1.12-5) ...
Désinstallera uniquement console-data et non sa dépendance console-common.
Supprimer un package (sauf fichiers de configuration) en le déconfigurant
dpkg -B -r package
Ne supprimera que le paquet cité et non ses dépendances.
Ses fichiers de configurations seront maintenus mais reconfigurés à leur état initial.
Supprimer complètement un package (y compris fichiers de configuration)
dpkg -P package
Ne supprimera que le paquet cité et non ses dépendances.
ex :
# dpkg -P console-data
(Lecture de la base de données... 183494 fichiers et répertoires déjà installés.)
Suppression de console-data (2:1.12-5) ...
Purge des fichiers de configuration de console-data (2:1.12-5) ...
Désinstallera uniquement console-data et non sa dépendance console-common.
Lister les paquets installés sous forme détaillée
dpkg -l [pattern]
Affichera, pour chaque paquet installé, son status, son nom, sa version, son architecture et sa description.
ex :
[...] ii colordiff 1.0.13-1 all tool to colorize 'diff' output rc console-common 0.7.88 all basic infrastructure for text console configuration rc console-data 2:1.12-5 all keymaps, fonts, charset maps, fallback tables for 'kbd'. ii console-setup 1.123 all console font and keymap setup program ii console-setup-linux 1.123 all Linux specific part of console-setup [...]
La signification de la première colonne (statut) :
- First letter -> desired package state (« selection state »):
- u … unknown
- i … install
- r … remove/deinstall
- p … purge (remove including config files)
- h … hold
- Second letter -> current package state:
- n … not-installed
- i … installed
- c … config-files (only the config files are installed)
- u … unpacked
- f … half-configured (configuration failed for some reason)
- h … half-installed (installation failed for some reason)
- w … triggers-awaited (package is waiting for a trigger from another package)
- t … triggers-pending (package has been triggered)
- Third letter -> error state (you normally shouldn’t see a thrid letter):
- r … reinst-required (package broken, reinstallation required)
Lister les paquets installés sous forme synthétique
dpkg --get-selections
ex :
[...] colordiff install console-common deinstall console-data deinstall console-setup install console-setup-linux install [...]
Installer une liste de packages d’une machine A sur une machine B
Création de la liste sur la machine A :
dpkg --get-selections > listing.pkg
Mise à jour de l’information sur les paquets disponibles sur la machine B :
dselect * 1. [M]ise à j Mise à jour de l'information sur les paquets disponibles, si possible.
Définition de la liste des paquets à installer sur la machine B :
dpkg --set-selections < listing.pkg
Installation des paquets sur la machine B :
apt-get dselect-upgrade
Trouver à quel package installé appartient un fichier particulier
dpkg -S filename
Proche de :
apt-file search -x ^filename$
Sauf que apt-file recherchera également dans sa base de données locale parmi des paquets non installés.
ex :
# dpkg -S /usr/bin/tree tree: /usr/bin/tree # dpkg -S /usr/bin/easytag dpkg-query: aucun chemin ne correspond à /usr/bin/easytag # apt-file search -x ^/usr/bin/easytag$ easytag: /usr/bin/easytag
Lister les fichiers contenus dans un paquet installé
dpkg -L package
Proche de :
apt-file list package
Sauf que apt-file recherchera également dans sa base de données locale parmi des paquets non installés.
ex :
# dpkg -L tree
/.
/usr
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/tree.1.gz
/usr/share/doc
/usr/share/doc/tree
/usr/share/doc/tree/changelog.Debian.gz
/usr/share/doc/tree/README.gz
/usr/share/doc/tree/changelog.gz
/usr/share/doc/tree/copyright
/usr/share/doc/tree/TODO
/usr/bin
/usr/bin/tree
Lister les fichiers contenus dans un paquet .deb
dpkg -c package.deb
ex :
# dpkg -c console-data_2%3a1.12-5_all.deb
drwxr-xr-x root/root 0 2014-06-19 14:28 ./
drwxr-xr-x root/root 0 2014-06-19 14:28 ./usr/
drwxr-xr-x root/root 0 2014-06-19 14:28 ./usr/share/
drwxr-xr-x root/root 0 2014-06-19 14:28 ./usr/share/locale/
drwxr-xr-x root/root 0 2014-06-19 14:28 ./usr/share/locale/sr/
drwxr-xr-x root/root 0 2014-06-19 14:28 ./usr/share/locale/sr/LC_MESSAGES/
-rw-r--r-- root/root 3939 2014-06-19 14:28 ./usr/share/locale/sr/LC_MESSAGES/console-data.mo
drwxr-xr-x root/root 0 2014-06-19 14:28 ./usr/share/locale/it/
drwxr-xr-x root/root 0 2014-06-19 14:28 ./usr/share/locale/it/LC_MESSAGES/
-rw-r--r-- root/root 3325 2014-06-19 14:28 ./usr/share/locale/it/LC_MESSAGES/console-data.mo
[...]
Afficher les informations détaillées d’un paquet installé
dpkg -s package
ex :
# dpkg -s tree Package: tree Status: install ok installed Priority: optional Section: utils Installed-Size: 134 Maintainer: Florian ErnstArchitecture: i386 Version: 1.7.0-3 Depends: libc6 (>= 2.4) Description: displays an indented directory tree, in color Tree is a recursive directory listing command that produces a depth indented listing of files, which is colorized ala dircolors if the LS_COLORS environment variable is set and output is to tty. Homepage: http://mama.indstate.edu/users/ice/tree/
Afficher les informations détaillées d’un paquet .deb
dpkg -I package.deb
ex :
# dpkg -I console-data_2%3a1.12-5_all.deb nouveau paquet Debian, version 2.0. taille 1149680 octets : archive de contrôle=188319 octets. 29964 octets, 1285 lignes * config #!/usr/bin/perl 892 octets, 21 lignes control 48610 octets, 632 lignes md5sums 726 octets, 27 lignes * postinst #!/bin/sh 206 octets, 8 lignes * postrm #!/bin/sh 431271 octets, 2848 lignes templates Package: console-data Version: 2:1.12-5 Architecture: all Maintainer: Alastair McKinstryInstalled-Size: 2444 Depends: debconf (>= 0.5) | debconf-2.0 Recommends: kbd (>= 0.99-12), console-common (>= 0.7.62) Suggests: unicode-data Conflicts: console-tools-data, kbd (<= 0.96a-1), kbd-data Replaces: console-tools-data Provides: console-keymaps, console-tools-data Built-Using: unicode-data (= 7.0-1) Section: utils Priority: optional Description: keymaps, fonts, charset maps, fallback tables for 'kbd'. This package provides the standard data files for the Linux console tools. . This includes keyboard definitions (keymaps), console fonts for various encodings, maps defining the standard charsets for use by text applications, and fallback tables allowing to approximate an unavailable character's glyph with the glyph of another character in the current font.
Dépaqueter un paquet .deb sans le configurer
dpkg --unpack package.deb
ex :
# dpkg -l | grep console-data # dpkg --unpack console-data_2%3a1.12-5_all.deb Sélection du paquet console-data précédemment désélectionné. (Lecture de la base de données... 182952 fichiers et répertoires déjà installés.) Préparation du dépaquetage de console-data_2%3a1.12-5_all.deb ... Dépaquetage de console-data (2:1.12-5) ... # dpkg -l | grep console-data iU console-data 2:1.12-5 all keymaps, fonts, charset maps, fallback tables for 'kbd'.
Configurer un paquet dépaqueté
dpkg --configure package
ex :
# dpkg -l | grep console-data iU console-data 2:1.12-5 all keymaps, fonts, charset maps, fallback tables for 'kbd'. # dpkg --configure console-data Paramétrage de console-data (2:1.12-5) ... # dpkg -l | grep console-data ii console-data 2:1.12-5 all keymaps, fonts, charset maps, fallback tables for 'kbd'.
Reconfigurer un paquet installé (dépaqueté et configuré)
dpkg-reconfigure package
Savoir si un paquet est installé
dpkg --get-selections | grep -w ^package[^-]
ex :
# dpkg --get-selections | grep -w ^console-data[^-]
console-data install
Tester si un programme est installé et l’installer le cas échéant
[[ -z $(dpkg --get-selections | grep -w ^package[^-]) ]] && apt-get install package
ou
[[ -z `dpkg --get-selections | grep -w ^package[^-]` ]] && apt-get install package
ex :
# [[ -z $(dpkg --get-selections | grep -w ^console-data[^-]) ]] && apt-get install console-data
Ne pas installer un paquet si une version plus récente est déjà installée
dpkg -G -i package.deb
ou
dpkg --refuse-downgrade -i package.deb
Ne pas installer un paquet si la même version de ce dernier est déjà installée
dpkg -E -i package.deb
Vérifier l'intégrité des paquets installés
Tout d'abord une vérification de la base de données des paquets.
Puis une vérification de l'intégrité des paquets à partir des métadonnées de la base de données.
dpkg -C dpkg -V
ex :
# dpkg -C # dpkg -V ??5?????? c /etc/sudoers ??5?????? c /etc/bash.bashrc ??5?????? c /etc/host.conf
Les 3 fichiers ci-dessus ne passent pas le test du check MD5 car ces fichiers de configuration ont été modifiés depuis leur version initiale.
Extraire le contenu d'un paquet Debian
Extraction dans un dossier de sortie, sans affichage des fichiers extraits sur la sortie standard.
dpkg -x package.deb directory/
Extraction dans un dossier de sortie, avec affichage des fichiers extraits sur la sortie standard.
dpkg -X package.deb directory/
ex :
# dpkg -X htop_2.0.2-1_amd64.deb sortie/ ./ ./usr/ ./usr/bin/ ./usr/bin/htop ./usr/share/ ./usr/share/applications/ ./usr/share/applications/htop.desktop ./usr/share/doc/ ./usr/share/doc/htop/ ./usr/share/doc/htop/AUTHORS ./usr/share/doc/htop/README ./usr/share/doc/htop/changelog.Debian.gz ./usr/share/doc/htop/changelog.gz ./usr/share/doc/htop/copyright ./usr/share/man/ ./usr/share/man/man1/ ./usr/share/man/man1/htop.1.gz ./usr/share/pixmaps/ ./usr/share/pixmaps/htop.png # tree sortie/ sortie/ └── usr ├── bin │ └── htop └── share ├── applications │ └── htop.desktop ├── doc │ └── htop │ ├── AUTHORS │ ├── changelog.Debian.gz │ ├── changelog.gz │ ├── copyright │ └── README ├── man │ └── man1 │ └── htop.1.gz └── pixmaps └── htop.png 9 directories, 9 files