Как выяснить, в каком пакете что-то есть, не прибегая к Google?

29

Мне часто хочется что-то установить, но я не уверен в том, в каком пакете он находится. Это очень распространенное явление для меня:

$ make html
sphinx-build -b djangohtml -d _build/doctrees   . _build/html
make: sphinx-build: Command not found
make: *** [html] Error 127

$ sudo apt-get install sphinx
E: Unable to locate package sphinx

$ sudo apt-get install sphinx-build
E: Unable to locate package sphinx-build

Googles

$ sudo apt-get install python-sphinx

Есть ли способ лучше?

Кит Сунде
источник

Ответы:

31

Установите apt-файл и запуститеapt-file update

Затем используйте apt-file search sphinx-buildдля поиска пакетов, содержащих файл sphinx-build

Флориан Диш
источник
Хороший! Я всегда прибегал к packages.ubuntu.com , но приложение командной строки всегда лучше: D
Egil
15

Ubuntu довольно умный. Просто попробуйте запустить его.

$ sphinx-build

The program 'sphinx-build' is currently not installed.  You can install it by typing:
sudo apt-get install python-sphinx
КПК
источник
2
Кто-нибудь знает, как именно эта «умность» реализована в Ubuntu? например, какой пакет обеспечивает это?
entropo
5
@entropo: пакет, обеспечивающий эту функциональность, называется «команда не найдена».
Tweek
3
Это следует использовать очень осторожно, так как команда, которая не работает из скрипта или make-файла, может работать, если она вызывается из вашей оболочки (например, потому что скрипт использует другой $ PATH или у вас есть псевдоним с тем же именем в вашей оболочке) и может иметь нежелательные последствия.
Флориан Диш,
3

Я не знаю, сможет ли это сделать apt-get, но я все равно предпочитаю использовать aptitude.

Используя его команду поиска, вы получаете список пакетов, который содержит искомую строку, однако он еще не полностью отвечает на ваш вопрос, так как не показывает, какой пакет содержит искомый бинарный файл.

Пример:

sudo aptitude search sphinx
p   gstreamer0.10-pocketsphinx      - lightweight speech recognition - GStreamer
p   libpocketsphinx-dev             - lightweight speech recognition - developme
p   libpocketsphinx1                - lightweight speech recognition - library  
p   libsphinx-search-perl           - Perl module for Sphinx search engine      
p   libsphinx2-dev                  - speech recognition library - development k
p   libsphinx2g0                    - speech recognition library                
p   libsphinxbase-dev               - Sphinx base libraries - development files 
p   libsphinxbase1                  - Sphinx base libraries                     
p   pocketsphinx-hmm-tidigits       - lightweight speech recognition - TIDIGITS 
p   pocketsphinx-hmm-wsj1           - lightweight speech recognition - WSJ1 acou
p   pocketsphinx-lm-wsj             - lightweight speech recognition - WSJ langu
p   pocketsphinx-utils              - lightweight speech recognition - command-l
p   python-pocketsphinx             - lightweight speech recognition - Python mo
p   python-pocketsphinx-dbg         - lightweight speech recognition - Python mo
p   python-repoze.sphinx.autointerf - Sphinx extension that auto-generates API d
p   python-sphinx                   - tool for producing documentation for Pytho
p   python-sphinxbase               - Sphinx base libraries - Python module     
p   python-sphinxbase-dbg           - Sphinx base libraries - Python module (deb
v   python2.6-pocketsphinx          -                                           
v   python2.6-pocketsphinx-dbg      -                                           
v   python2.6-sphinxbase            -                                           
v   python2.6-sphinxbase-dbg        -                                           
v   python2.7-pocketsphinx          -                                           
v   python2.7-pocketsphinx-dbg      -                                           
v   python2.7-sphinxbase            -                                           
v   python2.7-sphinxbase-dbg        -                                           
p   sphinx2-bin                     - speech recognition utilities              
p   sphinx2-hmm-6k                  - speech recognition library - default acous
p   sphinxbase-utils                - Sphinx base libraries - utilities         
p   sphinxsearch                    - Fast standalone full-text SQL search engine
Тич
источник
Это немного помогает, но после этого вам нужно запустить что-то вроде 'dpkg -L packagename | grep bin ', чтобы найти, какие команды фактически предоставляет пакет.
Танат
3

Мне нравится использовать http://packages.ubuntu.com/ - там есть «Поиск содержимого пакетов». Debian также имеет аналогичный интерфейс на http://packages.debian.org .

Это имеет то преимущество, что вы можете использовать его без CLI-доступа к самой Ubuntu, например, объясняя вещи по телефону.

liori
источник
2

Вы можете использовать группу команд apt или aptitude, которые я рекомендую выше apt. Вот список для поиска

APT

Чтобы найти что-то похожее на команду, которую вы хотите: apt-cache search Xнапример apt-cache search cheese, даст вам все, что связано с сыром.
Чтобы показать, какие зависимости и все, что у вас есть, вы бы сделали apt-cache show cheese.
Конечно установить бы было apt-get install cheese.

APTITUDE

Для поиска: aptitude search cheeseкоторый покажет более приятный список, чем apt
Показать: aptitude show cheeseкоторый снова покажет более приятный и дружелюбный список
Для установки: aptitude install cheeseустановить. Опять приятнее.

Также aptitude предоставляет более релевантную информацию о том, что вы ищете, например:

apt-cache search phiVS aptitude search phi
apt-cache search sphiVSaptitude search sphi

Если вам нужна версия с графическим интерфейсом, я рекомендую Synaptic Package Manager или более простой Software Center . В Synaptic вы можете найти что-то похожее на то, что вы ищете, и оно покажет вам это.

Луис Альварадо
источник
0

авто-склонные

auto-aptэто пакет, который очень пригодится, особенно с Makefiles и configureскриптами, которые ссылаются на вещи, которых вы, возможно, не имеете, и не знаете, где их найти, что часто бывает сложно с заголовочными файлами. Вы вызвали makeв этом случае, и он попытался вызвать sphinx-build, но не смог, когда не смог найти его.

auto-apt run [...]выполнит указанную команду, а затем проведет вас через установку пакетов, содержащих недостающие файлы, которые, как он знает, apt-getмогут найти и установить

Так что просто вызовите auto-apt run make htmlи посмотрите, что получится :)

Для получения дополнительной информации см. Документацию для auto-apt.

Hut8
источник