Comment savoir dans quel package se trouve quelque chose sans avoir recours à Google?


29

Je me retrouve souvent à vouloir installer quelque chose, mais je ne sais pas dans quel package il se trouve. C'est un phénomène très courant pour moi:

$ 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

Y a-t-il une meilleure façon?

Réponses:


31

Installez apt-file et exécutezapt-file update

Ensuite, utilisez apt-file search sphinx-buildpour rechercher des packages contenant un fichier nommé sphinx-build


Joli! J'ai toujours eu recours à packages.ubuntu.com , mais une application en ligne de commande est toujours la meilleure: D
Egil

15

Ubuntu est assez intelligent. Essayez de l'exécuter.

$ sphinx-build

The program 'sphinx-build' is currently not installed.  You can install it by typing:
sudo apt-get install python-sphinx

2
Est-ce que quelqu'un sait exactement comment cette "intelligence" est implémentée dans Ubuntu? par exemple, quel package fournit cela?
entropo

5
@entropo: Le package qui fournit cette fonctionnalité est "commande introuvable".
Tweek

3
Cela devrait être utilisé très soigneusement car une commande qui ne fonctionne pas à partir d'un script ou un makefile peut fonctionner si elle est appelée à partir de votre shell (par exemple parce que le script utilise un autre $ PATH ou vous avez un alias avec le même nom dans votre shell) et pourrait avoir des effets indésirables.
Florian Diesch

3

Je ne sais pas si apt-get peut le faire, mais je préfère quand même utiliser aptitude.

En utilisant sa commande de recherche, vous obtenez une liste de packages qui contient la chaîne que vous recherchez, mais qui ne répond toujours pas complètement à votre question, car elle ne révèle pas quel package contient le binaire que vous recherchez.

Exemple:

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

Cela aide quelque peu, mais après cela, vous devrez exécuter quelque chose comme 'dpkg -L nom_package | grep bin 'pour trouver les commandes fournies par un package.
Tanath

3

J'aime utiliser http://packages.ubuntu.com/ - il y a "Rechercher le contenu des packages" à l'intérieur. Debian a également une interface similaire sur http://packages.debian.org .

Cela a l'avantage que vous pouvez l'utiliser sans accès CLI à Ubuntu lui-même, par exemple pour expliquer les choses sur un téléphone.


2

vous pouvez utiliser le groupe de commandes apt ou aptitude que je recommande ci-dessus apt. Voici la liste à rechercher

APTE

Pour rechercher quelque chose de similaire à la commande que vous souhaitez: apt-cache search Xpar exemple apt-cache search cheese, vous donnera tout ce qui concerne le fromage.
Pour montrer quelles dépendances et ce qu'il a, vous feriez apt-cache show cheese.
Bien sûr, l'installation serait apt-get install cheese.

APTITUDE

Pour rechercher: aptitude search cheesequi affichera une liste plus agréable que apt
Pour afficher: aptitude show cheesequi affichera à nouveau une liste plus agréable et plus conviviale
Pour installer: aptitude install cheesepour l'installer. Encore mieux.

Aptitude donne également des informations plus pertinentes sur ce que vous recherchez, par exemple:

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

Si vous voulez une version GUI, je recommande Synaptic Package Manager ou un centre logiciel plus simple . Dans Synaptic, vous pouvez rechercher quelque chose de similaire à ce que vous recherchez et il vous le montrera.


0

auto-apt

auto-aptest un paquet qui est très pratique, en particulier avec les Makefiles et les configurescripts qui référencent des choses que vous pourriez ne pas avoir et ne savez pas où les trouver, ce qui est souvent délicat avec les fichiers d'en-tête. Vous avez invoqué makedans ce cas, et il a essayé d'invoquer sphinx-build, mais a échoué lorsqu'il ne l'a pas trouvé.

auto-apt run [...]exécutera la commande spécifiée, puis vous guidera à travers l'installation de packages contenant des fichiers manquants qu'il sait apt-getpouvoir trouver et installer.

Alors, invoquez auto-apt run make htmlet voyez ce qui se passe :)

Pour plus d'informations, consultez la documentation de l'auto-apt

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.