Я хочу найти список всех пакетов, для которых в поле Приоритет: установлено значение Обязательное. Это пакеты, которые обычно устанавливаются в каждой системе, однако недавно я обнаружил, что они не обязательно устанавливаются для сторонних архитектур, использующих multiarch. Как лучше всего найти эти пакеты?
(Отказ от ответственности: этот ответ использует системный инструмент низкого уровня для решения запрошенной проблемы, а не 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» в конце пакеты с приоритетом: обязательно.
С помощью aptitude вы можете выполнять поиск такого типа.
aptitude search '?priority(required)'
Обратите внимание, что aptitude больше не устанавливается по умолчанию в более новых выпусках Ubuntu, и его man-страница является неполной; Вы найдете полную документацию как /usr/share/doc/aptitude/README