我试图找出用于搜索 Linux 中特定供应商安装的 rpm 的语法。理想情况下,我只是尝试将 rpm -qi grepping 用于特定供应商,但这似乎不起作用。任何人都有此搜索的语法?
您可以使用查询格式按供应商显示包。我会考虑这样的事情,列出所有包:
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)