aptitude
позволяет удобно показывать, какие программы в поиске уже установлены в системе (с помощью grep
):
aptitude search flash | grep ^i
На самом деле, поиск в aptitude
гораздо более эффективен, чем поиск по grep
, так как он поддерживает контекстный поиск:
например, это находит все пакеты с 'flash' в имени пакета, которые установлены:
aptitude search '~iflash'
Эквивалентная "длинная форма" "короткой формы" ~i
:
aptitude search '?installed(flash)'
Обратите внимание, что шаблоны поиска по умолчанию бесплатны. Чтобы привязать их, вам нужно использовать шаблоны привязки ' ^
' (начало строки) и / или ' $
' (конец строки).
Чтобы найти все пакеты, имена которых начинаются с «ttf» или «font»:
aptitude search '(^ttf|^font)'
(Примечание: это обходной путь для ошибки в aptitude
, поскольку правильное регулярное выражение '^(ttf|font)'
не работает должным образом - он находит пакеты, имена которых начинаются с 'ttf' или содержат 'font'.)
Другие отличные особенности aptitude
:
Показать все пакеты с «firmware» в их названии, которые также имеют «wireless» в их описании:
aptitude search 'firmware ~dwireless'
или длинная форма:
aptitude search '?and(?name(firmware),?description(wireless))'
(Примечание: в краткой форме аргументы, разделенные пробелом, заключаются в кавычки AND; если они передаются как отдельные аргументы командной строки argv [], они ORed.)
p atmel-firmware - Firmware for Atmel at76c50x wireless networking chips.
p firmware-atheros - Binary firmware for Atheros wireless cards
...
p libertas-firmware - Firmware for Marvell's libertas wireless chip series
p zd1211-firmware - Firmware images for the zd1211rw wireless driver
~U
показывает все пакеты, которые можно обновить с их текущих версий новыми версиями:
# aptitude update ; aptitude versions '~U'
Package virtualbox-4.1:
i 4.1.18-78361~Debian~squeeze 100
p 4.1.20-80170~Debian~squeeze <NULL> 500
Показать пакеты, которые рекомендуют gcc-multilib
$ aptitude search '~DRecommends:gcc-multilib'
i libc6-dev-i386 - Embedded GNU C Library: 32-bit development libraries for AMD64
Объясните, почему может потребоваться установка 'fuse-utils'
$ aptitude why fuse-utils
i xorg Depends xterm | x-terminal-emulator
pi gnome-terminal Provides x-terminal-emulator
pi gnome-terminal Recommends gvfs
pi gvfs Depends libgdu0 (>= 2.29.90)
pi libgdu0 Depends udisks (< 1.1.0)
pi udisks Recommends ntfsprogs
pi ntfsprogs Depends fuse-utils (> 2.5.0)
(В этом примере показаны некоторые сумасшествия, возникающие по умолчанию после Squeeze(?) установки всех пакетов "Рекомендует". Установка gnome-терминала заканчивается установкой ntfsprogs и fuse-utils, egad! Я думаю, что большинству людей просто нужна перспектива терминала, а не встроенная интеграция NTFS, которая является необязательной, если они не указали ее.)
Найдите все пакеты, которые предоставляют сервис «mail-transport-agent»:
$ aptitude search '?provides(mail-transport-agent)'
p citadel-mta - complete and feature-rich groupware server (mail transport agent)
...
p nullmailer - simple relay-only mail transport agent
p postfix - High-performance mail transport agent
i sendmail-bin - powerful, efficient, and scalable Mail Transport Agent
p ssmtp - extremely simple MTA to get mail off the system to a mail hub
p xmail - advanced, fast and reliable ESMTP/POP3 mail server
Показать все установленные имена пакетов, которые не являются обязательными или автоматически устанавливаемыми по зависимостям:
$ aptitude search '~i!(~E|~M)' -F '%p'
К сожалению, этот материал плохо документирован и его трудно найти, но вот лучшая ссылка (от сопровождающего aptitude).