поиск установленных rpms по поставщику

9

Я пытаюсь выяснить синтаксис, который используется для поиска установленных rpms конкретным поставщиком в Linux. В идеале я просто пытался использовать опускание rpm -qi для конкретного поставщика, но, похоже, это не сработало. У кого-нибудь есть синтаксис для этого поиска?

lorrie82
источник
Я ищу способ запросить установленные rpms, которые могут иметь лицензирование, связанное с ним - например, IBM или Oracle. Какой другой подход я могу выбрать?
lorrie82

Ответы:

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
Майкл Хэмптон
источник