Чтобы улучшить качество решений зависимостей, получаемых вами, вы можете дать интерактивному решателю зависимостей подсказки. Эти подсказки могут изменить приоритеты решателя, сильнее склоняя его в пользу одной версии пакет, или они могут быть использованы для «предварительной загрузки» решателя с отклонениями и одобрениями, так же как если бы вы вошли в решатель и вручную отклонили или одобрили различные версии.
Подсказки хранятся в файле настройки apt
,
/etc/apt/apt.conf
, в группе настроек
«Aptitude::ProblemResolver::Hints
»
(подробности о файле настроек см. в разделе «Руководство по файлу настроек»).
Каждая подсказка решателя состоит из действия
,
цели
и необязательной
версии
. Подсказка записывается так:
"
. Чтобы
применить подсказку решателя, aptitude находит один или несколько пакетов,
используя значение переменной действие
цель
[версия
]"цель
, выбирает одну
или несколько версий этих пакетов, используя значение переменной
версия
и, наконец, выполняет данное
действие
.
Поле действие
подсказки решателя может быть одним
из следующих:
«approve
»: Одобрить версию, как будто была
выполнена команда a)
.
→ (
«reject
»: Отклонить версию, как будто была
выполнена команда r)
.
→ (
«discard
»: Отбросить всякое решение,
содержащее версию. Отличается от «reject
»
тем, что она не видима для пользователя и не может быть изменена
интерактивно.
«increase-safety-cost-to
»: увеличить стоимость
безопасности всякого решения, содержащего версию до
число
числа
; если стоимость безопасности этого действия
уже выше, чем число
, эта подсказка не будет
работать. Стоимость безопасности может использоваться (и используется
по-умолчанию) для управления порядком, соответственно которому появляются
решения; подробности см. в разделе «Стоимости и стоимостные компоненты» и «Стоимости безопасности».
Несколько специальных уровней стоимости, которые могут быть выбраны по имени:
conflict
, discard
: вместо изменения
стоимости безопасности, отбросить решения, содержащие версию, как если бы
была применена подсказка «discard
».
maximum
: наиболее высокая стоимость безопасности.
minimum
: наименее низкая стоимость безопасности. Любой
поиск начинается с этой стоимости, поэтому «увеличение» версии
на эту стоимость не оказывает влияния. Тем не менее, это значение может быть
использовано при настройке предопределённых уровней безопасности: например,
установка Aptitude::ProblemResolver::Remove-Level
на «minimum
» приведёт к тому, что удаляемые
пакеты не будут оказывать влияния на стоимость безопасности решения.
Примечание | |
---|---|
Подсказка |
«number
»: добавить данное
число
к счету
версии
пакета, настраивая решатель в пользу этой версии или (с отрицательным
числом) против неё. Например, подсказка 200 emacs
добавляет 200 к счёту emacs
, в то время как подсказка
-10 emacs
вычитает 10 из его счёта.
Если поле цель
подсказки решателя содержит знак
вопроса («?
») или тильду
(«~
»), она рассматривается как поисковый
шаблон, и рассматриваются все подходящие версии пакетов. В других же случаях
она рассматривается как имя пакета. Поэтому цель
«g++
» выберет только пакет
g++
, а цель
«?section(non-free)
» выберет все пакеты в
секции non-free
. Дополнительную информацию о поисковых
шаблонах см. в разделе «Поисковые шаблоны».
Если поле версия
отсутствует, то все версии
пакета подвергаются воздействию данной подсказки. В противном случае она
может иметь любую из следующих форм:
«/
»:
подсказка затрагивает только версии, доступные в данном
архив
архиве
.
«<
»:
подсказка затрагивает только те версии, номер версии которых меньше
версия
версии
.
«<=
»:
подсказка затрагивает только те версии, номер версии которых меньше или
равен версия
версии
.
«=
»:
подсказка затрагивает только те версии, номер версии которых равен
версия
версии
.
«<>
»:
подсказка затрагивает только те версии, номер версии которых не равен
версия
версии
.
«>=
»:
подсказка затрагивает только те версии, номер версии которых больше или
равен версия
версии
.
«>
»:
подсказка затрагивает только те версии, номер версии которых больше
версия
версии
.
«:UNINST
»: вместо влияния на какую-либо
версию цели
, подсказка влияет на решение удалить
цель
. Например,
«Aptitude::ProblemResolver::Hints { "reject aptitude
:UNINST"; };
» предупредит решатель от попытки удалить
aptitude.
«версия
»: подсказка затрагивает
только те версии, номер версии которых равен
версии
.