Dpkg
Dpkg (Debian Package) est un système de gestion de paquets dans Debian et les distributions Linux basées sur Debian comme Ubuntu.
Dpkg est en fait un utilitaire de ligne de commande de bas niveau pour gérer les packages. C'est différent des outils comme apt-get et gdebi.
Apt-get et Gdebi sont des outils plus avancés qui peuvent résoudre les dépendances et les installer afin que le package principal fonctionne correctement.
Dans ce rapide didacticiel, nous examinerons quelques exemples de base de la commande dpkg et comment l'utiliser pour gérer les packages sur votre système.
La commande dpkg fonctionne sur des systèmes tels que Debian, Ubuntu, Linux Mint et Elementary OS.
Exemples de commandes Dpkg
1. Lister tous les packages installés
Cette commande listera tous les packages installés. Les informations doivent être imprimées sous forme de tableau avec des colonnes pour le nom, la version, l'architecture et la description. La liste doit être énorme et vous pouvez faire défiler vers le haut et vers le bas.
$ dpkg -l 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 accountsservice 0.6.55-0ubuntu10 amd64 query and manipulate user account information ii accountwizard 4:19.04.3-0ubuntu1 amd64 wizard for KDE PIM applications account setup ii acl 2.2.53-4 amd64 access control list - utilities ii acpi-support 0.143 amd64 scripts for handling many ACPI events
2. Rechercher les packages installés
Vous pouvez rechercher dans la liste des packages installés une entrée particulière et voir si elle est installée ou non.
Rechercher les packages installés pour 'apache'
$ dpkg --get-selections | grep 'apache' apache2 install apache2-mpm-prefork install apache2-suexec install apache2-utils install apache2.2-bin install apache2.2-common install libapache-pom-java install libapache2-mod-fcgid install libapache2-mod-php5 install
Ou utilisez la même option l pour rechercher les packages installés. C'est en fait plus facile.
$ dpkg -l php* 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 +++-===============================-====================-====================-==================================================================== un php-doc <none> (no description available) un php-imlib <none> (no description available) un php-kolab-filter <none> (no description available) un php-openid <none> (no description available) un php-pear <none> (no description available) un php-radius-legacy <none> (no description available) ii php5 5.4.6-1ubuntu1.2 all server-side, HTML-embedded scripting language (metapackage) ii php5-cgi 5.4.6-1ubuntu1.2 amd64 server-side, HTML-embedded scripting language (CGI binary) ii php5-cli 5.4.6-1ubuntu1.2 amd64 command-line interpreter for the php5 scripting language ii php5-common 5.4.6-1ubuntu1.2 amd64 Common files for packages built from the php5 source
3. Lister les fichiers installés par un package
Pour trouver le chemin de tous les fichiers installés par un certain paquet, utilisez l'option "L" avec dpkg
$ dpkg -L php5-cli /. /etc /etc/php5 /etc/php5/cli /usr /usr/share /usr/share/man /usr/share/man/man1 /usr/share/man/man1/php5.1.gz /usr/share/doc /usr/share/lintian /usr/share/lintian/overrides /usr/share/lintian/overrides/php5-cli /usr/lib /usr/lib/php5 /usr/lib/php5/20100525 /usr/bin /usr/bin/php5 /etc/php5/cli/conf.d /usr/share/doc/php5-cli
Plus d'exemples
dpkg -i <package.deb> Installs a Debian package file; one that you downloaded manually, for example. dpkg -c <package.deb> Lists the contents of <package.deb>, a .deb file. dpkg -I <package.deb> Extracts package information from <package.deb>, a .deb file. dpkg -r <package> Removes an installed package named <package> dpkg -P <package> Purges an installed package named <package>. The difference between remove and purge is that while remove only deletes data and executables, purge also deletes all configuration files in addition. dpkg -L <package> Gives a listing of all the files installed by <package>. See also dpkg -c for checking the contents of a .deb file. dpkg -s <package> Shows information on the installed package <package>. See also apt-cache show for viewing package information in the Debian archive and dpkg -I for viewing package information extracted from a .deb file. dpkg-reconfigure <package> Reconfigures an installed package, if it uses debconf (debconf provides that consistent configuration interface for package installation). You can reconfigure debconf itself if you want to change the front-end or priority of questions asked. For example, to reconfigure debconf with the dialog front-end, you simply run: dpkg-reconfigure --frontend=dialog debconf echo ``<package> hold'' | dpkg --set-selections Put <package> on hold (command line method) dpkg --get-selections ``<package>'' Get the current status of <package> (command line method) dpkg -S <file> Searches for <file> in package database, telling you which packages have that file in them.
Reconfigurer les packages installés
Les packages peuvent être reconfigurés à l'aide de la commande dpkg-reconfigure.
Par exemple reconfigurer phpmyadmin :
$ dpkg-reconfigure phpmyadmin
Conclusion
Ce sont quelques exemples de base de la commande dpkg. Dans la plupart des cas, vous n'utiliserez probablement pas le package dpkg pour la gestion des packages car il s'agit d'une commande de bas niveau et ne fournit que les fonctionnalités de base d'installation ou de suppression de packages .deb.
Il ne gère pas les référentiels et ne trouve pas et n'installe pas les dépendances pour que le package principal fonctionne correctement.
Les autres commandes telles que apt-get, aptitude, apt, gdebi doivent être utilisées pour installer et maintenir les packages sur votre système.
Si vous avez des commentaires ou des questions, faites-le nous savoir dans les commentaires ci-dessous.