On Tue, Jun 20, 2006 at 05:15:00AM +0400, Dmitry V. Levin wrote: > Что касается более сложной обработки, то тут надо вспомнить математику и > хорошенько подумать. Ну в общем да. Нужно осилить топологию и теорию графов. Потом нужно переписать apt на ocaml'е. :) Сейчас к апту очень серьезная претензия: библиотека libapt-pkg не дает доступа к основным алгоритмам. То есть например алгоритм 'apt-get --print-uris install' закоден непосредственно в apt-get. Чтобы попробовать узнать, можно установить отдельно взятый пакет или нет, приходится запускать apt-get и парсить его вывод. Каждый такой запуск стоит порядка секунды, а большая часть времени уходит на чтение/инициализацию кеша. То есть нельзя достаточно быстро проверить, какие пакеты в сизифе устанавливаемы, а какие нет. Нельзя загрузить кеш один раз и проверить все пакеты в пределах одного процесса. libapt-pkg дает доступ только ко внутренним структурам данных, но не к алгоритмам. Ни --print-uris, ни unmets из libapt-pkg извлечь нельзя. Чем думали авторы апта?