wyszukiwanie zainstalowanych RPM przez producenta

9

Usiłuję wymyślić składnię, której należy użyć do wyszukiwania zainstalowanych pakietów RPM przez określonego dostawcę w systemie Linux. Idealnie chciałem po prostu użyć greppingu rpm -qi dla konkretnego dostawcy, ale to nie działa. Czy ktoś ma składnię tego wyszukiwania?

lorrie82
źródło
Szukam sposobu na sprawdzenie zainstalowanych RPM, które mogą mieć związane z nimi licencje - na przykład IBM lub Oracle. Jakie inne podejście mogę zastosować?
lorrie82

Odpowiedzi:

9

Paczki można wyświetlać według dostawcy przy użyciu formatu zapytania. Rozważę coś takiego, aby wyświetlić listę wszystkich pakietów:

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

Następnie możesz sprawdzić packages.txtplik, który będzie wyglądał mniej więcej tak i zostanie posortowany według dostawcy:

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

Lub możesz grepzamiast tego, jeśli wiesz, czego szukasz.

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

Ale zapytanie rpmdb zajmuje trochę czasu, więc szybciej jest zrzucić całą rzecz do pliku, a następnie odczytać lub grepplik.

grep 'Red Hat' packages.txt

Aby uzyskać dodatkowe punkty bonusowe, wypróbuj format zapytania, '%{vendor}:%{name}:%{license}\n'który doda informacje licencyjne z każdego RPM.

Red Hat, Inc.:acl:GPLv2+
Red Hat, Inc.:aic94xx-firmware:Redistributable, no modification permitted
Michael Hampton
źródło