我知道如何使用 rpm 列出包的内容(rpm -qpil package.rpm
)。但是,这需要知道 .rpm 文件在文件系统上的位置。一个更优雅的解决方案是使用包管理器,在我的例子中是 YUM。如何使用 YUM 来实现这一点?
最佳答案
有一个名为 yum-utils
的包,它建立在 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
在至少一个 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
https://stackoverflow.com/questions/104055/