Заставьте “способность” автоматически выбрать решение “Установка” вместо “Содержания”

Я пытаюсь автоматически установить пакеты, не задавая пользователю вопросов. Для ниже ситуации, aptitude выбирает "Keep" в качестве первого решения и не устанавливает pkg_b. И я хочу вызвать aptitude выбрать решение "для Установки" и обновить pkg_a.

$ sudo aptitude install -y -f --no-gui --without-recommends \
    -o Dpkg::Options::='--force-confnew' \
    -o Debug::pkgProblemResolver=yes \
    pkg_a=1.1 pkg_b=1.2

The following NEW packages will be installed:
  pkg_b{b}
0 packages upgraded, 1 newly installed, 0 to remove

The following packages have unmet dependencies:
 pkg_b : Depends: pkg_a (= 1.2) but 1.1 is installed.

The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     pkg_b [Not Installed]

Если я вручную (без -y) выполненный выше команды, и затем отвечают . (.: переместитесь в следующее решение), способность предлагает другое решение:

The following actions will resolve these dependencies:

     Install the following packages:
1)     pkg_b [1.2 (stable)]

     Upgrade the following packages:
2)     pkg_a [1.1 (now, stable) -> 1.2 (stable)]

Таким образом, это решение является лучшим для меня.

0
задан 24 May 2016 в 15:00

1 ответ

Обработанное решение, должен добавить этот параметр:

-o Aptitude::ProblemResolver::SolutionCost='100*canceled-actions,200*removals'

Найденный путем рассмотрения этот руководство. Как это работает - мы просто увеличиваем затраты на решения, которые aptitude будут использованием:

  • не Делают , сохраняют , если Вы можете установка или обновление (путем увеличения canceled-actions счетчик)
  • Увеличение removals счетчик, потому что мы хотим, сохраняют pkgs, если aptitude решают к , удаляют это
0
ответ дан 25 May 2016 в 01:00

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

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