Réponses:
dpkg -c
(ou --contents
) répertorie le contenu d'un fichier de package .deb (il s'agit d'un frontal pour dpkg-deb
.)
dpkg -c package_file.deb
Pour travailler directement avec les noms de paquet plutôt que les fichiers de paquet, vous pouvez utiliser apt-file
. (Vous devrez peut-être d'abord installer le apt-file
paquet.)
sudo apt-file update
apt-file list package_name
Comme indiqué dans le premier commentaire, apt-file répertorie le contenu des packages de vos référentiels Apt déjà configurés. Peu importe qu'un paquet particulier soit installé ou non.
sudo apt-file update
), et ne répertorie que le contenu des packages de vos référentiels Apt déjà configurés.
dpkg -c
agréable!
.deb
fichier que vous avez téléchargé séparément. La question initiale est toutefois ambiguë.
Utilisez --contents
au lieu de -L
:
dpkg --contents PACKAGENAME
Utilisé de cette manière, il dpkg
sert de front-end dpkg-deb
, utilisez donc man dpkg-deb
pour voir toutes les options.
Vous pouvez également utiliser un navigateur d'archives pour afficher le contenu du paquet.
dpkg --contents google-chrome-stable_current_amd64.deb
elle répertorie tous les fichiers à installer (principalement /opt/google/chrome
), dont aucun n’est actuellement installé sur mon système au moment où je tape ceci. (J'utilise Xubuntu 11.10 si cela compte.)
dpkg --contents
vous permettra de regarder le paquet désinstallé. Si le .deb n'est pas encore sur votre système, faites
apt-get --download-only install pkgname
Le paquet sera téléchargé /var/cache/apt/archives
mais ne sera pas installé.
Le meilleur moyen serait de parcourir directement le référentiel de paquets:
http://packages.debian.org/[distro name]/all/[package name]/filelist
Exemple:
http://packages.debian.org/wheezy/all/transmission-common/filelist
lynx -dump -nolist http://packages.debian.org/wheezy/all/transmission-common/filelist | grep ^/
(à condition que vous ayez lynx
installé).
J'ai pris l'idée http de @ baldoz et l'ai généralisée pour Ubuntu et Debian, en ai ajouté un peu sed
et je l'ai enveloppée dans une ligne unique avec la fonction bash:
function deb_list () { curl -s $(lsb_release -si | sed -e 's Ubuntu https://packages.ubuntu.com ' -e 's Debian https://packages.debian.org ')/$(lsb_release -sc)/all/$1/filelist | sed -n -e '/<pre>/,/<\/pre>/p' | sed -e 's/<[^>]\+>//g' -e '/^$/d'; }
Usage:
$ deb_list curl
/usr/bin/curl
/usr/share/doc/curl/changelog.Debian.gz
/usr/share/doc/curl/copyright
/usr/share/doc/curl/NEWS.Debian.gz
/usr/share/man/man1/curl.1.gz
Même fonction sur plusieurs lignes:
function deb_list () {
curl -s $(lsb_release -si \
| sed -e 's Ubuntu https://packages.ubuntu.com ' \
-e 's Debian https://packages.debian.org '
)/$(lsb_release -sc)/all/$1/filelist \
| sed -n -e '/<pre>/,/<\/pre>/p' \
| sed -e 's/<[^>]\+>//g' -e '/^$/d';
}
A expliqué:
https://packages.ubuntu.com
ouhttps://packages.debian.org
https://packages.ubuntu.com/trusty/all/curl/filelist
<pre>
et </pre>
); la seconde supprime les balises HTML; troisième supprime les lignes vides.Remarque: Il ne recherche pas les PPA, les sources d'apt autres, mais uniquement les paquets officiels disponibles pour la publication de debian / ubuntu que vous utilisez.
Pour toutes les personnes qui pourraient encore googler ce problème en janvier 2017, vous pouvez avoir des informations intéressantes sur les versions récentes d'apt et de dpkg dans Debian 8.5 sans rien télécharger.
Liste le contenu du fichier Deb sans téléchargement:
Commencez par localiser 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: L'option --print-uris affiche l'URL du paquet deb, mais deb n'est pas téléchargé.
Puis affichez 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 du fichier de page man package intérieur deb comme conseillé par dpkg -c
est./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
Il semble que ce n’est pas possible avant de l’installer ou d’extraire la liste du .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[^']\+"))
Changez language-pack-en
avec le nom de votre paquet.
Il lit essentiellement le .deb
fichier extrait via curl
et s'exécute dpkg --contents FILE
dessus.
Vous pouvez également vérifier le contenu sans télécharger le fichier de package.
Donc, si vous connaissez l'URL du .deb
fichier, la commande suivante va lister 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
- suivez les liens déplacés.
Si vous ne connaissez pas l'URL, chercher par: apt --print-uris
, par exemple
apt --print-uris install avis | grep avis