Как я могу получить список всех пакетов RPM, которые были установлены в моей системе из определенного репозитория (например, «epel»)?
44
yum list installed | grep @epel
dnf list installed | grep @epel
Начиная с RHEL6, как предлагается в этом ответе stackoverflow , есть более тщательный способ сделать это с
yumdb
:Репоид принимает дикие карты.
Довольно-печать
Если мы собираемся обмануть и передать вывод, то мы также можем добиться эффекта симпатичной печати. Вот один, используя
awk
Используя
egrep
илиgrep -e
list_ALL_AVAILABLE_from_repo
Чтобы вывести список всех доступных пакетов в указанном репозитории, выполните:
источник
repoquery -qa --repoid=REPONAME
repoquery -a --repoid=REPONAME
потому что согласно man-странице-q
опция для совместимости с rpmquery ничего не делает.-qa
фактически терпит неудачу. Я не могу проголосовать за комментарий из-за того, что он ранее удалил голос :( Я обновляю ответ, чтобы отразить это.Заметки
Приведенная выше команда использует DNF для просмотра списка пакетов, установленных из
<repoid>
. Примечаниеrepo-pkgs
это просто псевдонимrepository-packages
.Со
man
страниц:Дальнейшее чтение:
источник
Пропустить вывод yum - самый очевидный способ:
Тем не менее, вы не можете отобразить дополнительные свойства пакетов, и это трудно проанализировать с помощью скрипта. Инструмент
repoquery
из пакетаyum-utils
является инструментом, но по умолчанию он не установлен.и более сложный пример:
источник
RHEL Server 7.5 (Maipo)
yum repo-pkgs <repoid> list installed
может быть использован для получения той же информацииyumdb search from_repo <repoid>
, но в другом формате.Пример
epel
выходов:источник
Вы можете проверить
Vendor
заголовок установленных rpms.В этом примере перечислены все пакеты из репозитория VideoLAN :
Очевидно, вам необходимо определить, является ли
Vendor
заголовок вашего хранилища уникальным среди разных хранилищ.источник
Для людей, которые просто хотят найти недостающие репозитории:
Это должно вернуть все репозитории, из которых установлены пакеты.
источник