Como faço para descobrir em que pacote está o conteúdo sem recorrer ao Google?

29

Muitas vezes me vejo querendo instalar algo, mas não tenho certeza do pacote em que está. É uma ocorrência muito comum para mim:

$ 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

Existe uma maneira melhor?

Kit Sunde
fonte

Respostas:

31

Instale o apt-file e executeapt-file update

Em seguida, use apt-file search sphinx-buildpara procurar pacotes contendo um arquivo chamado sphinx-build

Florian Diesch
fonte
Agradável! Eu sempre recorreu a packages.ubuntu.com , mas um aplicativo de linha de comando é sempre melhor: D
Egil
15

O Ubuntu é bastante inteligente. Apenas tente executá-lo.

$ sphinx-build

The program 'sphinx-build' is currently not installed.  You can install it by typing:
sudo apt-get install python-sphinx
CPC
fonte
2
Alguém sabe exatamente como essa "inteligência" é implementada no Ubuntu? por exemplo, qual pacote fornece isso?
entropo
5
@entropo: O pacote que fornece essa funcionalidade é "comando não encontrado".
Tweek
3
Isso deve ser usado com muito cuidado, pois um comando que não funciona a partir de um script ou makefile pode funcionar se for chamado do seu shell (por exemplo, porque o script está usando outro $ PATH ou você tem um alias com o mesmo nome no seu shell) e poderia ter efeitos indesejados.
Florian Diesch 13/04
3

Não sei se o apt-get pode fazer isso, mas prefiro usá-lo de qualquer maneira.

Usando seu comando de busca, você obtém uma lista de pacotes que contêm a string que você está procurando, no entanto, ainda não responde totalmente à sua pergunta, pois não revela qual pacote contém o binário que você está procurando.

Exemplo:

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
Tich
fonte
Isso ajuda um pouco, mas depois disso você precisaria executar algo como 'dpkg -L packagename | grep bin 'para descobrir quais comandos um pacote realmente fornece.
Tanath
3

Eu gosto de usar http://packages.ubuntu.com/ - há "Pesquisar o conteúdo dos pacotes" dentro. O Debian também possui uma interface semelhante em http://packages.debian.org .

Isso tem a vantagem de poder ser usado sem o acesso da CLI ao Ubuntu, explicando as coisas por telefone.

liori
fonte
2

você pode usar o grupo apt de comandos ou aptitude que recomendo acima do apt. Aqui está a lista para pesquisar

APT

Para procurar algo semelhante ao comando que você deseja: apt-cache search Xpor exemplo apt-cache search cheese, você terá tudo relacionado ao queijo.
Para mostrar quais dependências e outras coisas você faria apt-cache show cheese.
Claro que instalar seria apt-get install cheese.

APTIDÃO

Para pesquisar: o aptitude search cheeseque mostrará uma lista mais agradável do que o apt
Para mostrar: o aptitude show cheeseque novamente mostrará uma lista mais agradável e mais amigável
Para instalar: aptitude install cheesepara instalá-lo. Mais uma vez melhor.

O aptitude também fornece informações mais relevantes para o que você está procurando, por exemplo:

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

Se você deseja uma versão da GUI, recomendo o Synaptic Package Manager ou um Software Center mais simples . No Synaptic, você pode procurar algo semelhante ao que está procurando e ele será exibido.

Luis Alvarado
fonte
0

auto-apt

auto-apté um pacote bastante útil, especialmente com Makefiles e configurescripts que fazem referência a coisas que você pode não ter e não sabe onde encontrar, o que geralmente é complicado nos arquivos de cabeçalho. Você invocou makeneste caso, e ele tentou invocar sphinx-build, mas falhou quando não conseguiu encontrá-lo.

auto-apt run [...]executará o comando especificado e o guiará na instalação de pacotes contendo arquivos ausentes que ele sabe que apt-getpodem encontrar e instalar.

Então, basta invocar auto-apt run make htmle ver o que acontece :)

Para mais informações, consulte a documentação do auto-apt

Hut8
fonte