按供应商搜索已安装的 rpm

lor*_*e82 9 linux rpm

我试图找出用于搜索 Linux 中特定供应商安装的 rpm 的语法。理想情况下,我只是尝试将 rpm -qi grepping 用于特定供应商,但这似乎不起作用。任何人都有此搜索的语法?

Mic*_*ton 9

您可以使用查询格式按供应商显示包。我会考虑这样的事情,列出所有包:

rpm -qa --queryformat '%{vendor}:%{name}\n' | sort > packages.txt
Run Code Online (Sandbox Code Playgroud)

然后您可以检查该packages.txt文件,该文件将如下所示,并按供应商排序:

Codership Oy:galera
Fedora Project:certbot
Fedora Project:clang
Fedora Project:epel-release
...
(none):gpg-pubkey
(none):nginx
...
Red Hat, Inc.:acl
Red Hat, Inc.:aic94xx-firmware
...
Remi Collet:php-cli
Remi Collet:php-common
Run Code Online (Sandbox Code Playgroud)

或者,grep如果您知道要查找的内容,则可以改为使用。

rpm -qa --queryformat '%{vendor}:%{name}\n' | grep 'Red Hat'
Run Code Online (Sandbox Code Playgroud)

但是查询 rpmdb 需要一些时间,因此将整个内容转储到文件然后读取或grep该文件会更快。

grep 'Red Hat' packages.txt
Run Code Online (Sandbox Code Playgroud)

如需额外奖励积分,请尝试查询格式'%{vendor}:%{name}:%{license}\n',该格式将附加来自每个 RPM 的许可证信息。

Red Hat, Inc.:acl:GPLv2+
Red Hat, Inc.:aic94xx-firmware:Redistributable, no modification permitted
Run Code Online (Sandbox Code Playgroud)