From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <4497A5FB.8070705@altlinux.com> Date: Tue, 20 Jun 2006 11:38:35 +0400 From: Anton Farygin User-Agent: Thunderbird 1.5.0.2 (X11/20060502) MIME-Version: 1.0 To: ALT Devel discussion list 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 List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 07:32:12 -0000 Archived-At: List-Archive: List-Post: 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