====== dpkg et dpkg-deb ======
* Objet : dpkg et dpkg-deb, Utilisation
* Niveau requis :{{tag>avisé}}
* Commentaires : // outil de manipulation des paquets //
* Suivi : {{tag>à-placer}}
* Création par [[user>bract]] le 10/07/2011
* Testé par lagrenouille le 28/04/2023
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=3133 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
{{/file-R891fd0208516f909d0c92437ad873b89.png?150}}
===== Présentation =====
**dpkg** est un outil de manipulation des paquets //de niveau intermédiaire//, il permet entre autre la création, l'installation et la désinstallation de paquets sur Debian.
Il se contrôle entièrement en ligne de commande et contrairement à apt-get ou aptitude **il ne peut pas installer de paquet en provenance de dépôts((Voir : [[:doc:systeme:apt:]])) internet** et **ne gére pas automatiquement les dépendances** entre les paquets. \\
À cause de cette dernière caractéristique, il ne faut pas l'utiliser **en temps normal** pour installer et désinstaller des paquets.
Si dans une utilisation normale, on doit privilégier l'utilisation d'un gestionnaire de paquets (aptitude, apt, synaptic), la commande dpkg est bien souvent le seul moyen d'installer des paquets qui ne sont pas présents dans les dépôts Debian et que l'on a téléchargés ailleurs.
**Petit rappel :** il faut vraiment avoir besoin d'un paquet qui ne se trouve pas sur un dépôt Debian pour vouloir l'installer et savoir ce que l'on fait. Il en va de l'intégrité et de la stabilité de sa distribution.
===== Reconfigurer vos locales =====
dpkg-reconfigure locales -plow
Et ne cocher que celles qui vous intéressent.
===== Option -l =====
L'option -l liste tous les paquets installés avec beaucoup d'informations. \\
Pour faire une recherche spécifique sur un paquet, par exemple firefox-esr, utiliser [[doc:systeme:grep|grep]] ainsi :
dpkg -l | grep firefox-esr
===== Option -S =====
Pour rechercher de quel paquet provient un fichier :
dpkg -S fichier
**Exemple :**
dpkg -S /usr/bin/glxinfo
Indiquera de quel paquet ce fichier provient :
mesa-utils: /usr/bin/glxinfo
Donc du paquet **mesa-utils**.
Le paquet [[:doc:systeme:apt:apt-file|apt-file]] est capable de réaliser la même fonction
===== Installer un paquet .deb =====
Comme nous l'avons mentionné, dpkg ne gère pas les dépendances. Aussi, la plupart du temps, l'installation d'un paquet ne se limite pas uniquement à ce dernier. Il faut installer tous les paquets qui dépendant l'un de l'autre.
Prenons un cas simple soit vouloir installer un paquet, paquet1, qui a une seule autre dépendance, paquet2. On commence donc par télécharger les deux paquets en question dans un répertoire donné. Une fois cela fait, on ouvre un terminal et on se place dans le répertoire où se trouvent nos deux paquets .deb. Il ne reste plus alors qu'à taper, en root, la commande suivante :
dpkg -i *.deb
et les paquets seront installés.
Si certains .deb sont dans des sous-répertoires, descendez dans ces sous-répertoire et relancer
dpkg -i *.deb.
Effacer le répertoire de téléchargement des paquets .deb, il ne sert plus à rien.
==== Astuce : ====
Cette ligne de commande traite en une seule passe les .deb du répertoire ''/dossier/contenant/les/paquets'' ainsi que ceux des sous-répertoires suivants :
dpkg -R -i /dossier/contenant/les/paquets/
===== Extraire un .deb =====
On peut extraire un **.deb** grace à la commande :
dpkg -x /mon/paquet.deb /répertoire/cible
===== Option --get-selections =====
Cette option liste l'ensemble des paquetages installés.
Une utilisation intéressante de ce listage, c'est de créer une liste d'installation reproductible sur ce pc comme sur d'autres en la récupérant aussi sur un support amovible !
==== Créer la liste des paquetages installés ====
dpkg --get-selections > /chemin/de/mes_paquetages
Remplacer :
/chemin/de/
par le chemin //réel// sur votre machine. ;-)
==== Récupérer la liste ====
dpkg --set-selections < /chemin/de/mes_paquetages
==== Installer la liste ====
apt-get dselect-upgrade
**Nota :**
La commande :
dpkg -l
retourne bien la liste des paquets installés mais avec plus d'informations, cependant il n'est pas possible de l'utiliser pour installer une liste de paquets.
===== aptitude-create =====
Voir :
* [[aptitude#aptitude-create | aptitude-create]] Créer la liste des paquets installés.
===== Liens et remerciement =====
Merci à ce site pour toutes les informations pertinentes qu'il propose :
* http://www.commentcamarche.net/faq/877-debian-liste-des-paquetages-packages-installes
Et à **tux12** de nous l'avoir rappelé [[https://debian-facile.org/viewtopic.php?pid=24382#p24382|sur le forum]].