Какая команда указывает, какие rpms может предоставить конкретный файл: rpm, который предоставляет файлы, которые уже установлены, или rpms, который может предоставить файлы, которые не установлены?
Для уже установленных файлов / пакетов:
[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"
Я не знаю, какие файлы еще не установлены, но для файла, который уже установлен, вы можете использовать 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.
В репозиториях на основе yum вы можете попробовать что-то вроде yum provides */filename
афаик, это невозможно с чистыми оборотами. rpm предоставляет это только для установленных пакетов с опцией --whatprovides
.
когда вы можете использовать Yum, попробуйте yum provides <filename>
поискать в хранилище.
Если вы не хотите (или не можете) использовать 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").
Боюсь, я не уверен, как это сделать с RPMS, но с Debian и Ubuntu вы можете использовать программу apt-file