[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: aptitude предлагаетгромадноеколичестворазрешенийконфликтов,котороеменянеустраивает, apt-get remove --purge --auto-remove справляетсясзадачей.



On 2015-11-13, Dmitry Alexandrov wrote:

>   Полагаю, легкий некропостинг здесь будет уместным.
>
>   У Аптитьюда действительно зело «умный» решатель, по умолчанию опирающийся на
> некую величину под названием «безопасность» (safety), которая согласно
> документации «возрастает по мере того, как действия становятся менее
> „безопасными“» и настраивается пятью весовыми коэффициентами [1].
>
>   Мои попытки крутить эти коэффициенты не увенчались никаким успехом, посему я
> у себя везде расчет этой «безопасности» отключил и задал такое вот простое
> правило поиска уместного решения:
>
> Aptitude {
>     ProblemResolver {
> 	SolutionCost "removals, canceled-actions, non-default-versions";
>     };
> };
>
>   Это выдержка из apt.conf (конкретно у меня — из
> /etc/apt/apt.conf.d/99aptitude) и читается она так: чем меньше удалений, тем
> лучше; при равном их количестве — чем меньше отказов на мои прямые указания
> установить / обновить / удалить что-либо, тем лучше; при равных — чем меньше
> пакетов не-умолчательного происхождения, тем лучше.
>
Класно!

>   Мне сложно сказать, как это соотносится с алгоритмом решателя apt или
> apt-get’а, но теперь предложения Аптитьюда я нахожу в целом здравыми, тогда
> как раньше предложения удалить полсистемы или сделать все что угодно, но
> только не то, что я приказал (ваш случай), были не редкостью.

Позднее я вчитывался в документацию aptitude-doc-en и освоился с кнопочками
'A'/'R':

  You can guide the dependency resolver to a solution of which you approve by
  approving or rejecting the individual actions of a solution. If you approve an
  action, the resolver will choose it whenever possible, ignoring alternatives
  (when there are several approved alternatives, any one of them could be
  chosen). On the other hand, if you reject an action, the resolver will never
  choose that action.

Пометки позволяют быстрее приблизится к удовлетворительному решению в
**большинстве случаев**.

После пометок следующее решение будет ближе к тому что хочется и т.д. Но если
руками заставим чего то установиться/удалиться - то пометки "сбрасываются" и
нужно наклацывать заново.

Работа решателя описана в aptitude-doc-en

  Costs in the interactive dependency resolver

и там оказывается можно даже арифметические выражения использовать!

-- 
Best regards!


Reply to: