После того, как я установил пакет yum (с несколькими настроенными репозиториями), как я могу найти, из какого репозитория он был установлен?
Если я запускаю yum info package-name
(или yum list package-name
), я вижу только, что пакет "установлен".
rpm -qa|grep NAME
то вы можете сделать ,yum list installed|grep NAME
чтобы найти то , что репо обороты от .Ответы:
С установленным yum-utils, repoquery предоставит информацию, которую вы ищете (здесь epel - это хранилище).
источник
yum info package_name
, он не запрашивает репозитории в том же порядке, что и yum.yum info package_name
возвращает больше результатов, чем repoquery, по-видимому. Вот почему обмен стека не должен блокировать голоса.repoquery -i $pkg
дает репо, из которого$pkg
доступен а, а не репо, из которого он$pkg
был установлен. Я выполнил эту командуrpm -qi $pkg
и получил разные номера версий.rpm
привело к более раннему номеру версии, чем уrepoquery
.--use-mirror
). Я не думаю, что всегда можно получить правильный ответ.Какая версия ням?
В текущей версии, если установленный пакет совпадает с последней доступной версией, отображается репо, из которого он был установлен.
Если доступен более новый пакет, он будет показан отдельно, а в новой версии будет показан репозиторий, из которого он доступен.
источник
Пойдем поздно, но (по крайней мере, в Fedora 15) можно использовать yumdb для похожих запросов:
И что мне действительно нужно было перечислить пакеты из данного репозитория (ов):
источник
Если ничего не помогает, вы можете проверить yumdb вручную. Он находится в
/var/lib/yum/yumdb
и содержит подробную информацию о каждом установленном пакете. Вы будете особенно заинтересованы вfrom_repo
. Например, дляbind-utils
пакета:Чтобы получить только ту информацию, которую вы хотите:
Более поздние версии предоставят еще больше данных; например, в EL 7 точное зеркало и URL, с которого был загружен пакет, хранятся здесь.
источник
for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i` | grep -oP 'from_repo:\ \K.*'; done
которое в приведенном выше примере возвращает:updates
- гораздо более читабельно!grep
здесь ничего не нужно , и вы даже можете отказаться от цикла. Очень простоcat /var/lib/yum/yumdb/b/*bind-utils*/from_repo
все, что вам нужно.Скажу вам, продавец и упаковщик
источник
Чтобы увидеть, что установлено из репо epel: (Должно работать под Centos 5.5), обратите внимание, что если у вас нет репо с именем epel, оно выплюнет все установленные вещи.
repoquery --repoid = epel -a | список xargs yum установлен
источник
Если пакет был установлен недавно, вы можете посмотреть в / var / cache / yum.
В этом каталоге есть каталог для каждого репо, а в этом - каталог пакетов. Итак, вы бы сделали что-то вроде:
Однако кеш должен быть включен в ваш файл /etc/yum.conf:
Обратите внимание, что
yum clean [packages|all]
очистит каталог кеша.Если каталог кеша пуст, есть альтернативный способ. Информация, которую читают,
yum info [package]
взята из /var/cache/yum/[repo]/primary.xml.gzВы можете просмотреть файл, введя:
Однако на машинах, где
yum info [package]
не отображается «Из репозитория:», как указано «theotherreceive», это происходит потому, что его нет в файле primary.xml, поэтому нет никакой возможности получить эту информацию. Поэтому, если пакет находится в двух или более файлах primary.xml, вам придется определить приоритет репо в вашей системе.источник
На основании и ответ Swoogan
На RedHat и CentOS можно сделать
Результаты должны выглядеть примерно так
Где repository_name - это репозиторий, в котором можно найти ваш пакет, и он, вероятно, был установлен из первого списка в списке (см. Yum repolist)
источник
Эта информация захвачена где-нибудь? Пакет не имеет этой информации, и yum не волнует, когда он найдет пакет. Вы могли бы, вероятно, собрать это воедино, выяснив, какие репозитории имеют пакет, а затем определить, какой из них имеет приоритет.
источник
Не очень хорошее решение, но я обнаружил, что доступный список yum покажет вам, где доступна самая последняя версия каждого пакета, например:
ням список доступен | grep gstreamer
bluez-gstreamer.i386 4.30-2.fc10 Обновления
gstreamer.i386 0.10.21-2.fc10 fedora
gstreamer-devel.i386 0.10.21-2.fc10 fedora
gstreamer-devel.x86_64 0.10.21-2.fc10 fedora
gstreamer- plugins-bad-devel.i386 0.10.9-1.fc10 rpmfusion-free
gstreamer-plugins-bad-devel.x86_64 0.10.9-1.fc10 rpmfusion-free
Таким образом, вы можете составить список yum, доступный в вашем пакете, а затем сравнить установленную версию, используя установленный список yum, и понять, из какого репозитория он поступил, если версии совпадают.
источник
Вы можете добавить подробный флаг к «yum info»:
Инсталляционный репозиторий будет находиться под выводом «Из репо».
источник
Так что я знаю, что это довольно старый вопрос, но он возникает в поиске Google для того, что я искал.
Существует также метод получения уникального списка используемых репозиториев:
В этом списке будут перечислены репозитории, из которых установлены пакеты.
источник
Самый простой и простой подход без установки каких-либо дополнительных инструментов, поиска или вывода посторонней информации - это просто:
В третьем столбце будет указан идентификатор хранилища, из которого был установлен пакет.
Это было упомянуто в комментарии к первоначальному вопросу с использованием grep, но это не обязательно. Вы можете просто передать имя пакета напрямую
yum
для фильтрации.источник
Ни одна из вышеперечисленных команд не работает для меня. Это то, что я должен был сделать.
Хорошая ссылка здесь.
https://access.redhat.com/sites/default/files/attachments/rh_yum_cheatsheet_1214_jcs_print-1.pdf
источник
Самый простой способ это:
Дополнительные советы и рекомендации доступны здесь: http://wiki.centos.org/TipsAndTricks/YumAndRPM
источник