Nice features in a pre package manager
In addition to the previously-mentioned pipelining that installs
packages as soon as they're downloaded, so their deb can be deleted,
and has careful sequencing so that a package is not downloaded until
its dependencies have _already_ been met, it would be nice ...
to have the package requesting front end be pipelined and prioritized.
I might have 300MB queued for download and install, but it would be
_really_ nice to have package "xf86config" (for example) ready as soon
as possible. Once that is running, I can find out which graphics card
I need (while more downloading is happening in the background), and
so I ask for "xserver-svga" to get top priority next (while I'm
halfway through running xf86config). Once I've tweaked X the way
I want, during which time (for example) GCC was downloading,
I might ask for "utah-glx" to be prioritized. I then ask for the
kernel source, because I need some features turning on, while
bringing up the 3D support, etc etc etc.
I reckon that being able to have an apt pipeline, with the capability
to promote packages to the head of the list, will halve the time it
takes me to bring up a workstation system.
Configuring takes user time, downloading takes network time, unpacking
takes disk drive time. None of them are really competing for resources,
unless you've got <32MB of memory and dpkg is swiped the whole lot.
These tasks should all happen in parallel.
Suppose the feature is added as an "apt-get queue" to distinguish from
"apt-get install", where the former gives the prompt back immediately
and communicates with an existing apt-get (or starts a background task).
The latter plays nice if there is already an apt-get running, gets
the to-do list modified and then sleeps until the other process reports
that it has completed the request (or is being killed).