Re: [debian-installer] microdpkg
Erik Andersen wrote:
> Doing depends will cetainly be too nasty for a shell scriot, so if we really
> want to include depends, then I agree that doing udpkg in C is the way
> to go.
Yes, we really do need depends. As Randolph says, partly to make sure it
doesn't screw up a system too badly, and also, because it'll be nice if
modules in the installer can have dependencies on other modules.
Depends should be doable without doing a whole dependency tree checking
thing. I'm thinking that when microdpkg is told to install a set of
debs, it can simply update its in-core status data to reflect all of them
being installed, and then iterate through each and make sure each would
then have its dependencies fullfilled. If not, punt; if so, go ahead and
install them all and write the status data back out to disk.
> I'm very open to the idea, after we agree on how to approach it.
> Maybe I'm missing something though (I almost certainly am), but do we really
> need a 'microdpkg-deb'? Wouldn't just 'microdpkg' be enough? When we go to
> install the base system, we really just want to unpack the .debs and drop
> them into place.
My reasoning behind having a microdpkg-deb was something like this:
* Dpkg-deb has a really simple interface and will be trivial to clone
well. So people will be able to use the clone with a high degree of
confidence that it'll work like dpkg-deb would.
* On the other hand, dpkg is really complex, and we arn't going to clone
the whole thing, and our clone will only be useful in certian limited
* There is basically no shared code in between the two programs (or
doesn't have to be), so space isn't much of an issue if they're split,
aside from disk block overhead.
So it seemed to make sense to split them, and probably put microdpkg-deb
in busybox since it's generally useful, and maybe not put microdpkg in
there if it isn't.
But whatever works for you is fine with me.
see shy jo
 Although conflicts are rather more useful if you're worried about
that, and I really don't want to add conflicts, it would make it all so
much more complex..