В качестве примера я ищу mod_files.sh
файл, который предположительно будет поставляться с php-devel
пакетом. Я догадался, yum
что установит mod_files.sh
файл с php-devel x86_64 5.1.6-23.2.el5_3
пакетом, но файл, похоже, не будет установлен в моей файловой системе.
Как узнать, какой пакет устанавливает конкретный файл? Я ищу, где я не обязательно уже скачал локально пакет, который может включать файл, который я ищу.
Я использую CentOS 5.
rpm
, вам нужно использоватьyum
.Ответы:
Это старый вопрос, но текущие ответы неверны :)
Используйте yum whatprovides с абсолютным путем к нужному файлу (который может быть подстановочным). Например:
Возвращает
Вы можете предпочесть выход и скорость
repoquery
инструмента, доступного вyum-utils
пакете.repoquery
может выполнять другие запросы, такие как перечисление содержимого пакета, зависимостей, обратных зависимостей и т. д.источник
Чтобы узнать пакет, владеющий (или предоставляющий) уже установленным файлом:
источник
rpm -qf <filename>
он лучше всего подходит для определения того, какой пакет предоставляет установленное приложение (поскольку он может отличаться от того, что находится в текущем кэше репозитория yum), иyum whatprovides <filename>
лучше всего подходит для определения, какой пакет еще не установлен. применение. У каждого своя цель.yum whatprovides ...
требуется только root, если приложение является корневым пакетом (т. Е. Оно находится в/sbin
). Однако,rpm -qf ...
также требует root для чтения rpms из/sbin
. Поэтому я предлагаю, чтобы корневые требования были функционально эквивалентны для обоих методов.Самый популярный ответ неполный:
Так как этот поиск обычно выполняется только для файлов из установленных пакетов, yum whatprovides быстро работает благодаря отключению всех внешних репо (неявное «установленное» репо не может быть отключено).
источник
--disablerepo=*
Вы идете на http://www.rpmfind.net и ищете файл.
Вы получите результаты для множества разных дистрибутивов и версий, но вполне вероятно, что Fedora и / или CentOS тоже появятся, и вы будете знать имя пакета для установки с yum
источник
Хорошо найти пакет, когда вы подключены к Интернету (хранилище), легко, однако, когда у вас есть доступ только к RPM-пакетам внутри Redhat или Centos DVD (это часто случается со мной, когда мне нужно восстановить сервер и мне нужно приложение), я рекомендую используя команды ниже, которые полностью независимы от Интернета и репозиториев. (возможно, у вас есть много неустановленных пакетов на DVD). Допустим, вы смонтировали папку Package в ~ / cent_os_dvd и ищете пакет, который обеспечивает «semanage», после чего вы можете запустить:
источник
Используя только утилиту rpm, это должно работать в любой ОС, имеющей rpm:
Ссылка https://www.thegeekdiary.com/how-to-find-which-rpm-package-provides-a-specific-file-or-library-in-rhel-centos/
источник
Вы можете сделать это здесь, но с вашим пакетом. В моем случае это было
lsb_release
Бегать:
yum whatprovides lsb_release
Отклик:
Запустите для установки:
yum install redhat-lsb-core
Имя пакета ДОЛЖНО быть без номера и типа системы, чтобы yum packager мог выбрать, что лучше для него.
источник