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

时间:2020-03-06 14:27:05  来源:igfitidea点击:

我知道如何使用rpm列出软件包的内容(" rpm -qpil package.rpm")。但是,这需要知道.rpm文件在文件系统上的位置。一个更优雅的解决方案是使用程序包管理器,在我的例子中是YUM。 YUM如何用于实现这一目标?

解决方案

我认为我们不能使用yum列出软件包的内容,但是如果本地系统上有.rpm文件(所有已安装软件包的情况很可能如此),则可以使用rpm命令列出该软件包的内容如下:

rpm -qlp /path/to/fileToList.rpm

如果我们没有软件包文件(.rpm),但是已经安装了软件包,请尝试以下操作:

rpm -ql packageName

Yum没有它自己的包类型。百胜经营并帮助管理RPM。因此,我们可以使用yum列出可用的RPM,然后运行rpm -qlp命令以查看该软件包的内容。

有一个名为" 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