Найти, к какому файлу относится файл в Ubuntu /Debian?
Я часто обнаруживаю, что у меня отсутствует программа, справочная страница или другой файл при работе в моей системе Ubuntu 8.04. Есть ли простой способ поиска того, какой пакет содержит данный файл (независимо от того, установлен он уже или нет)? Может быть, какой-то непонятный вариант для apt или dpkg?
8 ответов
(Debian /Ubuntu) Узнайте, какой пакет файл принадлежит :
dpkg -S /usr /bin /ls
'dpkg -S' просто соответствует строке, которую вы поставьте его, поэтому просто используйте 'ls' как аргумент соответствует любому файлу из любого пакет, который имеет «ls» в любом месте имя файла. Так обычно это хорошая идея использовать абсолютный путь. Ты можешь видеть во втором примере 12 тыс. файлы, которые, как известно, dpkg соответствуют голая строка 'ls'.
packages.debian.org - это то, что я всегда использую для выполнения этой задачи. Он превосходит apt-файл, так как он также может найти части имен файлов. Он также связан с основным списком пакетов, в котором будут перечислены описания, ошибки и т. Д. В целом хороший веб-сайт. Не так полезно из командной строки, но все же весьма полезно.
Для скорости я добавил в закладки URL:
http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any
в Firefox и добавил «debfind» в качестве ключевого слова (нажмите «больше» в менеджере закладок с ним hilighted), поэтому я могу просто набрать «debfind», и он будет работать. Вы можете изменить «набор» от неустойчивого до стабильного или тестирования, если хотите, для других версий дистрибутива.
Вы также можете использовать dlocate. На странице man;
$ dlocate [PATTERN]
Перечислите все записи, где либо имя пакета, либо имя файла соответствует PATTERN.
Я нашел Ваджига ...
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?!)
В ответ на ответ jamuraa для Debian вы также можете перейти на http://packages.ubuntu.com/ для Ubuntu. Вам придется немного прокрутить список, чтобы найти «Поиск содержимого пакетов» , где вы можете ввести путь к файлу.
Попробуйте найти файлы, используя http: //www. kodkast.com/applications/find-which-package-file-belongs-to
Это приложение для поиска файлов, которые содержатся в разных пакетах rpms /linux, и очень полезно, когда вы даже не устанавливаете rpm на вашем компьютере.
Пакет, не найденный командой, дает вам подсказки о потенциальных командах и имени пакета 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: команда не найдена