В 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
Пакет: kino
Состояние: не установлен
Версия: 1.3.4-2.1+b1
Приоритет: необязательный
Раздел: video
Сопровождающий: Paul Brossier <piem@debian.org>
Архитектура: amd64
Размер в распакованном виде: 8,472 k
Зависит: libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libavc1394-0 (>=
0.5.3), libavcodec56 (>= 6:11~beta1) | libavcodec-extra-56 (>=
6:11~beta1), libavformat56 (>= 6:11~beta1), libavutil54 (>=
6:11~beta1), libc6 (>= 2.14), libcairo2 (>= 1.2.4), libdv4,
libfontconfig1 (>= 2.11), libfreetype6 (>= 2.2.1), libgcc1 (>=
1:4.1.1), libgdk-pixbuf2.0-0 (>= 2.22.0), libglade2-0 (>= 1:2.6.4-2~),
libglib2.0-0 (>= 2.12.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 (>= 4.9), libswscale3 (>= 6:11~beta1), libx11-6,
libxext6, libxml2 (>= 2.7.4), libxv1, zlib1g (>= 1:1.1.4)
Рекомендует: ffmpeg, curl
Предлагает: udev | hotplug, vorbis-tools, sox, mjpegtools, lame, ffmpeg2theora
Конфликтует: kino-dvtitler, kino-timfx, kinoplus
Заменяет: kino-dvtitler, kino-timfx, kinoplus
Предоставляет: kino-dvtitler, kino-timfx, kinoplus
Описание: 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.
Домашняя страница: http://www.kinodv.org/
Метки: field::arts, hardware::camera, implemented-in::c, implemented-in::c++,
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-базирующаяся программа, которая работает с видео-данными и чье главное предназначение - редактирование.
Просмотр этой классификации поможет вам в поисках пакета, который вам нужен; и даже если будет возвращено много (или средне) результатов, остаток поиска всегда можно доделать вручную. Чтобы сделать это, вы можете использовать шаблон поиска
~G
в
aptitude
, но возможно быстрее просто посетить сайт, где управляют метками (тэгами) (их разработчики):
Выполняя выбор по меткам works-with::video
и use::editing
вы получите небольшое количество пакетов, включая kino и pitivi - видео-редакторы. Эта система классифицикации будет использоваться и в дальнейшем, а управляюшие пакетами будут и дальше последовательно поддерживать эффективный поисковый интерфейс, базирующийся на этом.
Подводя итоги, можно сделать вывод - наилучшее средство для поиска зависит от сложности запроса, смотря что вы желаете найти:
apt-cache
позволяет делать поиск только в имени пакета и описаниях, и этот вариант очень подходит для случаев просмотра особенного (специфичного) пакета с подбором по нескольким целевым словам;
когда поиск критерия касается также отношений между пакетами или других meta-data (описания внутри меток пакета), такие как имя сопровождающего, synaptic
будет в данном случае более полезен;
когда нужен тэг-поиск (поиск по меткам), хорошим инструментом будет выбор packagesearch
, графический интерфейс предназначен для поиска доступных пакетов по нескольким критериям (включая перечень файлов, которые содержатся в пакете). Для использования в командной строке, программа axi-cache
будет сужать поиск.
В финале, когда при поиске используешь совокупность выражений с логическими операциями, инструментом выбора будет aptitude
с ее синтаксическими шаблонами, которая есть свободная и мощная, даже несмотря на то, что в ней встречается кое-что невразумительное; это работает в обоих вариантах - в командной строке и в интерактивном режиме.