recherche de rpms installés par fournisseur

9

J'essaie de comprendre la syntaxe à utiliser pour rechercher les rpms installés par un fournisseur spécifique sous Linux. Idéalement, j'essayais simplement d'utiliser la fonction rpm -qi pour un fournisseur spécifique, mais cela ne semble pas fonctionner. Quelqu'un a la syntaxe de cette recherche?

lorrie82
la source
Je cherche un moyen d'interroger les rpms installés qui pourraient avoir des licences associées - par exemple IBM ou Oracle. Quelle autre approche pourrais-je adopter?
lorrie82

Réponses:

9

Vous pouvez afficher les packages par fournisseur à l'aide d'un format de requête. Je considérerais quelque chose comme ça, pour lister tous les packages:

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

Vous pouvez ensuite inspecter le packages.txtfichier, qui ressemblera à ceci, et sera trié par fournisseur:

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

Ou vous pouvez le faire à la grepplace si vous savez ce que vous cherchez.

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

Mais interroger le rpmdb prend un certain temps, il est donc plus rapide de vider le tout dans un fichier, puis de le lire ou greple fichier.

grep 'Red Hat' packages.txt

Pour des points bonus supplémentaires, essayez le format de requête '%{vendor}:%{name}:%{license}\n'qui ajoutera les informations de licence de chaque RPM.

Red Hat, Inc.:acl:GPLv2+
Red Hat, Inc.:aic94xx-firmware:Redistributable, no modification permitted
Michael Hampton
la source