Jak stwierdzić, w którym pakiecie Ubuntu znajduje się narzędzie

23

Jako konkretny przykład chcę być w stanie wziąć konkretne narzędzie, które nie jest zainstalowane (powiedzmy nslookup) i móc określić, który pakiet muszę zainstalować, gdy nie powiedzie się:

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

Oczywiście mogę znaleźć w Google odpowiedź na konkretny pakiet (dnsutils), ale chcę wiedzieć, jak go znaleźć.

ErebusBat
źródło
jest to szybkie i brudne wyszukiwanie apt-cache nslookup
The Unix Janitor,
apt-cache przeszukuje tylko opisy. Szukałem konkretnego pliku, zwróciła uwagę ErikA: apt-file search FOO
ErebusBat

Odpowiedzi:

23

Znam dwa sposoby, aby to zrobić:

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

i...

host ~ # apt-cache search nslookup
host - utility for querying DNS servers
dnsutils - Clients provided with BIND
EEAA
źródło
1
apt-cacheprzeszukuje tylko te pakiety, które już masz zainstalowane, a apt-fileprzeszukuje WSZYSTKIE pakiety w twoim sources.list, w tym pakiety, które nie zostały zainstalowane. Więc w tym przypadku apt-filejest to, którego należy użyć.
Steven poniedziałek,
1
@ Steven, będę musiał się z tym nie zgodzić. Właśnie przeprowadziłem testowe wyszukiwanie „vlc” na moim VPS Ubuntu przy użyciu apt-cache i pokazało wszystkie pakiety związane z vlc, z których żaden nie zainstalowałem.
EEAA,
@Steven Monai, to nieprawda. apt-cacheprzegląda opisy pakietów (wyszukiwania /var/lib/apt/lists/*_Packages). Zainstalowanie czegoś nie ma znaczenia. Opisy pakietów nie zawierają listy plików. Zgadzam się, że apt-filejest to prawdopodobnie narzędzie do użycia, jeśli otwarcie przeglądarki internetowej nie jest opcją.
Zoredache,
Istnieje również auto-apt, jako alternatywa dla apt-file. Nie mam silnych preferencji. auto-apt może nasłuchiwać nieudanych wywołań exec, co może być przydatne podczas uruchamiania skryptu konfiguracyjnego, który wykrywa funkcje.
Tobu,
1
@EricA, Zoredache: Poprawiłem się. Pozwól, że powtórzę: jeśli chcesz wiedzieć, który odinstalowany pakiet zawiera określony plik (np. /usr/bin/nslookup), Użyj apt-file. Jeśli chcesz tylko przeszukiwać nazwy i opisy pakietów, apt-cachedziała dobrze.
Steven Poniedziałek,
3

Czy masz command-not-foundzainstalowany?

Wystarczy wpisać polecenie w bash lub zsh, a dowiesz się, który pakiet go ma, i jeśli musisz włączyć repozytorium inne niż główne lub naprawić ŚCIEŻKĘ. Lub zadzwoń command-not-found $command_name.

Lub możesz przejść do http://packages.ubuntu.com/file:bin/nslookup , ale domyślnie są to pakiety karmiczne.

Tobu
źródło
0

Przeglądarka repozytorium online Ubuntu ma funkcję „Przeszukaj zawartość pakietów”. AFAIK, nie jest zaimplementowany w apt-get / aptitude, ale w większości przypadków będziesz zadowolony z „apt-get search” podczas wyszukiwania pakietu zawierającego program o podobnej nazwie.

Lux In Tenebris
źródło