CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
12.12.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Блогометки :: Приложения

Приложения :: Управление пакетами

Поисковые шаблоны в Aptitude

http://sovety.blogspot.com/2008/01/aptitude.html

Материал распространяется на условиях Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

В этом посте я расскажу о том, как искать пакеты программ Debian с помощью aptitude. В Ubuntu, понятно, всё делается точно так же.

Обычно, чтобы найти нужный пакет, достаточно написать что-нибудь вроде

$ aptitude search шаблон

и получить список пакетов, в названии которых встречается «шаблон». Например:

$ aptitude search doom
v doom-engine -
p doom-package - Installer for Doom data files
v doom-wad -
v doom-wad-editor
...

Однако в некоторых случаях такого поиска недостаточно. Представим, например, что пользователь ищет программы для обработки изображений с помощью техники HDR (расширенного динамического диапазона). Он набирает

$ aptitude search HDR

и получает

p chdrv - Chinese terminal for the Linux console
p chdrvfont - Kuo Chiao 16x16 font for CHDRV Chinese con
Явно это не то, что его интересовало. Вот именно здесь пригодятся более «продвинутые» возможности поиска в aptitude. А именно, «поисковые шаблоны». Полное описание шаблонов доступно в документации к aptitude. Здесь я расскажу только о некоторых из них.

Итак, каждый шаблон — это некое условие поиска. По умолчанию, если указать сразу несколько шаблонов, то будет выдан список пакетов, соответствующих всем указанным условиям (логическое И). Если шаблоны разделить знаком «|», то будут найдены пакеты, соответствующие хотя бы одному из условий (логическое ИЛИ). Если перед шаблоном (условием) поставить восклицательный знак, то будут найдены пакеты, для которых это условие не выполняется (логическое отрицание). Несколько шаблонов (условий) можно группировать с помощью скобок.

Шаблоны обычно начинаются со знака тильда «~». За ней следует символ, указывающий тип шаблона. Затем может идти дополнительный текст, зависящий от шаблона. Такой синтаксис шаблонов должен быть знаком пользователям почтовой программы mutt.

Итак, самые полезные, на мой взгляд, шаблоны:

  • ~nимя — в имени встречается текст «имя» (можно использовать регулярные выражения, например, ~n^lib отбирает только имена, начинающиеся с lib);
  • ~dтекст — в описании пакета встречается «текст» (очень полезно, если название программы неизвестно, но известно, что она должна делать);
  • ~i — отбирает только уже установленные пакеты;
  • ~N — отбирает только новые пакеты (которых раньше не было в репозитории);
  • ~U — отбирает пакеты, которые можно обновить;
  • ~Dтребование — отбирает пакеты, которые зависят от «требования» (можно использовать регулярные выражения);
  • ~Rзависимый — отбирает пакеты, которые необходимы для «зависимого» (можно использовать регулярные выражения).

Вернёмся к нашему примеру. Поскольку поиск по именам пакетов ничего полезного не дал, можно поискать по описаниям:

$ aptitude search ~dHDR

даёт 27 строк результатов. Уже лучше, но среди них — явно лишние. Можно ограничить выборку только теми пакетами, в описании которых говорится и про HDR, и про изображения (images):

$ aptitude search ~dHDR~dimage
i exrtools - A collection of utilities for manipulating
p libopenexr-dev - development files for the OpenEXR image li
c libopenexr2c2a - runtime files for the OpenEXR image librar
i libopenexr2ldbl - runtime files for the OpenEXR image librar
p libpfs-1.2-0 - C++ library to read and write pfs files
p libpfs-dev - C++ library to read and write pfs files (d
p octave-pfstools - octave bindings for pfstools
i openexr - viewer and docs for the OpenEXR image form
p pfstools - command line HDR manipulation programs
p pfstools-dbg - command line HDR manipulation programs (de
i qtpfsgui - graphical user interface providing a workf

Это именно то, что надо. В данном примере я соединил два поисковых шаблона вместе (логическое И).

А вот пример отрицания условия:

$ aptitude search '!~i~naptitude'
p aptitude-dbg - Debug symbols for the aptitude package man
v aptitude-doc -
p aptitude-doc-cs - Czech manual for aptitude, a terminal-base
p aptitude-doc-fi - Finnish manual for aptitude, a terminal-ba
p aptitude-doc-fr - French manual for aptitude, a terminal-bas
p aptitude-doc-ja - Japanese manual for aptitude, a terminal-b

Здесь я искал такие пакеты, в названии которых встречается «aptitude» (~naptitude), но в системе они у меня не установлены (!~i). Поисковые шаблоны были взяты в кавычки, чтобы избежать интерпретации восклицательного знака оболочкой bash.

А вот пример комбинации логического ИЛИ и логического И. Я смотрю, какие у меня установлены пакеты, такие что в названии встречается firefox или iceweasel (обратите внимание на группировку шаблонов с помощью скобок):

$ aptitude search '~i(~nfirefox|~niceweasel)'
i iceweasel - lightweight web browser based on Mozilla
i iceweasel-gnome-support - Support for Gnome in Iceweasel
i iceweasel-l10n-ru - Russian language package for Iceweasel
Поскольку firefox у меня не стоит, то найдены только пакеты iceweasel.

Конечно, использовать поисковые шаблоны можно не только из командной строки. Работают они и во встроенном поиске aptitude в полноэкранном режиме.

От себя могу заметить, что после того, когда я вдруг узнал про поисковые шаблоны aptitude, поиск и установка нужных программ в Debian стали намного проще и приятнее.





Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds