External dependency solvers in APT
Back in April I talked about me being in Paris, I returned in May but kept more or less silent about it.
Nothing has really changed since then, I just want to write down now how somebody can play with other solvers now before it hits possibly a bigger audience (in case someone actually reads changelogs or such silly stuff).
All you need is:
- APT in a 0.8.16~ version (debian-experimental has them, ubuntu-oneric too)
- apt-cudf from debian-experimental
- an external solver like aspcud from debian-unstable/testing
And you are ready to have some fun, try e.g. apt-get install awesome
--solver aspcud
You will notice: It's relatively slow, compared to the internal solver. It might not behave like you would expect the internal solver to behave in regards to pinning or alike.
Best example is APT's own external solver 'apt' – yes, you can use the internal solver as an external solver in case you find another program implementing EDSP – which doesn't implement pinning and a few other bits so far. You are right than you think that this one is mostly only useful for debugging. There is another interesting one: 'dump' – imagine what it does…
So, why is this useful you might ask: In case you find a dependency problem you can now dump this problem easily and run different solvers on it. You can also work on developing the next-generation hyper-intelligent solver and be able to use it in day-to-day situations with the tools you usually use. And as a bug-hunter, you can if you have such a dump reproduce the problem more easily and get your hands dirty while fixing the bug. So this EDSP thing is kind of technical preview. It's not planed to drop the internal solver from APT now or in the near future, don't worry. It's mostly here to enable researchers and developers to play with new deployments in real world situations so that at the end they create something which can be used for implementations which can really be used by "normal" end-users.
(and its here to enable me to throw the sentence: "Heh, if you thing the apt solver is so dumb and you could do it so much better: Why don't you do it for the benefit of all of us?" at everyone complaining without hard facts just because they think nobody listens who will hunt them down and force them to solve all these "utterly trivial problems" on their own. Yes, I am looking at YOU ! 😉 )