4

Когда вы используете yum info для поиска сведений о выбранном пакете, он отображает репозиторий как "установленный". Это все хорошо, но для установленных пакетов я хочу знать, из какого репозитория он установлен, так что я могу быть уверен, что установлю любые связанные пакеты из этого же репозитория.

$: yum info mysql-server
Loaded plugins: fastestmirror
Installed Packages
Name       : mysql-server
Arch       : x86_64
Version    : 5.0.77
Release    : 4.el5_6.6
Size       : 22 M
Repo       : installed
Summary    : The MySQL server and related files.
URL        : http://www.mysql.com
License    : GPLv2 with exceptions
Description: MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
           : client/server implementation consisting of a server daemon (mysqld)
           : and many different client programs and libraries. This package contains
           : the MySQL server and some accompanying files and directories.

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

3 ответа3

3

Современные версии YUM предоставляют эту информацию.

Например, в моей системе Fedora 15 с YUM 3.2.29:

# yum info mysql-server
Loaded plugins: fastestmirror, langpacks, presto, refresh-packagekit
Installed Packages
Name        : mysql-server
Arch        : x86_64
Version     : 5.5.14
Release     : 2.fc15
Size        : 42 M
Repo        : installed
From repo   : updates
Summary     : The MySQL server and related files
URL         : http://www.mysql.com
License     : GPLv2 with exceptions
Description : MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
            : client/server implementation consisting of a server daemon (mysqld)
            : and many different client programs and libraries. This package contains
            : the MySQL server and some accompanying files and directories.

Вы можете увидеть, есть ли более новая версия YUM, которая предоставляет эту информацию для вашей системы.

2

Обновленный - чуть более полезный - ответ для тех, кто был столь же неудачен, как и я, чтобы наткнуться на это ...

Для Fedora (и предположительно Centos & RHEL), например:

dnf whatprovides postgresql-server

Использование метаданных от бла-бла-бла

postgresql-server-9.3.9-1.fc21.x86_64: Программы, необходимые для создания и запуска сервера PostgreSQL

Repo        : @System

postgresql-server-9.3.5-4.fc21.x86_64: Программы, необходимые для создания и запуска сервера PostgreSQL

Repo        : fedora

postgresql-server-9.3.9-1.fc21.x86_64: Программы, необходимые для создания и запуска сервера PostgreSQL

Repo        : updates

Как вы можете видеть, он перечисляет @System для пакета, который в данный момент установлен, а также из каких репозиториев и версий он может быть установлен. Важной частью здесь является последний элемент в списке, сведения о версии и название которого точно соответствуют установленному. Поэтому он был установлен из хранилища обновлений fedora. Dnf, как и yum, также поддерживает опцию info, то есть:

dnf info postgresql-server

Однако в моей системе вывод dnf не отображает поле From repo , в отличие от команды yum, поэтому YMMV.

0

Лучший способ определить это - по ключу подписи пакета для каждого пакета. Не было простого способа сделать это, поэтому кто-то создал программу Keychecker.

Этот небольшой сценарий вырос из разговора о том, как эффективно идентифицировать репозиторий источника для RPM, установленного в системе. Самая близкая вещь, которую база данных RPM хранит к этому, является ключом GPG, используемым, чтобы подписать пакет. Этот скрипт просматривает используемые ключи и печатает их либо в формате списка, либо в формате csv (если вызывается с параметром -m). Людям это понравилось, поэтому здесь его выпускают для более широкой аудитории :)

Это доступно через EPEL. Он выведет все ваши установленные пакеты, сгруппированные по ключу, которым они были подписаны. Описание ключа прояснит, из какого это репо. Любое уважаемое хранилище будет подписывать свои пакеты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .