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

Быстрый Google находит эту статью, которая может помочь. Я не попробовал его лично.

155
задан 28 January 2016 в 11:18
15 ответов

С установленной конфеткой-utils repoquery предоставит информацию, которую Вы ищете (здесь 'epel' быть репозиторием).

└─[$]> repoquery -i cherokee

Name        : cherokee
Version     : 0.99.49
Release     : 1.el5
Architecture: i386
Size        : 8495964
Packager    : Fedora Project
Group       : Applications/Internet
URL         : http://www.cherokee-project.com/
Repository  : epel
Summary     : Flexible and Fast Webserver
Description :
Cherokee is a very fast, flexible and easy to configure Web Server. It supports
the widespread technologies nowadays: FastCGI, SCGI, PHP, CGI, TLS and SSL
encrypted connections, Virtual hosts, Authentication, on the fly encoding,
Apache compatible log files, and much more.
82
ответ дан 28 November 2019 в 19:17
  • 1
    repoquery, кажется, не работает правильно, я получаю различные версии пакета затем yum info package_name, это, кажется, не запрашивает репозитории в том же порядке как конфетка. –  Mike Miller 30 November 2010 в 18:38

Ни одна из вышеупомянутых команд не работала на меня. Это - то, что я должен был сделать.

yum provides "*compat-libstdc*"

А хорошая ссылка здесь.

https://access.redhat.com/sites/default/files/attachments/rh_yum_cheatsheet_1214_jcs_print-1.pdf

1
ответ дан 28 November 2019 в 19:17

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

1
ответ дан 28 November 2019 в 19:17
  • 1
    Это решение, возможно, опция (я голосую за него), но только для недавнего установленного пакета, потому что я могу изменить репозиторий и их приоритет. –  lg. 4 September 2009 в 10:31

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

вкусный список, доступный | grep gstreamer

PackageKit-gstreamer-plugin.x86_64 0.3.16-1.fc10          updates               

bluez-gstreamer.i386 4.30-2.fc10 обновления
gstreamer.i386 0.10.21-2.fc10 мягкая фетровая шляпа
gstreamer-devel.i386 0.10.21-2.fc10 мягкая фетровая шляпа
gstreamer-devel.x86_64 0.10.21-2.fc10 мягкая фетровая шляпа
gstreamer-plugins-bad-devel.i386, 0.10.9-1.fc10 rpmfusion-свободный
gstreamer-plugins-bad-devel.x86_64, 0.10.9-1.fc10 rpmfusion-свободный

Таким образом, Вы могли сделать вкусный список, доступный на Вашем пакете, затем сравнить Вашу установленную версию с помощью вкусного списка, установленного и иметь хорошую идею, которого repo это прибыло из того, если версии соответствуют.

1
ответ дан 28 November 2019 в 19:17

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

В рамках того каталога существует каталог для каждого repo, и в этом каталог пакетов. Так, Вы сделали бы что-то как:

find /var/cache/yum -name [package-name]*

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

cachedir=/var/cache/yum
keepcache=1

Отметьте это a 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] не отображается "От repo": как обозначено 'theotherreceive', это - потому что это не находится в файле primary.xml, таким образом, не будет никакого способа получить ту информацию. Поэтому, если пакет находится в двух или больше файлах primary.xml, необходимо будет определить repo приоритет на Вас система.

4
ответ дан 28 November 2019 в 19:17
  • 1
    Это решение, возможно, опция (я голосую за него), но я ищу категорический ответ. –  lg. 4 September 2009 в 10:34

Какая версия конфетки?

На текущей версии, если установленный пакет является той же версией как новая, доступная затем repo, это было установлено от, показан.

$ yum info irssi
Installed Packages
Name       : irssi
Arch       : i586
Version    : 0.8.14
Release    : 1.fc11
Size       : 2.3 M
Repo       : installed
From repo  : updates
Summary    : Modular text mode IRC client with Perl scripting
URL        : http://irssi.org/
License    : GPLv2+
Description: Irssi is a modular IRC client with Perl scripting. Only text-mode
           : frontend is currently supported. The GTK/GNOME frontend is no
           : longer being maintained.

$ yum --version
3.2.23

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

44
ответ дан 28 November 2019 в 19:17
  • 1
    I' m использование конфетки 3.2.19 на CentOs 5.3 и " От repo" строка doesn' t существуют. –  lg. 3 September 2009 в 19:29
  • 2
    Да... Я тестировал его на 3.2.21, который doesn' t имеют ту информацию где угодно. Когда я сделал это на своем поле, которое имеет 3.2.23, это работало. –  Alex 3 September 2009 в 20:00
  • 3
    Теперь это - лучшее решение, но не применимое для RHEL/Centos 5.3. Я принимаю это решение, но я подготавливаю для выбора другого ответа, если будет применимо также для RHEL/Centos 5.3. –  lg. 4 September 2009 в 10:38
  • 4
    Это - остановка в CentOS 5.5 также. –  Mike Miller 30 November 2010 в 18:38

Самый легкий путь - это:

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

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

-1
ответ дан 28 November 2019 в 19:17
rpm -qi packagename

Скажет Вам поставщика и поставщика программного блока

6
ответ дан 28 November 2019 в 19:17

Для наблюдения, что установило от repo epel: (Должен работать под Centos 5.5), примечание, если у Вас не будет repo, названного epel, то это выложит каждую установленную вещь.

repoquery - repoid=epel-a | xargs вкусный список установлен

5
ответ дан 28 November 2019 в 19:17

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

yumdb info 'python*'

И что мне действительно нужно, чтобы вывести список пакетов из данного репо:

yumdb search from_repo 'my-*-repo'
22
ответ дан 28 November 2019 в 19:17

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

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

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

Binary file /var/cache/yum/REPOSITORY_NAME/primary.xml.gz.sqlite matches

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

4
ответ дан 28 November 2019 в 19:17

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

# for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i`; done
/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: install bind-utils
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo: updates
/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: user
/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
updates

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

9
ответ дан 28 November 2019 в 19:17

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

yum info -v <package_name>

Репозиторий установки будет под выводом "Из репо".

1
ответ дан 28 November 2019 в 19:17

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

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

# repoquery -ai | grep 'Repository  : ' | sort | uniq

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

1
ответ дан 28 November 2019 в 19:17

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

yum list installed [package name]

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

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

1
ответ дан 28 November 2019 в 19:17

Теги

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