Найти, к какому файлу относится файл в Ubuntu /Debian?

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

256 голосов | спросил Jay Conrod 22 J000000Wednesday09 2009, 23:06:32

8 ответов


209
имя файла поиска apt-файла

или

apt-file search /path /to /file


Чтобы установить apt-file , Применение:

sudo apt-get install apt-file

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

Обновление sudo apt-file
ответил John T 22 J000000Wednesday09 2009, 23:08:44
348

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

dpkg -S /usr /bin /ls
  

'dpkg -S' просто соответствует строке, которую вы   поставьте его, поэтому просто используйте 'ls' как   аргумент соответствует любому файлу из любого   пакет, который имеет «ls» в любом месте   имя файла. Так обычно это хорошая идея   использовать абсолютный путь. Ты можешь видеть   во втором примере 12 тыс.   файлы, которые, как известно, dpkg соответствуют   голая строка 'ls'.

ответил splattne 22 J000000Wednesday09 2009, 23:13:44
15

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

Для скорости я добавил в закладки URL:

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

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

ответил jamuraa 23 J000000Thursday09 2009, 00:07:17
11

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

$ dlocate [PATTERN]
Перечислите все записи, где либо имя пакета, либо имя файла соответствует PATTERN.
ответил jeremiah 8 PM000000110000002731 2011, 23:30:27
4

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

wajig whichpackage /path /to /file

например.

wajig whichpackage /etc/apt/sources.list

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

Чтобы установить wajig, используйте:

apt-get install wajig

Эта команда `whichpackage 'сама зависит от apt-файла

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

Обновление sudo wajig

Обновление sudo apt-file

(и Super Cow, Easter egss?!)

ответил pete_m 14 Jam1000000amMon, 14 Jan 2013 06:40:06 +040013 2013, 06:40:06
2

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

ответил kiri 28 +04002013-10-28T14:40:51+04:00312013bEurope/MoscowMon, 28 Oct 2013 14:40:51 +0400 2013, 14:40:51
0

Попробуйте найти файлы, используя http: //www. kodkast.com/applications/find-which-package-file-belongs-to

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

ответил Ravi Agarwal 20 ThuEurope/Moscow2012-12-20T04:33:23+04:00Europe/Moscow12bEurope/MoscowThu, 20 Dec 2012 04:33:23 +0400 2012, 04:33:23
0

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

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

zer @ ivy: ~ 10:45 $ zsh5
В настоящее время программа «zsh5» не установлена. Чтобы запустить «zsh5», пожалуйста, спросите
ваш администратор установит пакет 'zsh'
Команда zsh5: команда не найдена

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

zer @ плющ: ~ 09:46 $ zsh
Нет команды «zsh», вы имели в виду:
 Команда 'lsh' из пакета 'lsh-client' (main)
 Команда 'osh' из пакета 'omake' (main)
 Команда 'ysh' из пакета 'libyaml-shell-perl' (main)
 Команда 'ssh' из пакета 'openssh-client' (main)
 Команда 'vsh' из пакета 'crystalpace' (main)
 Команда 'dsh' из пакета 'dsh' (main)
 Команда «зола» из упаковки «ясень» (основная)
 Команда 'msh' из пакета 'nmh' (main)
 Команда zssh из пакета 'zssh' (main)
 Команда «qsh» из пакета «gridengine-client» (основной)
 Команда 'sh' из пакета 'dash' (main)
 Команда 'bsh' из пакета 'bsh' (main)
Команда zsh: команда не найдена
ответил erwing 24 12014vEurope/Moscow11bEurope/MoscowMon, 24 Nov 2014 12:59:47 +0300 2014, 12:59:47

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132