如何使用YUM列出包的内容?

我知道如何使用rpm来列出一个包的内容( rpm -qpil package.rpm )。 但是,这需要知道.rpm文件在文件系统上的位置。 更优雅的解决scheme是使用包pipe理器,在我的情况下是YUM。 YUM如何被用来实现这个?

有一个名为yum-utils的包,它build立在YUM上,包含一个名为repoquery的工具,可以做到这一点。

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

结合一个例子:

 $ 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 

在至less一个RH系统上,使用rpm v4.8.0,yum v3.2.29和repoquery v0.0.11, repoquery -l rpm不会打印任何内容。

如果遇到此问题,请尝试添加--installed标志: repoquery --installed -l rpm


DNF更新:

要使用dnf而不是yum-utils ,请使用以下命令:

 $ 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 
 rpm -ql [packageName] 

 # 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 

不需要安装yum-utils,也不需要知道rpm文件的位置。

 $ yum install -y yum-utils $ repoquery -l packagename 

我不认为你可以使用yum来列出软件包的内容,但是如果你的本地系统上有.rpm文件(对于所有安装的软件包来说很可能是这种情况),你可以使用rpm命令来列出该包的内容如下所示:

rpm -qlp /path/to/fileToList.rpm

希望这可以帮助!

百胜没有它自己的包装types。 百胜餐饮经营和pipe理RPMs。 因此,您可以使用yum列出可用的RPM,然后运行rpm -qlp命令查看该包的内容。

这里有几个很好的答案,所以让我提供一个可怕的答案:

 : 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