With the large and ever-growing amount of software in Debian, there emerges a paradox: Debian usually has a tool for most tasks, but that tool can be very difficult to find among the myriad other packages. The lack of appropriate ways to search for (and to find) the right tool has long been a problem. Fortunately, this problem has almost entirely been solved.
Большинство банальных поисков возможно просматривая, и извлекая информацию, имя пакета. Если apt show пакет
возвращает результат, тогда пакет существует (то есть установлен в вашей системе). К сожаленью, для этого нужно знать или точно угадать имя пакета, что не всегда бывает возможно.
Несколько более успешным шаблон поиска - поиск по простому тексту в именах пакетов, но он остаётся очень ограниченным. Обычно результаты можно найти, выполнив поиск по описаниям пакетов: поскольку каждый пакет помимо имени пакета имеет более или менее подробное описание, часто бывает полезен поиск по ключевым словам в этих описаниях. Команды
apt-cache
и
axi-cache
являются инструментами выбора для этих разновидностей поиска (см.
АЛЬТЕРНАТИВА axi-cache
); к примеру,
apt-cache search video
вернёт список всех пакетов, имя или описание которых содержит ключевое слово “video”.
Для более комплексного поиска нужны более мощные инструменты, такие как aptitude
. Программа aptitude
позволит вам искать логическим выражением, которое базируется на метаданных заголовков пакетов. К примеру следующая команда ищет пакеты, имя которого содержит 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+dfsg0-1.1
State: not installed
Priority: optional
Section: video
Maintainer: Paul Brossier <piem@debian.org>
Architecture: amd64
Uncompressed Size: 8,316 k
Depends: libasound2 (>= 1.0.16), libavc1394-0 (>= 0.5.3), libavcodec58 (>= 7:4.2),
libavformat58 (>= 7:4.2), libavutil56 (>= 7:4.0), libc6 (>= 2.29), libdv4
(>= 1.0.0), libgcc-s1 (>= 3.0), libgdk-pixbuf-2.0-0 (>= 2.22.0),
libglade2-0 (>= 1:2.6.4-2~), libglib2.0-0 (>= 2.12.0), libgtk2.0-0 (>=
2.24.0), libiec61883-0 (>= 1.2.0), libpango-1.0-0 (>= 1.14.0),
libpangoft2-1.0-0 (>= 1.14.0), libquicktime2 (>= 2:1.2.2), libraw1394-11
(>= 2.1.2), libsamplerate0 (>= 0.1.7), libstdc++6 (>= 9), libswscale5 (>=
7:4.0), libx11-6, libxext6, libxml2 (>= 2.7.4), libxv1
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, который удовлетворяет всем трём критериям.
Даже такие многокритериальные поиски довольно громоздки, что объясняет, почему они не используются так часто, как могли бы. Поэтому была разработана новая система тегов, обеспечивающая новый подход к поиску. Пакетам присваиваются теги, которые обеспечивают тематическую классификацию по нескольким направлениям, известную как «классификация на основе фасетов». В случае с kino выше теги пакета указывают, что Kino — это программное обеспечение на базе Gnome, которое работает с видеоданными и основной целью которого является редактирование.
Просмотр этой классификации может помочь вам найти пакет, соответствующий известным потребностям; даже если он возвращает (умеренное) количество совпадений, остальную часть поиска можно выполнить вручную. Для этого вы можете использовать шаблон поиска
~G
в команде
aptitude
, но, возможно, проще просто посетить сайт, на котором (разработчики) управляют тегами, или использовать команду
debtags
:
Выполняя выбор по меткам works-with::video
и use::editing
вы получите небольшое количество пакетов, включая kino и pitivi - видео-редакторы. Эта система классифицикации будет использоваться и в дальнейшем, а управляюшие пакетами будут и дальше последовательно поддерживать эффективный поисковый интерфейс, базирующийся на этом.
Подводя итоги, можно сделать вывод - наилучшее средство для поиска зависит от сложности запроса, смотря что вы желаете найти:
apt-cache
позволяет делать поиск только в имени пакета и описаниях, и этот вариант очень подходит для случаев просмотра особенного (специфичного) пакета с подбором по нескольким целевым словам;
когда поиск критерия касается также отношений между пакетами или других метаданных (описания внутри меток пакета), такие как имя сопровождающего, synaptic
будет в данном случае более полезен;
когда нужен поиск по тегам, хорошим инструментом будет выбор packagesearch
, графический интерфейс предназначен для поиска доступных пакетов по нескольким критериям (включая имена файлов, которые содержатся в пакете). Для использования в командной строке подойдёт программа axi-cache
.
наконец, когда поиск включает в себя сложные выражения с логическими операциями, предпочтительным инструментом будет синтаксис шаблона поиска aptitude
, довольно мощный, несмотря на то, что он несколько неясен; он работает как в командной строке, так и в интерактивном режиме.