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)')

(Это краткое изложение нескольких похожих вопросов. Надеюсь, это поможет кому-то еще.)

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