В Arch Linux, как я могу узнать, какой пакет для установки будет содержать файл X?

92

Я ищу пакет, который предоставляет конкретный двоичный файл, чтобы я мог установить его. Как я могу найти, чтобы узнать, какие пакеты предоставляют этот двоичный файл? (примечание: я знаю, что есть по крайней мере один инструмент, который делает это, но я забыл его название.)

xenoterracide
источник
Кроме того, бинарный файл, который я ищу, - это /usr/sbin/ipsetесли кто-то хочет подсказать мне, какой пакет он предоставляет, даже если он не знает ответа на вопрос.
ксенотеррацид
Жиль ответ правильный. Что касается ipset, мне удалось найти его только в AUR aur.archlinux.org/packages.php?ID=16553
jasonwryan,

Ответы:

118

Начиная с pacman 5.0, есть встроенная функциональность для поиска в базе данных с помощью -Fопции. Сначала обновите базу данных:

sudo pacman -Fy

После этого вы можете увидеть , какой пакет содержит $filenameс

pacman -Fs $filename

или же

pacman -Fos $path

искать полный путь.

Поскольку вы знали, что ищете эквивалент apt-file, вы могли бы найти его в Pacman Rosetta .

Кроме того, вы можете использовать pkgfile . Установите его с помощью pacman -S pkgfile, затем запустите

sudo pkgfile -u

обновить базу данных. Чтобы увидеть, что содержит пакет $filename, запустите

pkgfile $filename
жилль
источник
1
Спасибо за Розеттский камень! Я буду использовать это для дистрибутивов rpm, а также для pacman.
jpaugh
3
Стоит отметить, что pacman -Fsпоиск по базовому имени, если вы хотите найти полный путь использования pacman -Fos. Пример: pacman -Fs /usr/bin/mount.cifsничего не возвращает, где так же pacman -Fs mount.cifsправильно возвращает cifs-utils, как иpacman -Fos /usr/bin/mount.cifs
Dev
27

способ Google:

site:www.archlinux.org/packages/ bin/filename

и в случае если он находится в AUR вместо официального пакета:

site:aur.archlinux.org/packages/ bin/filename
eshizhan
источник
Совсем неплохо.
ychaouche
Отличный совет, это, кажется, дает хорошие результаты. Я создал «поисковик» в Chrome с этим URL: https://www.google.com/search?q=site%3Awww.archlinux.org%2Fpackages%2F+%s.
Борек Бернард
22

Из ArchWiki :

$ pacman -Qo df

Это приведет к владению пакетом программы df(на момент написания, это так coreutils).

-Qo работает только на установленных пакетах и ​​их программах.

Вы можете увидеть больше аргументов в запросах к базам данных пакетов .

Amiad
источник
4
Это говорит только о том, какому пакету принадлежит файл, но не говорит о том, что вам нужно установить, чтобы получить его.
Дэвид С. Бишоп
@ DavidC.Bishop Разве это не одно и то же?
Виктор
6
@Victor Нет, пакет должен быть установлен в системе уже для того, чтобы запросить его.
Дэвид С. Бишоп
@ DavidC.Bishop Ах, я вижу, вы имели в виду "что установленному пакету принадлежит fle". Спасибо!
Виктор
1
Пожалуйста, отредактируйте свой пост, чтобы отразить то, что обсуждалось в комментариях.
Pompei2