rpm, що забезпечує файл


11

Яка команда перелічити, які rpms можуть надати певний файл: rpm, що надають файли, які вже встановлені, або rpms, які можуть надавати файли, які не встановлені?

Відповіді:


10

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

[jb @ smokey ~] $ rpm -qf / etc / sudoers
sudo-1.6.9p13-8.fc9.x86_64

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

[jb @ smokey ~] $ yum whatprovides "/ etc / sudoers"
sudo-1.6.9p13-8.fc9.x86_64: Дозволяє обмежений доступ до коренів для вказаних користувачів
Репо: оновлення-новачка
Збігається з:
Ім'я файлу: / etc / sudoers  

sudo-1.6.9p13-4.fc9.x86_64: Дозволяє обмежений доступ до коренів для вказаних користувачів
Репо: Федора
Збігається з:
Ім'я файлу: / etc / sudoers

sudo-1.6.9p13-8.fc9.x86_64: Дозволяє обмежений доступ до коренів для вказаних користувачів
Репо: встановлено
Збігається з:
Інше: надає відповідність: / etc / sudoers

Зауважте, що "yum whatprovides" - це відповідність шаблону, тому, якщо ви не впевнені, де саме шукаєте файл, який ви шукаєте, у структурі каталогів просто оточіть його цитатами та зірочками:

yum whatзабезпечує "* foo *"

Аналогічно, якщо ви впевнені, що шукаєте, це двійкове ви можете зробити:

yum whatзабезпечує "* bin / foo"

5

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

rpm -qif / bin / ls
Назва: coreutils Переїзд: (не переїжджає)
Версія: 5.97 Постачальник: Red Hat, Inc.
Реліз: 23.el5 Дата складання: пн 13 липня 2009 04:21:27 MDT
Дата встановлення: Пт 11 вересня 2009 04:46:01 AM Хост побудови 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, 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, MDT
Дата встановлення: (не встановлено) Хост збирання: hs20-bc1-6.build.redhat.com
Група: Розробка / Бібліотеки / RPM джерела Java: jzlib-1.0.7-4jpp.1.src.rpm
Розмір: 280436 Ліцензія: BSD-стиль
Підпис: DSA / SHA1, Чт 18 січня 2007 08:49:50 MST, Ідентифікатор ключа 5326810137017186
Пакувальник: Red Hat, Inc. 
URL: 
Короткий зміст: JZlib повторна реалізація zlib в чистому Java
Опис:
Зліб призначений для вільного, загального призначення, юридично необрізаного
- тобто не охоплені жодними патентами - стиснення даних без втрат
бібліотека для використання практично на будь-якому комп'ютерному апаратному та операційній системі.
Зліб написали Жан-лоп Гейлі (компресія) та Марк Адлер
(декомпресія).
/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.


2

У сховищах на базі yum ви можете спробувати щось подібне yum provides */filename


1

afaik, з чистими об / хв це неможливо. 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.