我知道如何使用rpm列出软件包的内容(rpm -qpil package.rpm)。但是,这需要知道.rpm文件在文件系统上的位置。一个更优雅的解决方案是使用包管理器,在我的例子中是YUM。YUM如何用于实现这一目标?
rpm -qpil package.rpm
有一个名为yum-utilsYUM 的软件包,它包含一个repoquery可以完成此任务的工具。
yum-utils
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
在至少一个RH v4.8.0,yum v3.2.29和repoquery v0.0.11的RH系统上,repoquery -l rpm什么都不打印。
repoquery -l rpm
如果遇到此问题,请尝试添加--installed标志:repoquery --installed -l rpm。
--installed
repoquery --installed -l rpm
DNF
要使用dnf代替yum-utils,请使用以下命令:
dnf
$ 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