Как найти список пакетов с приоритетом: обязательно?

Я хочу найти список всех пакетов, для которых в поле Приоритет: установлено значение Обязательное. Это пакеты, которые обычно устанавливаются в каждой системе, однако недавно я обнаружил, что они не обязательно устанавливаются для сторонних архитектур, использующих multiarch. Как лучше всего найти эти пакеты?

4
задан 12 March 2012 в 14:03

2 ответа

(Отказ от ответственности: этот ответ использует системный инструмент низкого уровня для решения запрошенной проблемы, а не aptitude. Но поскольку aptitude полагается на службы dpkg, он все еще может быть полезен. )

Вы можете использовать dpkg-query в сочетании с grep:

dpkg-query -W --showformat='${Package}\t${Priority}\n' | grep "required$"
  • dpkg-query перечисляет все пакеты, если имя пакета не указано.
  • -W или (--show) позволяет перечислять пакеты, используя указанный формат вывода.
  • Выходной формат обеспечивается синтаксисом --showformat='formatstring'. Строка состоит из:
    • ${Package} для отображения имени пакета.
    • \t для отображения символа табуляции в качестве разделителя полей.
    • ${Priority} для отображения приоритета пакета.
    • \n для отображения символа новой строки в конце каждой строки.

Так как пример вывода без grep выглядит следующим образом:

klibc-utils required
kmod    required
krb5-locales    standard
lame    optional
landscape-client-ui-install optional
language-pack-en    optional

Команда grep отображает только строки, содержащие слово «required» в конце пакеты с приоритетом: обязательно.

0
ответ дан 12 March 2012 в 14:03

С помощью aptitude вы можете выполнять поиск такого типа.

aptitude search '?priority(required)'

Обратите внимание, что aptitude больше не устанавливается по умолчанию в более новых выпусках Ubuntu, и его man-страница является неполной; Вы найдете полную документацию как /usr/share/doc/aptitude/README

0
ответ дан 12 March 2012 в 14:03

Другие вопросы по тегам:

Похожие вопросы: