Яка команда перелічити, які rpms можуть надати певний файл: rpm, що надають файли, які вже встановлені, або rpms, які можуть надавати файли, які не встановлені?
Яка команда перелічити, які rpms можуть надати певний файл: rpm, що надають файли, які вже встановлені, або rpms, які можуть надавати файли, які не встановлені?
Відповіді:
Для вже встановлених файлів / пакетів:
[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"
Я не знаю про файли, які вже не встановлені, але для вже встановленого файлу ви можете використовувати 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.
afaik, з чистими об / хв це неможливо. 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").