В Debian имеется большое количество программ и оно неуклонно растет. И появляется парадокс: Debian имеет много различных инструментов (программ) для большинства задач, однако среди несметного числа других пакетов часто бывает очень трудно эти инструменты отыскать. Недостаток подходящих способов поиска инструментов, необходимых пользователям, долгое время было проблемой. К счастью, эта проблема была почти полностью решена.
Большинство банальных поисков возможно просматривая, и извлекая информацию, имя пакета. Если apt show пакет
возвращает результат, тогда пакет существует (то есть установлен в вашей системе). К сожаленью, для этого нужно знать или точно угадать имя пакета, что не всегда бывает возможно.
Немного более успешный поисковый шаблон - это простой поиск в именах пакетов, но такой вид поиска является очень ограниченным. Обычно вы можете найти результаты поиска в (кратком) описании пакета: поскольку каждый пакет имеет более или менее детальное описание в дополнении к его имени пакета, искомое слово будет часто успешно найдено в тех описаниях. Команды apt-cache
и axi-cache
являются инструментами выбора для этих разновидностей поиска; для примера, apt-cache search видео
будет возвращать перечень всех пакетов, чье имя или описание содержит слово “видео”.
Для более комплексного поиска нужны более мощные инструменты, такие как aptitude
. Программа aptitude
позволит вам искать последовательным выражением, которое базируется на meta-данных заголовков пакетов. Для примера, следующая команда ищет пакеты, чье имя содержит kino
, чье описание содержит video
и чье имя сопровождающего содержит paul
:
$ aptitude search kino~dvideo~mpaul
p kino - Non-linear editor for Digital Video data
$ aptitude show kino
Package: kino
Version: 1.3.4-2.2+b2
State: not installed
Priority: extra
Section: video
Maintainer: Paul Brossier <piem@debian.org>
Architecture: amd64
Uncompressed Size: 8300 k
Depends: libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libavc1394-0
(>= 0.5.3), libavcodec57 (>= 7:3.2.4) | libavcodec-extra57 (>=
7:3.2.4), libavformat57 (>= 7:3.2.4), libavutil55 (>= 7:3.2.4), libc6
(>= 2.14), libcairo2 (>= 1.2.4), libdv4 (>= 1.0.0), libfontconfig1
(>= 2.11), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:3.0),
libgdk-pixbuf2.0-0 (>= 2.22.0), libglade2-0 (>= 1:2.6.4-2~), libglib2.0-0
(>= 2.16.0), libgtk2.0-0 (>= 2.24.0), libice6 (>= 1:1.0.0),
libiec61883-0 (>= 1.2.0), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0
(>= 1.14.0), libpangoft2-1.0-0 (>= 1.14.0), libquicktime2 (>=
2:1.2.2), libraw1394-11, libsamplerate0 (>= 0.1.7), libsm6, libstdc++6
(>= 5.2), libswscale4 (>= 7:3.2.4), libx11-6, libxext6, libxml2 (>=
2.7.4), libxv1, zlib1g (>= 1:1.1.4)
Recommends: ffmpeg, curl
Suggests: udev | hotplug, vorbis-tools, sox, mjpegtools, lame, ffmpeg2theora
Conflicts: kino-dvtitler, kino-timfx, kinoplus, kino-dvtitler:i386, kino-timfx:i386,
kinoplus:i386, kino:i386
Replaces: kino-dvtitler, kino-timfx, kinoplus, kino-dvtitler:i386, kino-timfx:i386,
kinoplus:i386
Provides: kino-dvtitler, kino-timfx, kinoplus
Description: Non-linear editor for Digital Video data
Kino allows you to record, create, edit, and play movies recorded with DV camcorders.
This program uses many keyboard commands for fast navigating and editing inside the
movie.
The kino-timfx, kino-dvtitler and kinoplus sets of plugins, formerly distributed as
separate packages, are now provided with Kino.
Homepage: http://www.kinodv.org/
Tags: field::arts, hardware::camera, implemented-in::c, implemented-in::c++,
interface::graphical, interface::x11, role::program, scope::application,
suite::gnome, uitoolkit::gtk, use::editing, use::learning,
works-with::video, x11::application
Поиск вернет название только одного пакета, kino, который удовлетворяет трем критериям.
Точно такие (как использованы были чуть выше) поиски со многими критериями сейчас скорее громоздки, и это объясняет - почему они не используются так часто как могли бы. Поэтому была разработана новая система снабжения пакетов ярлыком (меткой, тэгом), и это дало возможность по новому организовать процесс поиска. Пакеты теперь имеют метки, которые организованы в соответствии с тематической классификацией по всей линии отдельных особенностей, известной как “facet-based classification” (классификация, базирующаяся на гранях чего-то) . В случае, описанном выше kino, метки пакетов показывают что Kino - это Gnome-базирующаяся программа, которая работает с видео-данными и чье главное предназначение - редактирование.
Browsing this classification can help you to search for a package which corresponds to known needs; even if it returns a (moderate) number of hits, the rest of the search can be done manually. To do that, you can use the
~G
search pattern in
aptitude
, but it is probably easier to simply navigate the site where tags are managed:
Выполняя выбор по меткам works-with::video
и use::editing
вы получите небольшое количество пакетов, включая kino и pitivi - видео-редакторы. Эта система классифицикации будет использоваться и в дальнейшем, а управляюшие пакетами будут и дальше последовательно поддерживать эффективный поисковый интерфейс, базирующийся на этом.
Подводя итоги, можно сделать вывод - наилучшее средство для поиска зависит от сложности запроса, смотря что вы желаете найти:
apt-cache
позволяет делать поиск только в имени пакета и описаниях, и этот вариант очень подходит для случаев просмотра особенного (специфичного) пакета с подбором по нескольким целевым словам;
когда поиск критерия касается также отношений между пакетами или других meta-data (описания внутри меток пакета), такие как имя сопровождающего, synaptic
будет в данном случае более полезен;
когда нужен тэг-поиск (поиск по меткам), хорошим инструментом будет выбор packagesearch
, графический интерфейс предназначен для поиска доступных пакетов по нескольким критериям (включая перечень файлов, которые содержатся в пакете). Для использования в командной строке, программа axi-cache
будет сужать поиск.
В финале, когда при поиске используешь совокупность выражений с логическими операциями, инструментом выбора будет aptitude
с ее синтаксическими шаблонами, которая есть свободная и мощная, даже несмотря на то, что в ней встречается кое-что невразумительное; это работает в обоих вариантах - в командной строке и в интерактивном режиме.