Linked by Thom Holwerda on Mon 4th Jun 2007 16:38 UTC, submitted by anonymous
Benchmarks "We have developed a new package-management tool, called Opium, that improves on current tools in two ways: Opium is complete, in that if there is a solution, Opium is guaranteed to find it, and Opium can optimize a user-provided objective function, which could for example state that smaller packages should be preferred over larger ones. We performed a comparative study of our tool against Debian's apt-get on 600 traces of real-world package installations. We show that Opium runs fast enough to be usable, and that its completeness and optimality guarantees provide concrete benefits to end users."
Thread beginning with comment 245197
To read all comments associated with this story, please click here.
Interesting..
by thecwin on Mon 4th Jun 2007 17:51 UTC
thecwin
Member since:
2006-01-04

I always wondered about this sort of thing, but I assumed that given that a package may have somewhat complicated dependencies, I ended up assuming that a "complete" solver wasn't possible.

Consider that you might have two applications installed that depend on packages that are incompatible with each other. How could this new OPIUM system solve this, other than by not including incompatible applications?

For an end-user linux distribution it might be a good idea to not include end applications with incompatible dependency trees. For an end user, this is absolute hell. For a server administrator, these are all important decisions, and with appropriate planning, apt's dependency resolving "problems" shouldn't provide much of a headache.

So does anyone know how OPIUM deals with a situation where A depends on X, B depends on Y, X conflicts with Y, and you try to install both?

RE: Interesting..
by r3m0t on Tue 5th Jun 2007 09:55 in reply to "Interesting.."
r3m0t Member since:
2005-07-25

Assuming you meant you have installed none of A,B,X,Y and tried to install A,B, it would say:

Either: {A,X} (i.e. install A and X)
Or: {B,Y} (i.e. install B and Y)
Or: {} (i.e. do nothing) - but I think they probably filter out that option early on

:-P

Reply Parent Bookmark Score: 1