Re: Ordering
Hi,
ALl right then. I like the minimal breaks concept, and would
actiully like it if we could indeed to it. This is likely to be quite
complex, though.
Consider this: We try just the conflict+predepends ordering
forst, so that no package need be broken overlong. However, if we hit
an essential package, we should stop, create a full ordering
(conflict+predepends+depends) and then unpack everything that is
required for configuring all the packages in the tree above the
Essential package.
This should create a small list of install candidates, which
can be unpacked in whatever order is deemed best, and configured; The
essential package is then unpacked and configured as atomically as
possible.
In fact, the best method probably would be so:
A) get a preliminary ordering with all dependencies to be considered;
This is the configure order. Do nothing yet.
B) Insert breaks before packages are marked Essential or Configure
now.
C) take the set of packages (upto but not including the first package
marked configure now); generate an unpack order to minimize
breakage; and unpack. Configure all these packages now (they shall
configure, since we started with the packages in configure
order).
D) unpack and configure the Essential package.
E) Go to step C
This is, IMHO, the best of both worlds ;-)
This shall work, if the configure order is generated by
descending the high priority dependencies first; that is, the
algorithm descends pre-dependant links forst, then depends links, and
so on (so a loop shal be snipped by ignoring a low priority link
rahter than an Essential Package link)
manoj
--
Nothing is true. Everything is permitted. Hassan I Sabbah
Manoj Srivastava <srivasta@acm.org> <http://www.datasync.com/%7Esrivasta/>
Key C7261095 fingerprint = CB D9 F4 12 68 07 E4 05 CC 2D 27 12 1D F5 E8 6E
Reply to:
- Follow-Ups:
- Re: Ordering
- From: Jason Gunthorpe <jgg@gpu.srv.ualberta.ca>
- References:
- Re: Ordering
- From: Jason Gunthorpe <jgg@gpu.srv.ualberta.ca>