按供应商搜索已安装的rpm


9

我试图弄清楚在Linux中特定供应商用来搜索已安装的rpm的语法。理想情况下,我只是想对特定供应商使用rpm -qi grepping,但这似乎不起作用。有人对此搜索有语法吗?


我正在寻找一种查询已安装的rpm的方法,这些rpm可能具有与其相关的许可-例如IBM或Oracle。我还能采取什么其他方法?
lorrie82 '19

Answers:


9

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

rpm -qa --queryformat '%{vendor}:%{name}\n' | sort > packages.txt

然后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

或者,grep如果您知道要查找的内容,则可以取而代之。

rpm -qa --queryformat '%{vendor}:%{name}\n' | grep 'Red Hat'

但是查询rpmdb需要花费一些时间,因此将整个内容转储到文件中然后读取或读取文件的速度更快grep

grep 'Red Hat' packages.txt

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

Red Hat, Inc.:acl:GPLv2+
Red Hat, Inc.:aic94xx-firmware:Redistributable, no modification permitted
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.