Як я можу отримати список усіх пакетів RPM, які були встановлені в моїй системі з конкретного репо (наприклад, "epel")?
Як я можу отримати список усіх пакетів RPM, які були встановлені в моїй системі з конкретного репо (наприклад, "epel")?
Відповіді:
yum list installed | grep @epel
dnf list installed | grep @epel
Що стосується RHEL6, як це пропонується у цій відповіді stackoverflow, існує більш ретельний метод зробити це за допомогою yumdb
:
yumdb search from_repo REPOID*
Репоїд бере підказки.
Якщо ми збираємося обдурити і передавати вихід, то можемо досягти і ефекту симпатичного друку. Ось один із використаннямawk
yumdb search from_repo REPOID* |awk -F"\n" '{ RS=""; print $1 }'
Використання egrep
абоgrep -e
yumdb search from_repo REPOID* |egrep -v '(from_repo|^$)'
Щоб перелічити всі доступні пакети у визначеному сховищі, виконайте:
repoquery -a --repoid=REPONAME
repoquery -qa --repoid=REPONAME
repoquery -a --repoid=REPONAME
тому що відповідно до -q
параметра man page для сумісності rpmquery, нічого не робить.
-qa
насправді не вдається. Я не можу подати коментар через попереднє видалення оновлення :( Я оновлюю відповідь, щоб відобразити це.
Вирізування виходу ням є найбільш очевидним способом:
yum list installed | grep @epel
Однак ви не можете відобразити додаткові властивості пакунків, і важко розібратися зі сценарієм. Інструмент repoquery
з пакета yum-utils
є інструментом, але він не встановлений за замовчуванням.
repoquery -a --installed --qf "%{ui_from_repo} %{name}" | grep '^@epel'
і більш складний приклад:
repoquery -a --installed --qf "%-20{ui_from_repo} %-30{name} %-7{arch} %{epoch}:%-12{version} %-4{release}" | grep '^@epel'
yum repo-pkgs <repoid> list installed
можна використовувати для отримання тієї самої інформації yumdb search from_repo <repoid>
, що і в іншому форматі.
# yum help repo-pkgs
repo-pkgs <repoid> <list|info|install|remove|upgrade|reinstall*|remove-or-*> [pkg(s)]
Treat a repo. as a group of packages, so we can install/remove all of them
aliases: repo-packages, repository-pkgs, repository-packages
Приклади epel
виходів:
# yumdb search from_repo epel
htop-2.2.0-1.el7.x86_64
from_repo = epel
supervisor-3.1.4-1.el7.noarch
from_repo = epel
# yum repo-pkgs epel list installed
Installed Packages
htop.x86_64 2.2.0-1.el7 @epel
supervisor.noarch 3.1.4-1.el7 @epel
Ви можете перевірити Vendor
заголовок встановлених rpms.
У цьому прикладі перераховано весь пакет із сховища VideoLAN :
rpm -q -a --qf "%{Name}:%{Vendor}\n" \
| grep -F ":VideoLAN Project (http://www.videolan.org)"
Очевидно, вам потрібно визначити, чи Vendor
заголовок вашого сховища унікальний серед різних сховищ.
Для людей, які просто хочуть знайти відсутні сховища:
yum list installed | awk '{print $3}' | sort | uniq
Це має повернути всі сховища, з яких встановлені пакети.