LINUX.ORG.RU

Aptitude предлагает снести пол-системы.

 , , , ,


1

2

Добрых суток, товарищи.

Когда в репозитории Дебиана относительно установленной системы накопилось порядочно обновлений (несколько сотен пакетов), но обновлять их все желания / возможности нет, но есть желание обновить частично, то нередко Aptitude показывает себя не сильно умным, предлагая для начала в порядке разрешения зависимостей снести пол-системы, хотя решение через обновление энного количества пакетов заведомо существует, и более того, несколько раз нажав ., можно заставить Аптитьюд его выдать, но чаще быстрее просто отключить решатель (# aptitude -o Aptitude::ProblemResolver::StepLimit=0) и разрешать сломанные зависимости вручную.

Собственно, а нельзя ли на пользовательском уровне научить Аптитьюд выдавать сразу нормальное решение? У него там настраивается куча весовых коэффициентов на этот счет, может быть кто уже подобрал нужные?

★★★★★
Ответ на: комментарий от Zmicier

Решать зависимости руками можно и без отключения решателя. При любом prompt aptitude даёт использовать команды «+», «_» и другие.

Darth_Revan ★★★★★
()
Ответ на: комментарий от Zmicier

Подозреваю, что можно, но оно того не стоит. apt справляется с установкой и удалением пакетов не хуже. Бывают сложные ситуации, где использование aptitude проще (например, в её решениях допускается даунгрейд, тогда как в apt это происходит только при явном указании версии), но нет таких ситуаций, которые может разрешить только aptitude.

Gotf ★★★
()
Ответ на: комментарий от Darth_Revan

Можно, но сложнее — после каждого действия руками снова запускается решатель, который что-то там пытается наворотить.

Zmicier ★★★★★
() автор топика
Ответ на: комментарий от Gotf

Установка и удаление — дело последнее, сначала пакеты надо выбрать, apt разве умеет работать с категориями и тэгами, и в отсутствии интерактивного интерфейса тоже ничего хорошего.

Zmicier ★★★★★
() автор топика
Ответ на: комментарий от Zmicier

apt разве умеет работать с категориями и тэгами

ara, dctrl-tools.

Gotf ★★★
()

решение через обновление энного количества пакетов заведомо существует, и более того, несколько раз нажав ., можно заставить Аптитьюд его выдать

Так в чем проблема?

alozovskoy ★★★★★
()
Ответ на: комментарий от yoghurt

Может конечно Synaptic как по особому юзает apt-get, но в нем я периодически сталкиваюсь с подобными проблемами. Решаю правда просото методом тыка и установкой в два-три приема, ибо лень.

Suntechnic ★★★★★
()

apt-get и apt сейчас решают лучше чем aptitude

quest ★★★★
()
Ответ на: комментарий от alozovskoy

Проблема в том, что это решение Аптитьюд находит не сразу, а только если несколько раз отвергнуть решения типа «вот это и это обновить, а вот это снести»; это «несколько» — иногда пара раз, и иногда и за десяток, а иногда и вовсе терпения не хватает до него дойти, так что по времени быстрее оказывается отключить решатель вообще.

Zmicier ★★★★★
() автор топика

Поигравшись с весами функции расчета фирменной аптитьюдовской «safety», понял, что толку от того не будет, и отключил ее вообще, поставив простое условие расчета приемлемости решения:

Aptitude::ProblemResolver::SolutionCost "removals, canceled-actions, non-default-versions";

— меньше удалений, при равных — меньше отказов на прямые приказы, при равных — меньше пакетов из недефолного репозитория.

Теперь почти все нормально — сносить пол-системы больше не предлагает.

Одна проблема — вместо возможного обновления пару раз предложил устарение; теоретически, это можно попытаться исправить, включив в формулу расчета приоритет, но пока и так сойдет — благо Аптитьюд интерактивен — нажать пару раз ‹r› мне уже не лень.

Всем спасибо, вопрос снят, по крайней мере до приступа перфекционизма.

Zmicier ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.