Чтобы улучшить качество решений зависимостей, получаемых вами, вы можете дать интерактивному решателю зависимостей подсказки. Эти подсказки могут изменить приоритеты решателя, сильнее склоняя его в пользу одной версии пакет, или они могут быть использованы для «предварительной загрузки» решателя с отклонениями и одобрениями, так же как если бы вы вошли в решатель и вручную отклонили или одобрили различные версии.
Подсказки хранятся в файле настройки 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.
«версия»: подсказка затрагивает
только те версии, номер версии которых равен
версии.