¿Cómo puedo averiguar en qué paquete se encuentra algo sin recurrir a Google?

29

A menudo me encuentro con ganas de instalar algo, pero no estoy seguro de en qué paquete está. Esto es algo muy común para mí:

$ 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

google

$ sudo apt-get install python-sphinx

¿Hay una mejor manera?

Kit Sunde
fuente

Respuestas:

31

Instalar apt-file y ejecutarapt-file update

Luego, use apt-file search sphinx-buildpara buscar paquetes que contengan un archivo llamado sphinx-build

Florian Diesch
fuente
¡Buena esa! Siempre he recurrido a packages.ubuntu.com , pero una aplicación de línea de comandos siempre es la mejor: D
Egil
15

Ubuntu es bastante inteligente. Solo intenta ejecutarlo.

$ sphinx-build

The program 'sphinx-build' is currently not installed.  You can install it by typing:
sudo apt-get install python-sphinx
CPC
fuente
2
¿Alguien sabe exactamente cómo se implementa esta "inteligencia" en Ubuntu? por ejemplo, ¿qué paquete proporciona esto?
entropo
55
@entropo: el paquete que proporciona esta funcionalidad es "comando no encontrado".
Tweek
3
Esto debe usarse con mucho cuidado como un comando que no funciona desde un script o un archivo MAKE puede funcionar si se llama desde su shell (por ejemplo, porque el script está utilizando otro $ PATH o tiene un alias con el mismo nombre en su shell) podría tener efectos no deseados.
Florian Diesch
3

No sé si apt-get puede hacerlo, pero prefiero usar aptitude de todos modos.

Usando su comando de búsqueda, obtiene una lista de paquetes que contiene la cadena que está buscando, sin embargo, todavía no responde completamente a su pregunta, ya que no revela qué paquete contiene el binario que está buscando.

Ejemplo:

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
fuente
Esto ayuda un poco, pero después de eso necesitaría ejecutar algo como 'dpkg -L packagename | grep bin 'para encontrar qué comandos proporciona realmente un paquete.
Tanath
3

Me gusta usar http://packages.ubuntu.com/ - hay "Buscar el contenido de los paquetes" dentro. Debian también tiene una interfaz similar en http://packages.debian.org .

Esto tiene la ventaja de que puede usarlo sin el acceso de la CLI a Ubuntu, por ejemplo, explicando las cosas por teléfono.

liori
fuente
2

puede usar el grupo de comandos o aptitud de apt que recomiendo arriba de apt. Aquí está la lista para buscar

APTO

Para buscar algo similar al comando que desea: apt-cache search Xpor ejemplo, apt-cache search cheesele dará todo lo relacionado con el queso.
Para mostrar qué dependencias y cosas tiene, harías apt-cache show cheese.
Por supuesto que instalar sería apt-get install cheese.

APTITUD

Para buscar: aptitude search cheeseque mostrará una lista más agradable que apt.
Para mostrar: aptitude show cheeseque nuevamente mostrará una lista más agradable y amigable.
Para instalar: aptitude install cheesepara instalarlo. De nuevo más amable.

Además, aptitude brinda información más relevante sobre lo que está buscando, por ejemplo:

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

Si desea una versión GUI, le recomiendo Synaptic Package Manager o un Centro de software más simple . En Synaptic puede buscar algo similar a lo que está buscando y se lo mostrará.

Luis Alvarado
fuente
0

auto-apt

auto-aptes un paquete que es muy útil, especialmente con Makefiles y configurescripts que hacen referencia a cosas que quizás no tengas y no sabes dónde encontrar, lo que a menudo es complicado con los archivos de encabezado. Invocaste makeen este caso, e intentó invocar sphinx-build, pero falló cuando no pudo encontrarlo.

auto-apt run [...]ejecutará el comando especificado, luego lo guiará a través de la instalación de paquetes que contienen archivos faltantes que sabe que apt-getpuede encontrar e instalar.

Entonces, solo invoque auto-apt run make htmly vea qué sucede :)

Para obtener más información, consulte la documentación de auto-apt

Choza8
fuente