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-filepaquet.)
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.
apt-file doit également être mis à jour ( sudo apt-file update), et ne répertorie que le contenu des packages de vos référentiels Apt déjà configurés.
Quack Quichotte
1
@quackquixote: Dans Ubuntu 12.04, c'est automatique
confiq,
1
dpkg -cagréable!
d -_- b
2
La réponse Apt-file suppose que votre paquet provient d'un référentiel configuré au lieu d'un .debfichier que vous avez téléchargé séparément. La question initiale est toutefois ambiguë.
Zoredache
5
@confiq, pas par mes tests. Je suis sous 12.04.4 et il est toujours écrit "E: Le cache est vide. Vous devez d'abord lancer 'apt-file update'."
Matthew Flaschen
58
Utilisez --contentsau lieu de -L:
dpkg --contents PACKAGENAME
Utilisé de cette manière, il dpkgsert de front-end dpkg-deb, utilisez donc man dpkg-debpour voir toutes les options.
Vous pouvez également utiliser un navigateur d'archives pour afficher le contenu du paquet.
Cela ne fonctionne que si je l'ai d'abord installé puis désinstallé.
Xiè Jìléi
3
cela devrait fonctionner correctement si vous lui donnez un fichier .deb en argument (au lieu de PACKAGENAME, donnez-lui PACKAGE-DEB-FILE).
Quack Quichotte
3
Cette réponse est fausse. Vous devez d'abord installer le paquet. Si vous ne l'avez pas installé, vous ne disposez pas d'un fichier .deb.
Neil
Cette commande fonctionne pour moi. Par exemple, j'ai téléchargé google-chrome-stable_current_amd64.deb de Google. Puis la commande a été émise: dpkg --contents google-chrome-stable_current_amd64.debelle 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.)
quux00
10
@ Neil, la réponse n'est pas fausse. Ce n’est pas parce que vous avez un fichier deb qu’il est installé. apt-file a besoin de l'intégralité du paquet build-essential. OO
d -_ b b
21
dpkg --contentsvous 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/archivesmais ne sera pas installé.
Puis-je simplement lister le contenu sans le télécharger? Si la connexion est très lente et si le package est trop volumineux pour être téléchargé. Si le fichier .deb a un en-tête de fichier contenant la liste de contenu, je suppose que le téléchargement du package complet n'est peut-être pas nécessaire. Est-ce possible?
Xiè Jìléi
13
Le meilleur moyen serait de parcourir directement le référentiel de paquets:
Et pour éviter de quitter le terminal, vous pouvez utiliser par exemple lynx -dump -nolist http://packages.debian.org/wheezy/all/transmission-common/filelist | grep ^/(à condition que vous ayez lynxinstallé).
Ruslan
8
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 sedet 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'; }
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é:
lsb_release -si retourne "Ubuntu" ou "Debian", remplace-le par l'URL de base https://packages.ubuntu.comouhttps://packages.debian.org
lsb_Release -sc retourne le nom de code (par exemple, "trusty", "sid", etc.) qui permet de construire l'URL complète: https://packages.ubuntu.com/trusty/all/curl/filelist
Récupérez cette URL avec curl et dirigez le code HTML via trois commandes sed. Tout d’abord, ne capture que la liste des fichiers (entre les balises <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.
@ Anwar, j'avais d'abord utilisé Ruby parce que j'étais paresseux et que les regex multilignes aspiraient sed / awk / grep. Mais je l'ai réécrit pour utiliser deux commandes sed, pas besoin de Ruby.
notpeter
Agréable! Voici la réponse que je cherchais
Anwar
4
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:
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 -cest./usr/share/man/man1/yade.1.gz
Réponses:
dpkg -c
(ou--contents
) répertorie le contenu d'un fichier de package .deb (il s'agit d'un frontal pourdpkg-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 leapt-file
paquet.)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.
la source
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
:Utilisé de cette manière, il
dpkg
sert de front-enddpkg-deb
, utilisez doncman dpkg-deb
pour voir toutes les options.Vous pouvez également utiliser un navigateur d'archives pour afficher le contenu du paquet.
la source
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, faitesLe paquet sera téléchargé
/var/cache/apt/archives
mais ne sera pas installé.la source
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
la source
lynx -dump -nolist http://packages.debian.org/wheezy/all/transmission-common/filelist | grep ^/
(à condition que vous ayezlynx
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:Usage:
Même fonction sur plusieurs lignes:
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.
la source
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:
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:
PS: le même résultat peut être obtenu avec
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:
La page de manuel s’affiche correctement avec l’application man.
PS: Les tuyaux ci-dessus ne fonctionnent pas avec la commande ar.
la source
Essayer:
la source
Il semble que ce n’est pas possible avant de l’installer ou d’extraire la liste du
.deb
fichier.Essayez la commande suivante:
Changez
language-pack-en
avec le nom de votre paquet.Il lit essentiellement le
.deb
fichier extrait viacurl
et s'exécutedpkg --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: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 exemplela source