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

Re: [debian-installer] microdpkg

> 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.

not quite sure what you mean by "whole dependency tree checking" ...
right now i am playing with this, and have it load the status file into
memory, storing the package name and status info of each record (no
other meta data is stored). if a package provides a virtual package, the 
virtual package is added as another package in the list with the "real"
package's status. [1]

when you install a list of packages, these packages will have their
status set to "install ok installed" [2] in the above list. then, for each
package, it will look up the status in the list and make sure all the
dependent packages are in the "install ok installed" state. if not it
will die. [3] otherwise the data.tar.gz component will be unpacked in /,
and the postinst script run if it exists. finally the appropriate
control files are moved into /var/lib/dpkg/info/

once packages are installed, the status file is updated by passing in
all the control info from the recently-installed packages. a merge between 
status and the new control data is done, with status info updated from the
in-memory list.

does that sound about right?

> * 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.

unlike dpkg, dpkg-deb can quite easily be written as a shell script. this
may be a better home for it then busybox, which is really a
non-debian-specific tool.


[1] it needs to be a bit more intelligent than it is currently,
probably. if several packages provide a virtual package, whatever occurs
later in the status file will take precedence, which may not be

[2] maybe this should be "install ok half-installed". i need to figure
out what dpkg does

[3] if you are installing multiple packages then it needs to update the
status flags and then do the status file merging.... could be ugly :-(
Debian Developer <tausq@debian.org>

Reply to: