Интерактивное разрешение зависимостей

Если возникает такая проблема зависимостей, которая не может быть решена использованием непосредственного решателя зависимостей, aptitude может помочь вам в её решении. Как только возникнет проблема, в нижней части экрана появится красная полоска, содержащая сводку предложения aptitude по решению этой зависимости. Например, на следующем снимке экрана, aptitude указывает, что можно решить проблему, сохранив двум пакетам их текущих версиях.

[окно пакетов, пакеты, сломанные после попытки удалить sound-juicer]

Как это обозначено в нижней части экрана, вы можете просмотреть дополнительные решения, нажав . и ,, применить текущее решение, нажав !, и рассмотреть решение более более подробно, нажав e. Когда вы рассматриваете текущее решение, появляется экран, схожий со следующим:

[решатель зависимостей #1]

Вы можете получить доступ к информации о пакете, который является объектом действия, просто нажав клавишу Enter в тот момент, когда этот пакет выбран. Для получения более подробного объяснения того, почему aptitude сделал некоторый выбор, вы можете выбрать элемент в списке. Когда вы сделаете это, нижняя половина экрана будет отображать зависимость, разрешаемую выбором aptitude, а также каждый способ, каким эта зависимость могла бы быть разрешена.

[объяснение решения, предлагаемого решателем зависимостей]

Вы можете направлять решатель зависимостей к одобряемому вами решению, одобряя или отклоняя индивидуальные действия решения. Если вы одобряете действие, то решатель будет выбирать это действие всегда, когда это возможно, игнорируя альтернативы (когда имеется несколько одобренных альтернатив, любая из них может быть выбрана). С другой стороны, если вы отклоняете действие, решатель никогда не выберет это действие.

Чтобы отклонить действие, выберите его и нажмите r; отклонение может быть отменено повторным нажатием r. Сходным образом, выберите действие и нажмите a, чтобы одобрить его; нажмите a снова, чтобы вернуть изначальное состояние действия. Вы можете откатить то или иное действие, используя команду ОткатОткат (Control+u) в то время, когда активен экран решателя. Если вы отмените отклонение или одобрение, любые решения, которые до этого игнорировались, будут доступны при следующей генерации нового решения.

[Примечание]Примечание

По-умолчанию, решатель отклоняет действия, которые меняют состояния зафиксированных пакетов, и те, которые устанавливают запрещённые версии пакетов. Вы можете отменить эти отклонения, позволяя, таким образом, автоматически игнорировать зафиксированные или запрещённые отметки, так же как вы могли бы игнорировать любое другое отклонение. Установка параметра настройки Aptitude::ProblemResolver::Allow-Break-Holds в значение true отключит это поведение, что подразумевает, что решатель всегда будет ломать фиксации (хотя и со штрафом, см. Aptitude::ProblemResolver::BreakHoldScore).

Отклонённые действия окрашены красным и отмечены флагом «R», а одобренные действия окрашены зелёным и отмечены флагом «A». Вы можете видеть это на следующем снимке экрана, где действие «удалить libreoffice-report-builder-bin в текущей версии» было отклонено, а действие «удалить libreoffice в текущей версии» было одобрено.

[отклонения и принятия при разрешении зависимостей]

Отклонения и одобрения оказывают влияние только на заново создаваемые решения. Вы можете определить, когда будет создано новое решение, для этого посмотрите на индикатор в нижнем левом углу экрана: там имеется число в круглых скобках, это число решений, которые были созданы. Соответственно, когда число за круглыми скобками и число внутри круглых скобок равны (как в случае вверху), нажатие . приведёт к созданию нового решения. Если в скобках нет числа (например, индикатор имеет следующий вид: [1/5]), то дополнительные решения не будут созданы. В любой момент вы можете выбрать последнее созданное решение, нажав >, или первое созданное решение, нажав <.

[Важно]Важно

Состояние решателя проблем сбрасывается, когда вы изменяете состояние какого-либо пакета. Если вы отмечаете пакет для установки, обновления или удаления и т. д., решатель забывает обо всех отклонениях или одобрениях, а также обо всех решениях, которые были созданы до этого момента.

В дополнение к выбору действий в списке вверху экрана, вы также можете выбрать их, используя список в нижней половине экрана. Чтобы получить доступ к этому списку, либо кликните на нем мышкой, либо нажмите Tab. Наконец, чтобы посмотреть решения, предлагаемые решателем и расположенные по порядку, нажмите o. Это даст вам список зависимостей, которые были решены, и действие, предпринятое для их разрешения, в виде как на следующем снимке экрана.

[объяснения решений, предлагаемых решателем зависимостей]

Вы можете выйти из этого вида отображения, снова нажав o.