[devel] full list of unmets

Anton Farygin =?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Вт Июн 20 11:38:35 MSD 2006


Alexey Tourbin wrote:
> 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 и парсить его вывод.
> Каждый такой запуск стоит порядка секунды, а большая часть времени
> уходит на чтение/инициализацию кеша.  То есть нельзя достаточно быстро
> проверить, какие пакеты в сизифе устанавливаемы, а какие нет.  Нельзя
> загрузить кеш один раз и проверить все пакеты в пределах одного
> процесса.

Для этого есть apt-pipe, который вполне реально IMHO научить жить под 
обычным пользователем (создавать сокет в заданном каталоге).

сейчас это выглядит вот так (тормозит только первый запуск):

[root на rider ~]# time apt-pipe ls >/dev/null
0.00user 0.00system 0:02.81elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (2major+615minor)pagefaults 0swaps

[root на rider ~]# time apt-pipe ls >/dev/null
0.00user 0.00system 0:00.03elapsed 43%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+567minor)pagefaults 0swaps

[root на rider ~]# time apt-pipe showpkg icewm >/dev/null
0.00user 0.00system 0:00.01elapsed 80%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+568minor)pagefaults 0swaps


> 
> libapt-pkg дает доступ только ко внутренним структурам данных, но не
> к алгоритмам.  Ни --print-uris, ни unmets из libapt-pkg извлечь нельзя.
> Чем думали авторы апта?

авторов apt'а было слишком много, что бы они могли чем-то думать ;)

Rgds,
Rider




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