[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: incapable and obsolete APT / Aptitude replacement



On Mon, Feb 09, 2009 at 12:59:49PM +0100, kc.ubuntu.cz@centrum.cz wrote:
> I would like to ask you a little bit controversal question. As a
> user I miss a package manager based on powerfull dependency
> solver. Using APT in DEB-based distributions, I can easilly create
> some kind of problem, APT is unable to solve. This is because the
> APT is the worst dependency solver almost ever invented. Proof can
> be found here:
>  
>  http://www.mancoosi.org/edos/manager.html 

Given that I'm involved in the mentioned project (Mancoosi), I feel
like replying to some of the points raised in this thread.

First of all the mentioned page is reporting data from a project which
predates Mancoosi, namely EDOS (a project in which I was not yet
involved [1]), data that dates back 2005 or so. EDOS contributed quite
a lot back to Debian, in particular the edos-debcheck toolchain which
is used for QA purposes (see http://edos.debian.net) and on top of
which work is in progress to try improving various part of the Debian
testing and buildd infrastructure.

The reported tests did not involve aptitude at all, but where limited
to APT (and not specifically apt-rpm). What the tests do say is simply
that APT has not a complete dependency solver, where _complete_ means
intuitively something like "being able to find *a* solution whenever
at least one solution does exist". Such a propriety is not *that*
commonly available in state of the art dependency solvers (with SUSE's
Zypp being one of the exception, together with OPIUM and Apache
Maven), so it is definitely not a shame not being complete. The data
reported was simply a review of the state of the art (back then) also
aimed at pointing out the issues to increase sensibility about it.

Actually, SUSE's Zypp descends from studies originating in EDOS so
please don't use them to finger point deficiencies as they were meant
to show how to improve them. Also, as observed in this thread,
aptitude is way more capable than APT itself, so your claim (in the
subject) that equate it to APT is inappropriately
misleading. Arguably, but here we enter the more debatable area of
design goals, APT should stay as it is and more capable solvers should
be implemented on top of it, exactly in the spirit of aptitude.

Also, just to nitpick, note that SAT solving alone is not a suitable
technique to solve dependencies, as in its basic formulation a SAT
answer will just tell you if a given request is satisfiable, without
providing any quality assessment of the result. For instance, when you
ask to install a package "p", you generally want to have a solution
that minimizes the number of extra packages you install wrt "p", while
a SAT solver can find for you a solution that install basically all
the archive, including "p". To achieve the solutions you usually
expect, you will need different techniques.

What we are trying to do within Mancoosi is exactly to get a better
understanding of this aspects, and way more complicate optimization
criteria (e.g.: I want to minimize the installed size, or the download
size, or I want to blacklist packages from maintainer "Joe Random
Developer" because I don't trust him), also devising optimized
algorithms for that [2].

In doing so we are also collaborating with people writing package
managers, and I've already got in touch about that also with both APT
and aptitude developers, even though it is too early to have code. If
you want to know more about all this please have a look at the paper
[3] and presentation by me and Ralf Treinen at DebConf8; the video is
available in the DebConf8 video archive.

Cheers.

[1] I'm pointing this out not to dissociate from that project, but
    just to give credit where credit is due
[2] Note that such algorithms in part do not exist yet, so it is not
    just a matter of shouting "go and implement that".
[3] link to the PDF: 
    http://upsilon.cc/~zack/research/publications/debconf8-mancoosi.pdf ,

-- 
Stefano Zacchiroli -o- PhD in Computer Science \ PostDoc @ Univ. Paris 7
zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
Dietro un grande uomo c'è ..|  .  |. Et ne m'en veux pas si je te tutoie
sempre uno zaino ...........| ..: |.... Je dis tu à tous ceux que j'aime

Attachment: signature.asc
Description: Digital signature


Reply to: