RPM, который предоставляет файл

11

Какая команда указывает, какие rpms может предоставить конкретный файл: rpm, который предоставляет файлы, которые уже установлены, или rpms, который может предоставить файлы, которые не установлены?

Дэвид Неем
источник

Ответы:

10

Для уже установленных файлов / пакетов:

[jb @ smokey ~] $ rpm -qf / etc / sudoers
Судо-1.6.9p13-8.fc9.x86_64

Для еще не установленных файлов и пакетов:

[jb @ smokey ~] $ yum предоставляет "/ etc / sudoers"
sudo-1.6.9p13-8.fc9.x86_64: разрешает ограниченный доступ root для указанных пользователей
Репо: обновления-новинки
Подобрано из:
Имя файла: / etc / sudoers  

sudo-1.6.9p13-4.fc9.x86_64: разрешает ограниченный доступ root для указанных пользователей
Репо: Fedora
Подобрано из:
Имя файла: / etc / sudoers

sudo-1.6.9p13-8.fc9.x86_64: разрешает ограниченный доступ root для указанных пользователей
Репо: установлено
Подобрано из:
Другое: Обеспечивает соответствие: / etc / sudoers

Обратите внимание, что «yum whatprovides» - это сопоставление с образцом, поэтому, если вы не уверены, где искомый файл будет находиться в структуре каталогов, просто заключите его в кавычки и звездочки:

ням что обеспечивает "* foo *"

Точно так же, если вы уверены, что ищете двоичный файл, вы можете сделать:

ням что обеспечивает "* bin / foo"
cagenut
источник
5

Я не знаю, какие файлы еще не установлены, но для файла, который уже установлен, вы можете использовать rpm -qif:

об / мин -qif / bin / ls
Имя: coreutils. Расположение: (не перемещается)
Версия: 5.97 Поставщик: Red Hat, Inc.
Релиз: 23.el5 Дата сборки: пн 13 июл 2009 04:21:27 MDT
Дата установки: пятница, 11 сентября 2009 г., 04:46:01 Построитель MDT: hs20-bc1-7.build.redhat.com
Группа: Системная среда / Базовый источник RPM: coreutils-5.97-23.el5.src.rpm
Размер: 9053874 Лицензия: GPLv2 +
Подпись: DSA / SHA1, вторник, 28 июля 2009 г., 03:42:40 MDT, идентификатор ключа 5326810137017186
Упаковщик: Red Hat, Inc. 
URL:
Описание: Основные утилиты GNU: набор инструментов, обычно используемых в сценариях оболочки
Описание :
Это основные утилиты GNU. Этот пакет представляет собой сочетание
старые пакеты GNU fileutils, sh-utils и textutils.
Если вы загрузили RPM, вы можете запросить, чтобы увидеть, что будет установлено:
rpm -qilp ./Server/jzlib-1.0.7-4jpp.1.i386.rpm
предупреждение: ./Server/jzlib-1.0.7-4jpp.1.i386.rpm: подпись DSA заголовка V3: NOKEY, идентификатор ключа 37017186
Имя: jzlib. Расположение: (не перемещается)
Версия: 1.0.7 Поставщик: Red Hat, Inc.
Релиз: 4jpp.1 Дата сборки: вт 08 авг 2006 12:10:03 MDT
Дата установки: (не установлено). Хост сборки: hs20-bc1-6.build.redhat.com.
Группа: Разработка / Библиотеки / Java Source RPM: jzlib-1.0.7-4jpp.1.src.rpm
Размер: 280436 Лицензия: BSD-style
Подпись: DSA / SHA1, чт. 18 января 2007 г., 08:49:50 MST, идентификатор ключа 5326810137017186
Упаковщик: Red Hat, Inc. 
URL: 
Резюме: JZlib - повторная реализация zlib в чистой Java
Описание :
Zlib разработан, чтобы быть свободным, общего назначения, юридически необремененным
- то есть не защищены патентами - сжатие данных без потерь
библиотека для использования практически на любом компьютерном оборудовании и операционной системе.
Zlib был написан Жан-Лу Гэйли (сжатие) и Марком Адлером
(Декомпрессии).
/usr/lib/gcj/jzlib/jzlib-1.0.7.jar.db
/usr/lib/gcj/jzlib/jzlib-1.0.7.jar.so
/usr/share/doc/jzlib-1.0.7
/usr/share/doc/jzlib-1.0.7/LICENSE.txt
/usr/share/java/jzlib-1.0.7.jar
/usr/share/java/jzlib.jar
вы можете опустить «-i» в опциях, если вам не нужна вся информация о RPM.

salparadise
источник
2

В репозиториях на основе yum вы можете попробовать что-то вроде yum provides */filename

тройка
источник
1

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

когда вы можете использовать Yum, попробуйте yum provides <filename>поискать в хранилище.

Кристиан
источник
1

Если вы не хотите (или не можете) использовать yum (например, на автономном компьютере), вы можете искать внутри неустановленных RPM, выполнив

# rpm -qp --filesbypkg *rpms-to-search-in* | grep *file-to-search-for*

Это может занять некоторое время, поэтому будьте терпеливы при поиске среди * .rpm в большом репозитории, например, на установочном DVD. Но, в отличие от «-qpl», «-qp --filesbypkg» перечислит как файл, так и RPM, к которому он относится, например:

# rpm -qpl p*.rpm|grep libpq.so.4
/usr/lib/libpq.so.4
/usr/lib64/libpq.so.4

# rpm -qp --filesbypkg p*.rpm|grep libpq.so.4
postgresql-libs          /usr/lib/libpq.so.4
postgresql-libs          /usr/lib64/libpq.so.4

в этом случае очевидный дубликат происходит из-за наличия пакетов i386 и x86_64 (становится очевидным из строки "lib64").

Тулио Сильва
источник
-3

Боюсь, я не уверен, как это сделать с RPMS, но с Debian и Ubuntu вы можете использовать программу apt-file

Рори
источник