2009-07-22 19:06:32 +0000 2009-07-22 19:06:32 +0000
310
310

Найти, к какому пакету принадлежит файл в Ubuntu/Debian?

При работе на моей системе Ubuntu 8.04 я часто обнаруживаю, что мне не хватает программы, man-страницы или другого файла. Есть ли простой способ посмотреть, какой пакет содержит данный файл (уже установлен или нет)? Может быть, какой-нибудь непонятный вариант для apt или dpkg?

Ответы (8)

416
416
416
2009-07-22 19:13:44 +0000

(Debian/Ubuntu) Узнайте, к какому пакету принадлежит файл :

dpkg -S /usr/bin/ls

‘dpkg -S’ просто соответствует строке, которую вы предоставили, так что просто использование ‘ls’ в качестве аргумента соответствует любому файлу из любого пакета, который имеет ‘ls’ в любом месте имени файла. Так что обычно полезно использовать абсолютный путь. Во втором примере видно, что 12 тысяч файлов, которые известны dpkg, совпадают с голой строкой ‘ls’.

255
255
255
2009-07-22 19:08:44 +0000
apt-file search filename

или

apt-file search /path/to/file

Для установки apt-file , используйте:

sudo apt-get install apt-file

Вам нужно обновить его базу данных, прежде чем вы сможете ее использовать:

sudo apt-file update
20
20
20
2009-07-22 20:07:17 +0000

packages.debian.org это то, что я всегда использую для выполнения этой задачи. Он превосходит apt-файл, потому что может находить части имён файлов. Он также связан со списком основных пакетов, в котором будут перечислены описания, ошибки и т.д. В целом, это хороший сайт. Не так полезен из командной строки, но все же довольно полезен.

Для скорости я сделал закладку:

http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any

в Firefox, и добавил “debfind” в качестве ключевого слова (нажмите “больше” в менеджере закладок с поднятой головой), так что я могу просто напечатать “debfind” и это сработает. Вы можете изменить ‘suite’ его с нестабильного на стабильный или протестировать, если хотите, для других версий дистрибутива.

11
11
11
2011-08-08 19:30:27 +0000

Вы также можете использовать расположение. Из man-страницы;

$ dlocate [PATTERN]
List all records where either the package name or the filename matches PATTERN.
4
4
4
2013-01-14 02:40:06 +0000

Я нашел Ваджига…

wajig whichpackage /path/to/file

, например,

wajig whichpackage /etc/apt/sources.list

Wajig является удобным инструментом командной строки или консоли, который обертывает все apt-получить, dpkg доброту, которую вы никогда не хотели учиться. .

Для установки wajig использовать:

apt-get install wajig

Эта команда ‘whichpackage’ сама по себе зависит от apt-файла

вам все равно нужно будет обновить его базу данных, прежде чем вы сможете его использовать: - Я пока не знаю, делает ли wajig update whixh apt-get обновление также обновляет кэш файлов, но я ожидаю, что это может быть.

sudo wajig update

sudo apt-file update

(и Супер корова, Пасхальные яйца?!).

2
2
2
2013-10-28 10:40:51 +0000

Подобно ответу jamuraa для Debian, вы также можете перейти по ссылке http://packages.ubuntu.com/ для Ubuntu. Вам нужно будет немного прокрутить вниз, чтобы найти строку поиска “Поиск содержимого пакетов”, где вы можете ввести путь к файлу.

0
0
0
2014-11-24 09:59:47 +0000

Пакет command-not-found даёт подсказки о потенциальных командах и имя пакета debian. Он работает, вводя команду в оболочку bash и просматривая её вывод.

Например, если имя команды известно:

zer@ivy:~ 10:45 $ zsh5
The program 'zsh5' is currently not installed. To run 'zsh5' please ask
your administrator to install the package 'zsh'
zsh5: command not found

и если команда не известна, применяются некоторые предположения:

zer@ivy:~ 09:46 $ zsh
No command 'zsh' found, did you mean:
 Command 'lsh' from package 'lsh-client' (main)
 Command 'osh' from package 'omake' (main)
 Command 'ysh' from package 'libyaml-shell-perl' (main)
 Command 'ssh' from package 'openssh-client' (main)
 Command 'vsh' from package 'crystalspace' (main)
 Command 'dsh' from package 'dsh' (main)
 Command 'ash' from package 'ash' (main)
 Command 'msh' from package 'nmh' (main)
 Command 'zssh' from package 'zssh' (main)
 Command 'qsh' from package 'gridengine-client' (main)
 Command 'sh' from package 'dash' (main)
 Command 'bsh' from package 'bsh' (main)
zsh: command not found
0
0
0
2012-12-20 00:33:23 +0000

Попробуйте поискать файлы с помощью http://www.kodkast.com/applications/find-which-package-file-belongs-to

Это приложение для поиска файлов, которые содержатся в различных rpms/linux-пакетах, и оно очень полезно, когда на вашем компьютере даже не установлен rpm.

Похожие вопросы

11
12
13
19
5