368 votes

Comment lister les fichiers d'un paquet Debian sans l'installer ?

Cette commande ne peut lister que le contenu des paquets installés,

dpkg -L PACKAGENAME

mais comment lister le contenu d'un paquet non installé, pour prévisualiser/examiner le paquet ?

0 votes

Similaire sur Ubuntu : askubuntu.com/questions/32507/

9voto

George Vasiliou Points 201

Pour tous ceux qui cherchent encore ce problème en janvier 2017, il est possible de faire des choses sympas avec les versions récentes d'apt et dpkg dans Debian 8.5 sans télécharger quoi que ce soit.

Liste du contenu du fichier Deb sans téléchargement :

Trouvez d'abord l'url complète du fichier deb :

root@debian:apt-get --print-uris download yade
'http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb' yade_2016.06a-7_amd64.deb 1621148 SHA256:26c0d84484a92ae9c2828edaa63243eb764378d79191149970926aa3ec40cdd4

PS : le commutateur --print-uris imprime l'url du paquet deb mais deb n'est pas téléchargé.

Affichez ensuite le contenu du paquet deb sans le télécharger :

root@debian:curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb" |dpkg-deb -c /dev/stdin
drwxr-xr-x root/root         0 2016-12-10 22:18 ./
drwxr-xr-x root/root         0 2016-12-10 22:18 ./usr/
drwxr-xr-x root/root         0 2016-12-10 22:18 ./usr/bin/
-rwxr-xr-x root/root     13184 2016-12-10 22:18 ./usr/bin/yade
.........................more files listed bellow ......................

PS : Le même résultat peut être obtenu avec

root@debian:dpkg -c <(curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb")

Extrayez un fichier du paquet deb ci-dessus, sans téléchargement.
Par exemple, nous voulons lire la page de manuel du paquet yade sans installer ce paquet et sans même télécharger le paquet deb.

Nom de fichier de la page de manuel dans le paquet deb comme conseillé par dpkg -c es ./usr/share/man/man1/yade.1.gz

Pour lire la page de manuel à la volée :

root@debian:curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb" |dpkg-deb --fsys-tarfile /dev/stdin |tar -xO ./usr/share/man/man1/yade.1.gz |man /dev/stdin

La page de manuel s'affiche correctement avec l'application man.

PS : Les tuyaux ci-dessus ne fonctionnent pas avec la commande ar.

root@debian:apt --version --> apt 1.4~beta2 (amd64)
root@debian:dpkg --version --> Debian 'dpkg' package management program version 1.18.18 (amd64).
root@debian:man --version --> man 2.7.6.1
root@debian:tar --version --> tar (GNU tar) 1.29

5voto

Peter Johnson Points 1156

Essayez :

apt-get download packages-name
dpkg --contents *.deb

1voto

kenorb Points 22006

Il semble que ce ne soit pas possible avant de l'installer d'abord ou d'extraire la liste à partir de la page d'accueil. .deb fichier.

Essayez la commande suivante :

dpkg --contents <(curl -s $(apt-get install --yes --no-download --reinstall --print-uris language-pack-en | tail -n1 | grep -o "http[^']\+"))

Changement language-pack-en avec le nom de votre paquet.

Il se lit comme suit .deb extrait via curl et exécuter dpkg --contents FILE sur elle.


Vous pouvez également vérifier le contenu sans télécharger le fichier du paquet.

Donc si vous connaissez l'URL de .deb la commande Shell suivante listera tous les fichiers du paquet :

dpkg -c <(curl -sL "http://httpredir.debian.org/debian/pool/main/a/avis/avis_1.2.2-4_all.deb")

Paramètres Curl : -s - silencieux, -L - suivre les liens déplacés.

Si vous ne connaissez pas l'URL, récupérez-la par : apt --print-uris par exemple

apt --print-uris install avis | grep avis

1voto

Digger Points 131

Bien qu'il ne s'agisse pas exactement d'un moyen de lister directement les fichiers d'un paquet deb, vous pouvez vous rendre à l'adresse suivante https://www.debian.org/distrib/packages pour rechercher le forfait souhaité, puis vers le bas de la page suivante, cliquez sur le bouton liste de fichiers lien trouvé par rapport à l'architecture souhaitée. La page qui suit vous donne une liste des fichiers que l'installation de ce paquet placera dans votre système.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X