如何在 Fedora 上的给定存储库中搜索所有包的所有文件名?

the*_*ian 1 fedora rpm package-management

有没有办法在 Fedora 存储库中搜索包的文件名(而不是文件内容)?这与存储库中的每个包类似rpm -ql [package] | grep term,但最好能够在没有安装包的情况下发出命令,因为我想搜索数千个包文件列表。我想回答的问题是:

存储库 X 中的哪些包传送文件 Y?

这个名称应该足够了,因为我不需要精确的哈希值。

Dan*_*nin 5

dnf

dnf repoquery --disablerepo=* --enablerepo=X -f Y
Run Code Online (Sandbox Code Playgroud)

yum

yum -y install yum-utils
repoquery --disablerepo=* --enablerepo=X -f Y
Run Code Online (Sandbox Code Playgroud)

支持通配符Y

例子:

dnf repoquery --disablerepo=* --enablerepo=rhel-8-for-x86_64-baseos-rpms -f /usr/bin/zip
dnf repoquery --disablerepo=* --enablerepo=rhel-8-for-x86_64-baseos-rpms -f /usr/bin/zi*
Run Code Online (Sandbox Code Playgroud)

您也可以简单地yum provides Y(或dnf provides Y),但这将包括--disablerepo在某些系统上安装的软件包,尽管有切换。

额外小费

您可以直接安装需要特定文件名的包,只需将其传递给yumdnf。是的,这有效并且非常简单:

yum install /usr/bin/zip
Run Code Online (Sandbox Code Playgroud)