Frage Wie man erkennt, in welchem ​​Ubuntu-Paket sich ein Tool befindet


Als konkretes Beispiel möchte ich ein bestimmtes Tool verwenden können, das nicht installiert ist (z. B. nslookup) und in der Lage sein zu sagen, welches Paket ich installieren muss, wenn Folgendes fehlschlägt:

apt-get install nslookup
E: Unable to locate package nslookup

Natürlich kann ich googeln, um die Antwort für ein bestimmtes Paket (dnsutils) zu finden, aber ich möchte wissen, wie ich es selbst finde.


19
2017-11-18 23:00


Ursprung


Dies ist schnell und schmutzig apt-cache search nslookup - The Unix Janitor
apt-cache durchsucht nur die Beschreibungen. Ich suchte nach einer bestimmten Datei, wies ErikA darauf hin: apt-file search FOO - ErebusBat


Antworten:


Es gibt zwei Möglichkeiten, dies zu tun:

host ~ # apt-file update
host ~ # apt-file search nslookup
dnsutils: /usr/bin/nslookup
dnsutils: /usr/share/man/man1/nslookup.1.gz
gajim: /usr/share/gajim/src/common/nslookup.py
kaptain: /usr/share/kaptain/nslookup.kaptn
kvirc2-data: /usr/share/kvirc2/help/en/nslookup.kvihelp
libgnet2.0-0: /usr/share/doc/libgnet2.0-0/examples/dnslookup.c.gz
manpages-ja: /usr/share/man/ja/man8/nslookup.8.gz
procmail-lib: /usr/share/procmail-lib/pm-janslookup.rc
rbot: /usr/share/rbot/plugins/nslookup.rb
scrollz: /usr/share/scrollz/help/nslookup
zsh: /usr/share/zsh/4.3.4/functions/Completion/Unix/_nslookup
zsh: /usr/share/zsh/4.3.4/functions/Misc/nslookup
zsh-beta: /usr/share/zsh-beta/functions/Completion/Unix/_nslookup
zsh-beta: /usr/share/zsh-beta/functions/Misc/nslookup

und...

host ~ # apt-cache search nslookup
host - utility for querying DNS servers
dnsutils - Clients provided with BIND

19
2017-11-18 23:08



apt-cache Durchsucht nur die Pakete, die Sie bereits installiert haben, während apt-file durchsucht ALLE Pakete in Ihrem sources.listeinschließlich Pakete, die nicht installiert sind. Also in diesem Fall apt-file ist derjenige, der benutzt wird. - Steven Monday
@ Steven, ich muss dem widersprechen. Ich habe gerade eine Test-Suche nach "vlc" auf meinem Ubuntu VPS mit apt-cache durchgeführt, und es zeigte alle vlc-bezogenen Pakete, von denen ich keine installiert habe. - EEAA
@ Steven Monai, das ist nicht wahr. apt-cache betrachtet Paketbeschreibungen (Suchen /var/lib/apt/lists/*_Packages). Etwas installiert zu haben ist egal. Die Paketbeschreibungen enthalten keine Liste der Dateien. I stimme zu apt-file ist wahrscheinlich das Tool zu verwenden, wenn das Öffnen eines Webbrowsers keine Option ist. - Zoredache
Es gibt auch Auto-Apt, als Alternative zu apt-Datei. Ich habe keine starke Vorliebe. Auto-apt kann auf fehlgeschlagene Exec-Aufrufe warten, was nützlich sein kann, wenn ein configure-Skript mit Erkennung ausgeführt wird. - Tobu
@EricA, Zoredache: Ich stehe korrigiert. Lassen Sie mich wiederholen: Wenn Sie wissen müssen, welches deinstallierte Paket eine bestimmte Datei enthält (z. /usr/bin/nslookup), dann benutze apt-file. Wenn Sie nur die Paketnamen und -beschreibungen durchsuchen möchten, dann apt-cache funktioniert gut. - Steven Monday


Hast du command-not-found Eingerichtet?

Geben Sie einfach den Befehl in bash oder zsh ein und es wird Ihnen sagen, welches Paket es hat, und wenn Sie Nicht-Hauptrepos aktivieren oder Ihren Pfad reparieren müssen. Oder anrufen command-not-found $command_name.

Oder du könntest gehen http://packages.ubuntu.com/file:bin/nslookup , aber das sind standardmäßig karmische Pakete.


3
2017-11-18 23:13





Müssen Sie dies über die Befehlszeile tun? Normalerweise suche ich einfach weiter http://packages.ubuntu.com/ (oder packages.debian.de) wenn ich nach Paketen suche.


0
2017-11-18 23:18





Ubuntus Online-Repository-Browser hat die Funktion "Inhalt von Paketen durchsuchen". AFAIK, es ist nicht in apt-get / aptitude implementiert, aber in den meisten Fällen werden Sie mit "apt-get search" zufrieden sein, wenn Sie nach einem Paket suchen, das ein ähnlich benanntes Programm enthält.


0
2017-11-18 23:28