Wie finde ich heraus, in welchem ​​Paket sich etwas befindet, ohne auf Google zurückzugreifen?


29

Ich möchte oft etwas installieren, bin mir aber nicht sicher, in welchem ​​Paket es sich befindet. Dies ist ein sehr häufiges Ereignis für mich:

$ 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

Gibt es einen besseren Weg?

Antworten:


31

Installiere apt-file und starteapt-file update

Verwenden Sie dann apt-file search sphinx-build, um nach Paketen zu suchen, die eine Datei mit dem Namen sphinx-build enthalten


Schön! Ich habe immer auf packages.ubuntu.com zurückgegriffen , aber eine Befehlszeilen-App ist immer am besten: D
Egil

15

Ubuntu ist ziemlich schlau. Versuche es einfach zu starten.

$ sphinx-build

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

2
Weiß jemand genau, wie diese "Schlauheit" in Ubuntu implementiert ist? zB welches Paket bietet das?
Entropo

5
@entropo: Das Paket, das diese Funktionalität bietet, ist "Befehl-nicht-gefunden".
12.

3
Dies sollte sehr vorsichtig verwendet werden, da ein Befehl, der von einem Skript oder Makefile aus nicht funktioniert, möglicherweise funktioniert, wenn er von Ihrer Shell aus aufgerufen wird (z. B. weil das Skript einen anderen $ PATH verwendet oder Sie einen Alias ​​mit demselben Namen in Ihrer Shell haben) und könnte unerwünschte Wirkungen haben.
Florian Diesch

3

Ich weiß nicht, ob apt-get das kann, aber ich bevorzuge es trotzdem, aptitude zu benutzen.

Mit dem Suchbefehl erhalten Sie eine Liste von Paketen, die die gesuchte Zeichenfolge enthält, die Ihre Frage jedoch noch nicht vollständig beantwortet, da nicht angezeigt wird, welches Paket die gesuchte Binärdatei enthält.

Beispiel:

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

Dies hilft etwas, aber danach müssten Sie so etwas wie 'dpkg -L Paketname | grep bin ', um herauszufinden, welche Befehle ein Paket tatsächlich bereitstellt.
Tanath


2

Sie können die apt-Gruppe von Befehlen oder aptitude verwenden, die ich über apt empfehle. Hier ist die Liste zum Suchen

GEEIGNET

Nach etwas ähnlichem wie dem gewünschten Befehl suchen: apt-cache search XZum Beispiel erhalten apt-cache search cheeseSie alles, was mit Käse zu tun hat.
Um zu zeigen, welche Abhängigkeiten und Dinge es hat, würden Sie tun apt-cache show cheese.
Wäre natürlich zu installieren apt-get install cheese.

EIGNUNG

Zum Suchen: Die aptitude search cheeseListe ist schöner als die von apt.
Zum Anzeigen: Die Liste ist aptitude show cheesewieder schöner und freundlicher.
Zum Installieren: aptitude install cheeseZum Installieren. Schon wieder schöner.

Aptitude liefert auch relevantere Informationen zu dem, wonach Sie suchen, zum Beispiel:

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

Wenn Sie eine GUI-Version wünschen, empfehle ich Synaptic Package Manager oder ein einfacheres Software Center . In Synaptic können Sie nach etwas suchen, das dem, was Sie suchen, ähnlich ist, und es wird Ihnen angezeigt.


0

Auto-Apt

auto-aptist ein Paket, das sehr nützlich ist, insbesondere bei Makefiles und configureSkripten, die auf Dinge verweisen, die Sie möglicherweise nicht haben und die nicht wissen, wo sie zu finden sind, was bei Header-Dateien oft schwierig ist. Sie haben makein diesem Fall aufgerufen , und es hat versucht, aufzurufen sphinx-build, ist jedoch fehlgeschlagen, als es es nicht finden konnte.

auto-apt run [...]führt den angegebenen Befehl aus und führt Sie dann durch die Installation von Paketen mit fehlenden Dateien, von denen bekannt apt-getist, dass sie gefunden und installiert werden können.

Also, einfach aufrufen auto-apt run make htmlund sehen, was passiert :)

Weitere Informationen finden Sie in der Dokumentation zu auto-apt

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.