Как узнать, из какого репозитория yum был установлен пакет?

После установки пакета с помощью yum (с несколькими настроенными репозиториями), как я могу найти, из какого репозитория он был установлен?

Если я запустил yum info package-name (или yum list package-name ), я могу видеть только, что пакет «установлен».

130 голосов | спросил lg. 3 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 03 Sep 2009 19:15:55 +0400 2009, 19:15:55

14 ответов


73

С установленными yum-utils, repoquery предоставит запрашиваемую информацию (здесь «epel» является репозиторием).

  A»» A»€ [$] & GT; repoquery -i cherokee

Имя: cherokee
Версия: 0.99.49
Выпуск: 1.el5
Архитектура: i386
Размер: 8495964
Упаковщик: проект Fedora
Группа: Модераторы
URL: http://www.cherokee-project.com/
Репозиторий: epel
Резюме: гибкий и быстрый веб-сервер
Описание :
Cherokee - это очень быстрый, гибкий и простой в настройке веб-сервер. Он поддерживает
широко распространенные технологии: FastCGI, SCGI, PHP, CGI, TLS и SSL
зашифрованные соединения, виртуальные хосты, аутентификация, кодирование на лету,
Apache совместимые файлы журналов и многое другое.
 
ответил Xiong Chiamiov 21 J0000006Europe/Moscow 2010, 23:16:10
35

Какую версию yum?

В текущей версии, если установленный пакет является той же версией, что и самая последняя, ​​доступная, тогда отображается репо, из которого она была установлено.

  $ yum info irssi
Установленные пакеты
Имя: irssi
Arch: i586
Версия: 0.8.14
Выпуск: 1.fc11
Размер: 2,3 М
Репо: установлено
Из репо: обновления
Реферат: Клиент IRC с модульным текстовым режимом с Perl-скриптами
URL: http://irssi.org/
Лицензия: GPLv2 +
Описание: Irssi - это модульный IRC-клиент с Perl-скриптами. Только текстовый режим
           : интерфейс поддерживается в настоящий момент. Интерфейс GTK /GNOME отсутствует
           : дольше сохраняется.

$ yum --версия
3.2.23
 

Если имеется более новый пакет, он будет показан отдельно, с новой версией, показывающей репо, из которого она доступна.

ответил theotherreceive 3 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 03 Sep 2009 20:25:53 +0400 2009, 20:25:53
17

Приближаясь к концу, но (по крайней мере, на Fedora 15), можно использовать yumdb для подобных запросов:

  yumdb info 'python *'
 

И что мне действительно нужно было перечислять пакеты из заданных репо (-ей):

  yumdb search from_repo 'my - * - repo'
 
ответил Martian 26 +04002011-10-26T13:01:09+04:00312011bEurope/MoscowWed, 26 Oct 2011 13:01:09 +0400 2011, 13:01:09
8

Если все остальное не удается, вы можете вручную проверить yumdb. Он находится в /var /lib /yum /yumdb и содержит подробную информацию о каждом установленном пакете. Вас особенно интересует from_repo . Например, для пакета bind-utils :

  # для i в /var /lib /yum /yumdb /b /* bind-utils * /*; do echo $ i: `cat $ i`; сделанный
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_data: 39f7840f93d3d76825a9e8da79cfe0366f7fad68f018a273477aee62cccfa3f4
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_type: sha256
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/command_line: установить bind-utils
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo: обновления
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_revision: 1397654451
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_timestamp: 1397654759
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/installed_by: 0
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/reason: пользователь
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/releasever: 6
 

Чтобы получить нужную информацию:

  # cat /var /lib /yum /yumdb /b /* bind-utils * /from_repo
обновления
 

Более поздние версии предоставят еще больше данных; например, в EL 7 здесь хранится точное зеркало и URL-адрес, с которого был загружен пакет.

ответил Michael Hampton 25 Mayam14 2014, 08:19:07
6
  rpm -qi packagename
 

Расскажет вам поставщик и упаковщик

ответил Esmail 9 FebruaryEurope/MoscowbWed, 09 Feb 2011 17:48:29 +0300000000pmWed, 09 Feb 2011 17:48:29 +030011 2011, 17:48:29
4

Если пакет был установлен недавно, вы можете посмотреть в /var /cache /yum.

Внутри этого каталога есть каталог для каждого репо, а в нем - каталог пакетов. Итак, вы бы сделали что-то вроде:

  find /var /cache /yum -name [имя-пакета] *
 

Однако кэш должен быть включен в файле /etc/yum.conf:

  CacheDir = /вар /кэш /ни
keepcache = 1
 

Обратите внимание, что yum clean [packages | all] очистит каталог кеша.

Если каталог кеша пуст, есть альтернативный способ. Информация, которая читается yum info [package] , поступает из /var /cache /yum /[repo] /primary.xml.gz

Вы можете просмотреть файл, введя:

  gunzip -d -c /var/cache/yum/[repo]/primary.xml.gz | grep '<name> [package]'
 

Однако на машинах, где yum info [package] не отображается «From repo:», как указано «theotherreceive», это происходит потому, что он не находится в файле primary.xml, поэтому не будет способа получить эту информацию. Поэтому, если пакет находится в двух или более файлах primary.xml, вам необходимо будет определить приоритет репо для вашей системы.

ответил Swoogan 3 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 03 Sep 2009 20:36:43 +0400 2009, 20:36:43
4

Чтобы узнать, что установлено из repo epel: (Если вы работаете в Centos 5.5), обратите внимание, что если у вас нет репо с именем epel, он выплюнет все установленные вещи.

repoquery --repoid = epel -a | Установлен список xargs yum

ответил David A. 8 AMpFri, 08 Apr 2011 01:20:31 +040020Friday 2011, 01:20:31
3

На основе и ответа Swoogan
В RedHat и CentOS можно делать

  sudo grep -ir PACKAGE_NAME /var /cache /yum /
 

Результаты должны выглядеть примерно так:

  Двоичный файл /var/cache/yum/REPOSITORY_NAME/primary.xml.gz.sqlite совпадения
 

Где repository_name - это репозиторий, в котором ваш пакет может быть найден, и он, вероятно, был установлен из первого в списке (см. yum repolist)

ответил iddqd 30 Mayam13 2013, 04:19:31
1

Является ли эта информация захватываемой в любом месте? Пакет не имеет этой информации, и yum не заботится о том, чтобы найти пакет. Вы могли бы, вероятно, собрать его вместе, выяснив, какие у РЕПО есть пакет, а затем определить, какой из них имеет приоритет.

ответил Alex 3 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 03 Sep 2009 20:19:45 +0400 2009, 20:19:45
1

Не отличное решение, но я обнаружил, что доступный список yum покажет вам, где доступна самая современная версия каждого пакета, например:

список доступных yum | grep gstreamer

  PackageKit-gstreamer-plugin.x86_64 Обновления 0.3.16-1.fc10
 

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 и иметь хорошее представление о том, какой репо он пришел, если версии совпадают.

ответил gareth_bowles 3 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 03 Sep 2009 20:37:07 +0400 2009, 20:37:07
1

Вы можете добавить флаг подробностей в «yum info»:

  yum info -v <имя_пакета>
 

Репозиторий установки будет находиться в разделе «От репо».

ответил smw 20 AM00000010000003131 2016, 01:42:31
1

Итак, я знаю, что это несколько старый вопрос, но он появляется в поиске Google того, что я искал.

Существует также метод получения уникального списка используемых репозиториев:

  # repoquery -ai | grep 'Repository:' | сортировать | уник
 

Здесь перечислены хранилища, на которых были установлены пакеты.

ответил Steven Haigh 25 Maypm17 2017, 16:37:32
0

Самый простой и простой подход без установки каких-либо дополнительных инструментов, сглаживания или вывода посторонней информации - это просто:

  список yum установлен [имя пакета]
 

В третьем столбце будет указан идентификатор репозитория, из которого был установлен пакет.

Это было упомянуто в комментарии к исходному вопросу с использованием grep, но это не обязательно. Вы можете просто передать имя пакета непосредственно в yum для фильтрации.

ответил Scott Buchanan 23 PMpMon, 23 Apr 2018 23:04:27 +030004Monday 2018, 23:04:27
-1

Самый простой способ:

  rpm -qa --qf '% {NAME}% {VENDOR} \ n'
 

Дополнительные советы и рекомендации доступны здесь: http://wiki.centos.org/TipsAndTricks/YumAndRPM

ответил Bluesguy 6 FebruaryEurope/MoscowbSun, 06 Feb 2011 01:29:34 +0300000000amSun, 06 Feb 2011 01:29:34 +030011 2011, 01:29:34

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132