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

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

9 голосов | спросил David Nehme 19 Jpm1000000pmTue, 19 Jan 2010 20:23:06 +030010 2010, 20:23:06

6 ответов


8

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

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

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

[jb @ smokey ~] $ yum whatprovides "/etc /sudoers"
sudo-1.6.9p13-8.fc9.x86_64: разрешает ограниченный доступ root для указанных пользователей
Repo: update-newkey
Соответствует:
Имя файла: /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» соответствует шаблону, поэтому, если вы не уверены, где файл, который вы ищете, будет жить в структуре каталогов, просто окружайте его кавычками и звездочками:

yum whatprovides "* foo *"

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

yum whatprovides "* bin /foo"
ответил cagenut 20 Jam1000000amWed, 20 Jan 2010 00:12:05 +030010 2010, 00:12:05
3

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

rpm -qif /bin /ls
Имя: coreutils Перемещение: (не перемещается)
Версия: 5.97. Производитель: Red Hat, Inc.
Релиз: 23.el5 Дата сборки: Пн 13 июл 2009 04:21:27 AM MDT
Дата установки: пт 11 сен 2009 04:46:01 AM MDT Build Host: hs20-bc1-7.build.redhat.com
Группа: Модераторы форума
Размер: 9053874 Лицензия: GPLv2 +
Подпись: DSA /SHA1, Вт 28 июл 2009 03:42:40 AM MDT, ID ключа 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: Заголовок заголовка V3 DSA: NOKEY, ID ключа 37017186
Имя: jzlib Перемещение: (не перемещается)
Версия: 1.0.7. Производитель: Red Hat, Inc.
Релиз: 4jpp.1 Дата сборки: Вт 08 авг. 2006 12:10:03 PM MDT
Дата установки: (не установлена) Build Host: hs20-bc1-6.build.redhat.com
Группа: Разработка /Библиотеки /Java Source RPM: jzlib-1.0.7-4jpp.1.src.rpm
Размер: 280436 Лицензия: BSD-стиль
Подпись: DSA /SHA1, чт 18 янв 2007 08:49:50 AM MST, ID ключа 5326810137017186
Упаковщик: Red Hat, Inc.
URL:
Резюме: JZlib повторная реализация zlib в чистой Java
Описание :
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 19 Jpm1000000pmTue, 19 Jan 2010 23:55:59 +030010 2010, 23:55:59
2

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

ответил Trey 19 Jpm1000000pmTue, 19 Jan 2010 20:44:03 +030010 2010, 20:44:03
1

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

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

ответил Christian 19 Jpm1000000pmTue, 19 Jan 2010 20:51:24 +030010 2010, 20:51:24
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»).

ответил Tulio Silva 23 MaramWed, 23 Mar 2011 02:33:38 +03002011-03-23T02:33:38+03:0002 2011, 02:33:38
-3

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

ответил Rory 19 Jpm1000000pmTue, 19 Jan 2010 20:40:42 +030010 2010, 20:40:42

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

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

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