Часто я знаю имя нужной мне программы командной строки, но не знаю имени пакета, который предоставляет эту программу. Как мне узнать название пакета, в котором находится нужная мне программа? В системах на основе RPM они имеют whatprovides
вариант rpm -q --whatprovides /usr/X11R6/bin/xclock
который найдет правильный пакет. Есть ли что-нибудь подобное для систем на базе Debian?
Если пакет установлен, вы хотите dpkg -S /path/to/file
. Если пакет не установлен, воспользуйтесь утилитой apt-file (apt-file update; apt-file search /path/to/file
).
В Ubuntu есть служебная программа «команда не найдена», которая сообщит вам, какой пакет установить, чтобы получить конкретную команду. Если он настроен правильно (возможно, при установке по умолчанию?), Он появится, когда вы введете команду, которая не установлена. Однако вы также можете запустить его вручную:
$ /usr/lib/command-not-found --ignore-installed test
The program 'test' is currently not installed. You can install it by typing:
sudo apt-get install coreutils
Ubuntu, как и Debian, поставляется с приложением apt-file. Это позволяет вам, очень похоже на apt-get, просто искать файлы в пакетах.
Таким образом, у вас будет
$ apt-file update
$ apt-file search xclock
Вот и все. Если вам повезет, вы также можете использовать интерфейс в нижней части Пакеты Debian сайт. Это будет работать, если разработчики Ubuntu не изменили так сильно по сравнению с исходной версией Debian.
Вы также можете использовать apt-cache search [файл], чтобы проверить локальные кеши для приложения.