aptitude: список всех предыдущих рекомендованных пакетов
Иногда при установке пакета aptitude рекомендует несколько других пакетов.
Есть ли способ показать все предыдущие рекомендованные пакеты всех установленных пакетов?
Заранее спасибо.
Casper
Редактировать:
Спасибо за ответы до сих пор. Я уже попробовал:
aptitude show ~i | grep '^Recommends' | cut -d ' ' -f 2-
Это в основном нормально. Но это также возвращает вещи вроде:
console-setup | console-data (>= 2002.12.04dbs-1)
Я хочу простой способ, чтобы установить все недостающие рекомендуемые пакеты.
Так
aptitude install console-setup | console-data (>= 2002.12.04dbs-1)
не сработает;-)
Есть ли способ, без ручной проверки всех записей, сделать это?
5 ответов
Synaptic -> Пользовательские фильтры -> Пропущенные рекомендации
или же
поиск способностей '~RBrecommend: ~ i'
(спасибо http://blog.isonoe.net/post/2011/07/18/Debian-Tips-1%3A-Find-missing-recommended-packages)
Может быть, есть более элегантный способ, но это работает для меня,
for package in $(dpkg --get-selections | grep -v deinstall | awk '{print $1}')
do
echo $package
dpkg-query -s $package | grep Recommends
done
Другое предложение:
awk '/(^Package|^Recomm)/' /var/lib/dpkg/status | grep -B1 ^Recommends
@EightBitTony: awk также очень хорош в поиске, попробуйте это:
dpkg --get-selections | awk ' !/deinstall$/{print $1}'
Вот мой путь - отчет за отсутствующими рекомендациями:)
apt-cache --no-pre-depends --no-depends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances depends `dpkg --get-selections | grep '\sinstall$' | cut -f1` | grep -vf <(dpkg --get-selections | grep '\sinstall$' | cut -f1 | sed -e 's/^/ /' -e 's/\(:.*\|\)$/$/') | grep -B1 '^ '
Получите список установленных пакетов, в которых отсутствует рекомендуемый пакет:
aptitude search '?installed?broken-recommends'
Получить список не установленных, отсутствующих пакетов, которые рекомендуются установленными пакетами — «отсутствует рекомендует»:
aptitude search '?broken-reverse-recommends(?installed)'
Узнайте, какой пакет рекомендует конкретную «отсутствующую рекомендацию»:
aptitude search '?installed?broken-recommends(MISSING_PKG_NAME)'
Одна строка: для всех «отсутствующих рекомендаций» выберите, какие пакеты рекомендуются:
for p in $(aptitude search -F%p '?broken-reverse-recommends(?installed)'); do echo $p; aptitude search "?installed?broken-recommends($p)"; done
Вы можете найти «отсутствующие рекомендации» в менеджере пакетов Synaptic. (Как я вижу, Synaptic также показывает отсутствующие предлагаемые пакеты.)
Установить все «недостающие рекомендации» можно одной командой, но я не рекомендую! Сначала просмотрите список пакетов перед установкой. (Например, новая установка Debian Buster показывает отсутствие «default-mta», который является виртуальным пакетом.)
apt install $(aptitude search -F%p '?broken-reverse-recommends(?installed)')
(Это краткое изложение нескольких похожих вопросов. Надеюсь, это поможет кому-то еще.)