Comment lister le contenu d'un paquet en utilisant YUM?

Je sais comment utiliser rpm liste le contenu d'un paquet (rpm -qpil package.rpm). Cependant, cela nécessite de connaître l'emplacement de la .fichier rpm sur le système de fichiers. Une solution plus élégante serait d'utiliser le gestionnaire de paquets, qui dans mon cas est miam. Comment YUM peut-il être utilisé pour y parvenir?

281
demandé sur Lorin Hochstein 2008-09-19 21:49:27

7 réponses

Il y a un paquet appelé yum-utils qui s'appuie sur YUM et contient un outil appelé repoquery qui peut faire cela.

$ repoquery --help | grep -E "list\ files" 
  -l, --list            list files in this package/group

Combiné en un seul exemple:

$ repoquery -l time
/usr/bin/time
/usr/share/doc/time-1.7
/usr/share/doc/time-1.7/COPYING
/usr/share/doc/time-1.7/NEWS
/usr/share/doc/time-1.7/README
/usr/share/info/time.info.gz

Sur au moins un système RH, avec rpm v4. 8. 0, yum v3.2. 29 et repoquery v0.0.11, repoquery -l rpm n'imprime rien.

Si vous rencontrez ce problème, essayez d'ajouter de la --installed drapeau: repoquery --installed -l rpm.


DNF Mise à jour:

Utiliser dnf au lieu de yum-utils, utilisez la commande suivante:

$ dnf repoquery -l time
/usr/bin/time
/usr/share/doc/time-1.7
/usr/share/doc/time-1.7/COPYING
/usr/share/doc/time-1.7/NEWS
/usr/share/doc/time-1.7/README
/usr/share/info/time.info.gz
398
répondu Thomas Vander Stichele 2017-07-11 22:20:19
rpm -ql [packageName]

Exemple

# rpm -ql php-fpm

/etc/php-fpm.conf
/etc/php-fpm.d
/etc/php-fpm.d/www.conf
/etc/sysconfig/php-fpm
...
/run/php-fpm
/usr/lib/systemd/system/php-fpm.service
/usr/sbin/php-fpm
/usr/share/doc/php-fpm-5.6.0
/usr/share/man/man8/php-fpm.8.gz
...
/var/lib/php/sessions
/var/log/php-fpm

Pas besoin d'installer yum-utils, ou pour connaître l'emplacement du fichier rpm.

131
répondu Levit 2016-06-27 07:24:42
$ yum install -y yum-utils

$ repoquery -l packagename
73
répondu Hüseyin Ozan TOK 2017-04-19 03:13:37

Je ne pense pas que vous puissiez lister le contenu d'un paquet en utilisant yum, mais si vous avez le .fichier rpm sur votre système local (comme ce sera probablement le cas pour tous les paquets installés), vous pouvez utiliser la commande rpm pour lister le contenu de ce paquet, comme ceci:

rpm -qlp /path/to/fileToList.rpm

Si vous n'avez pas le fichier de package (.rpm), mais vous avez installé le paquet, essayez ceci:

rpm -ql packageName
28
répondu Thomi 2018-02-05 10:43:13

Il y a plusieurs bonnes réponses ici, alors laissez-moi EN fournir une terrible:

: you can type in anything below, doesnt have to match anything

yum whatprovides "me with a life"

: result of the above (some liberties taken with spacing):

Loaded plugins: fastestmirror
base | 3.6 kB 00:00 
extras | 3.4 kB 00:00 
updates | 3.4 kB 00:00 
(1/4): extras/7/x86_64/primary_db | 166 kB 00:00 
(2/4): base/7/x86_64/group_gz | 155 kB 00:00 
(3/4): updates/7/x86_64/primary_db | 9.1 MB 00:04 
(4/4): base/7/x86_64/primary_db | 5.3 MB 00:05 
Determining fastest mirrors
 * base: mirrors.xmission.com
 * extras: mirrors.xmission.com
 * updates: mirrors.xmission.com
base/7/x86_64/filelists_db | 6.2 MB 00:02 
extras/7/x86_64/filelists_db | 468 kB 00:00 
updates/7/x86_64/filelists_db | 5.3 MB 00:01 
No matches found

: the key result above is that "primary_db" files were downloaded

: filelists are downloaded EVEN IF you have keepcache=0 in your yum.conf

: note you can limit this to "primary_db.sqlite" if you really want

find /var/cache/yum -name '*.sqlite'

: if you download/install a new repo, run the exact same command again
: to get the databases for the new repo

: if you know sqlite you can stop reading here

: if not heres a sample command to dump the contents

echo 'SELECT packages.name, GROUP_CONCAT(files.name, ", ") AS files FROM files JOIN packages ON (files.pkgKey = packages.pkgKey) GROUP BY packages.name LIMIT 10;' | sqlite3 -line /var/cache/yum/x86_64/7/base/gen/primary_db.sqlite 

: remove "LIMIT 10" above for the whole list

: format chosen for proof-of-concept purposes, probably can be improved a lot
3
répondu barrycarter 2016-12-01 19:17:34

Yum n'a pas son propre type de paquet. Yum fonctionne et aide à gérer les RPM. Ainsi, vous pouvez utiliser yum pour lister les RPM disponibles, puis exécuter la commande rpm-qlp pour voir le contenu de ce package.

0
répondu Haabda 2008-09-19 17:55:28

Actuellement reopquery est intégré dans dnf et yum, donc en tapant:

dnf repoquery -l <pkg-name>

Répertorie le contenu des paquets à partir d'un référentiel distant (même pour les paquets qui ne sont pas encore installés)

Ce qui signifie que l'installation d'un paquet dnf-utils ou yum-utils séparé n'est plus requise pour la fonctionnalité car elle est maintenant prise en charge nativement.


Pour lister installé ou local (*.rpm fichiers) contenu des paquets il y a rpm -ql

Je ne pense pas que ce soit possible avec yum org dnf (pas repoquery la commande)

Veuillez me corriger si je me trompe

0
répondu w17t 2018-08-13 12:36:53