[devel] I: Замена APT - Deepsolver!

Michael Pozhidaev msp на altlinux.ru
Вт Мар 27 03:11:58 MSK 2012


Hello, Андрей Черепанов!

> Во-первых, есть мой пакет packageinstall, который ставит пакеты в графическом 
> интерфейсе. Там столько костылей и подпорок для текущего apt, что надо 
> переделывать.
> Во-вторых, zerg@ хорошо бы было заменить установку из его apt-indicator через 
> Synaptic на нечто более лёгкое.
> В-третьих, клиент по установки приложений (который aen@ спит и видит) 
> стопорится как раз из-за компонента установки пакетов.

Это то же самое, что мы уже обсуждаем, называя клиентом а-ля магазин
приложений? Как уже писал в deepsolver at lists, нам нужно:

1. Традиционный GUI в стиле synaptic, который неплохо бы получить, как
говорит zerg@, на халяву. Тут я с zerg@ согласен, потому что они в целом
все где-то делают одно и то же, но надо понять, кому какое API
требуется. Шансы с synaptic я оценивал бы как очень слабые. Это будет с
одной стороны очень мучительная работа, а с другой стороны с самого
начала это не похоже на хорошее production решение.

2. Упрощенный клиент, в котором показываются пакеты, имеющие
desktop-файлы. Замысел в том, чтобы скрыть массу пакетов, бесполезных в
самостоятельном виде. 

> 1. Доступ к поиску/установке/удалению из C++ (желательно иметь биндинги и из 
> Python). Для разработки удобнее чтобы для написания клиента нужно было 
> подключить библиотеку и использовать её функции.
> 2. Природная асинхронность операций предполагают использование системы 
> сигналов для информирования об ошибках и прогрессе. Это нужно чтобы в клиенте 
> показывать прогресс и реагировать на возможные ошибки. На Qt это делается с 
> помощью сигналов/слотов. Как здесь - тебе решать, я и на callback-функции 
> согласен. Уже это будет большим шагом вперёд по сравнению с парсингом apt-
> pipe.

Так понимаю, что на деле есть очень много деталей, которые тяжело сразу
предусмотреть, но пока ты не написал ничего сверхъестественного. По
замыслу у нас есть два центральных класса: OperationCore и
IndexCore. Первый должен отвечать за всё, что касается установки
удаления, загрузки индексов и поиска информации о пакетах. Второй
отвечает за всё, что касается построения индексов. Сейчас эти классы
есть, но пока пустые. По ходу дела   в них будет появляться реальное
содержание, за которым стоит следить.  Следить можно на сайте в разделе
API, который буду всегда держать актуальным. 

Из текущих просьб к этому API уже была просьба ldv@ давать останавливать
процесс после каждой стадии: после вычисления списков пакетов, после их
доставки в кэш, и т. д.

PS
Пошли в deepsolver at lists?

-- 
Michael Pozhidaev. Tomsk, Russia.
Russian info page: http://www.marigostra.ru/


Подробная информация о списке рассылки Devel