Як знайти, якому пакету належить певна команда на CentOS?


19

Наприклад, я легко можу знайти команду locate для пакету mlocate.i386.

yum search locate
mlocate.i386 : An utility for finding files by name
[mirror@home /]$ rpm -qa | grep locate
mlocate-0.15-1.el5.1

yum search updatedb
Loaded plugins: fastestmirror, protectbase
0 packages excluded due to repository protections
=========================================== Matched: updatedb ===========================================
mlocate.i386 : An utility for finding files by name

Але не так просто знайти, до якої команди безкоштовних пакетів належить:

yum search free   // this command just returns too much informationy 
rpm -qa | grep free
freetype-2.2.1-31.el5_8.1   // obviously not the package by which free command is installed

Так чи є якийсь переконливий спосіб дізнатися, до якого пакета належить певна команда в Linux? Наприклад, CentOS або деякі інші дистрибутиви

Відповіді:



24

Приклад Ubuntu / Debian для перевірки пакета freeкоманди:

dpkg -S $(which free)

це працює лише для встановлених пакетів. Я знайшов тут щось, що працює для не встановлених пакетів$ dpkg -S */free$*
bobrobbob

@bobrobbob Боюся, що це не правильно. Я протестував, dpkg -S */firefox$*який дає кілька результатів на сервері, на якому встановлений Firefox, жоден на сервері без Firefox. Я думаю, що це не може працювати, оскільки dpkgце команда, що діє на локально встановлених пакетах. Щоб знайти невстановлені пакети, перейдіть на пакунки
pack.ubuntu.com/…

о Боже. ви маєте рацію, вибачте за це
bobrobbob

1
Якщо ви отримуєте DPKG-запит: шлях не знайдений відповідний шаблон спробувати це : dpkg -S "$(readlink -fn "$(which free)")".
Пабло А

7

Що стосується CentOS, як щодо yum?

Використовуйте

which free 

щоб дізнатися, де це

Для мене це є

/ usr / bin / безкоштовно

Тож тоді можна бігати

yum provides /usr/bin/free

і він підкаже, який пакет має


Якщо the commandу ваших центрах не було встановлено чи доступно, ви можете використовувати yum provides <command>, тому що which <command>повернетесьnot <command> in ...
Lane Ouyang

1

Для всіх дистрибутивів на основі червоного капелюха ви можете використовувати утиліту управління пакетами yum

yum provides `which free`

надає аргумент вказує, який пакет надає певну функцію або файл.

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