Как определить, в каком пакете Ubuntu находится инструмент

23

В качестве конкретного примера я хочу иметь возможность взять конкретный инструмент, который не установлен (скажем, nslookup), и иметь возможность сказать, какой пакет мне нужно установить, если произойдет сбой следующего:

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

Очевидно, я могу в Google найти ответ для определенного пакета (dnsutils), но я хочу знать, как найти его самому.

ErebusBat
источник
это быстрый и грязный поиск в apt-cache nslookup
The Unix Janitor
apt-cache ищет только описания. Я искал конкретный файл, ErikA указал: apt-файл поиска FOO
ErebusBat

Ответы:

23

Есть два способа сделать это:

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

а также...

host ~ # apt-cache search nslookup
host - utility for querying DNS servers
dnsutils - Clients provided with BIND
EEAA
источник
1
apt-cacheтолько ищет пакеты, которые вы уже установили, в то время как apt-fileищет ВСЕ пакеты в вашем sources.list, включая пакеты, которые не установлены. Так что в этом случае, apt-fileэто тот, который нужно использовать.
Стивен Понедельник
1
@ Стивен, мне придется с этим не согласиться. Я просто выполнил тестовый поиск «vlc» на моем Ubuntu VPS, используя apt-cache, и он показал все пакеты, связанные с vlc, ни один из которых я не установил.
EEAA
@ Стивен Монаи, это не правда. apt-cacheсмотрит на описания пакетов (поиски /var/lib/apt/lists/*_Packages). Установка чего-либо не имеет значения. Описания пакетов не включают в себя список файлов. Я согласен, что apt-fileэто, вероятно, инструмент для использования, если открытие веб-браузера не вариант.
Зоредаче
Есть также авто-apt, как альтернатива apt-file. У меня нет сильных предпочтений. auto-apt может прослушивать неудачные вызовы exec, что может быть полезно при запуске скрипта configure, который обнаруживает функции.
Тобу
1
@EricA, Zoredache: я исправлен. Позвольте мне повторить: если вам нужно знать, какой из удаленных пакетов содержит определенный файл (например /usr/bin/nslookup), используйте apt-file. Если вам нужен только поиск по именам и описаниям пакетов, то все apt-cacheработает отлично.
Стивен Понедельник
3

Вы command-not-foundустановили?

Просто введите команду в bash или zsh, и она скажет вам, в каком пакете она есть, и если вам нужно включить неосновные репозитории или исправить свой PATH. Или позвони command-not-found $command_name.

Или вы можете перейти на http://packages.ubuntu.com/file:bin/nslookup , но по умолчанию это karmic-пакеты.

Tobu
источник
0

В браузере Ubuntu онлайн-хранилища есть функция «Поиск содержимого пакетов». AFAIK, он не реализован в apt-get / aptitude, но в большинстве случаев вы будете удовлетворены поиском apt-get при поиске пакета, содержащего программу с аналогичным именем.

Люкс в Тенебрисе
источник