From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <rider@altlinux.com>
Message-ID: <4497A5FB.8070705@altlinux.com>
Date: Tue, 20 Jun 2006 11:38:35 +0400
From: Anton Farygin <rider@altlinux.com>
User-Agent: Thunderbird 1.5.0.2 (X11/20060502)
MIME-Version: 1.0
To: ALT Devel discussion list <devel@lists.altlinux.org>
References: <20060619010637.GE6065@localhost.localdomain>	<20060620000409.GU6065@localhost.localdomain>	<20060620001725.GA6623@basalt.office.altlinux.org>	<20060620005501.GV6065@localhost.localdomain>	<20060620011500.GA7821@basalt.office.altlinux.org>
	<20060620020202.GZ6065@localhost.localdomain>
In-Reply-To: <20060620020202.GZ6065@localhost.localdomain>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Subject: Re: [devel] full list of unmets
X-BeenThere: devel@lists.altlinux.org
X-Mailman-Version: 2.1.7
Precedence: list
Reply-To: ALT Devel discussion list <devel@lists.altlinux.org>
List-Id: ALT Devel discussion list <devel.lists.altlinux.org>
List-Unsubscribe: <https://lists.altlinux.org/mailman/listinfo/devel>,
	<mailto:devel-request@lists.altlinux.org?subject=unsubscribe>
List-Archive: <http://lists.altlinux.org/pipermail/devel>
List-Post: <mailto:devel@lists.altlinux.org>
List-Help: <mailto:devel-request@lists.altlinux.org?subject=help>
List-Subscribe: <https://lists.altlinux.org/mailman/listinfo/devel>,
	<mailto:devel-request@lists.altlinux.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Jun 2006 07:32:12 -0000
Archived-At: <http://lore.altlinux.org/devel/4497A5FB.8070705@altlinux.com/>
List-Archive: <http://lore.altlinux.org/devel/>
List-Post: <mailto:devel@altlinux.org>

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