В Debian имеется большое количество программ и оно неуклонно растет. И появляется парадокс: Debian имеет много различных инструментов (программ) для большинства задач, однако среди несметного числа других пакетов часто бывает очень трудно эти инструменты отыскать. Недостаток подходящих способов поиска инструментов, необходимых пользователям, долгое время было проблемой. К счастью, эта проблема была почти полностью решена.
Большинство банальных поисков возможно просматривая, и извлекая информацию, имя пакета. Если apt show пакет
возвращает результат, тогда пакет существует (то есть установлен в вашей системе). К сожаленью, для этого нужно знать или точно угадать имя пакета, что не всегда бывает возможно.
A slightly more successful searching pattern is a plain-text search in package names, but it remains very limited. You can generally find results by searching package descriptions: since each package has a more or less detailed description in addition to its package name, a keyword search in these descriptions will often be useful.
apt-cache
and
axi-cache
are the tools of choice for this kind of search (see
АЛЬТЕРНАТИВА axi-cache
); for instance,
apt-cache search video
will return a list of all packages whose name or description contains the keyword “video”.
Для более комплексного поиска нужны более мощные инструменты, такие как 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+dfsg0-1
State: not installed
Priority: optional
Section: video
Maintainer: Paul Brossier <piem@debian.org>
Architecture: amd64
Uncompressed Size: 8,304 k
Depends: libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libavc1394-0 (>= 0.5.3), libavcodec58 (>=
7:4.0) | libavcodec-extra58 (>= 7:4.0), libavformat58 (>= 7:4.0), libavutil56 (>= 7:4.0),
libc6 (>= 2.14), libcairo2 (>= 1.2.4), libdv4 (>= 1.0.0), libfontconfig1 (>= 2.12.6),
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.32), 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), libswscale5 (>= 7:4.0), 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
Replaces: kino-dvtitler, kino-timfx, kinoplus
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
с ее синтаксическими шаблонами, которая есть свободная и мощная, даже несмотря на то, что в ней встречается кое-что невразумительное; это работает в обоих вариантах - в командной строке и в интерактивном режиме.