James Wilkinson wrote:
Justin W wrote:
That brings me to a related question I've wondered for some time: why
do we have to download entire packages for updates? Why can't there be
an RPM package similar to patches? Then you'd only have to download
the difference in a package (and I don't mean a partial file, but just
whole files that have been updates.
SuSE has something like this, called patch RPMs or delta RPMs: see
ftp://ftp.suse.com/pub/projects/deltarpm/README. Fedora has steered away
from the concept to date.
Part of the problem with delta RPMs is that they can take up more space
and/or more download time: if most of the files have been recompiled
against a different version of a library or with a different version of
gcc, then one patch RPM could be more than half the size of the full
package. If the package is updated again, then you've either got to
apply two deltas to get from the original to the newest version (which
will be larger than just getting the full RPM), or mirrors[1] have to
carry two deltas (original to newest, and update to newest). And the
mirror would have to carry the full updated version as well (for people
who suddenly want to install the package for the first time), and
probably the original package.
I'm not trying to start a heated debate (just curious :-), but why would
you have to have a patch rpm against both the original package and an
updated package? Why couldn't it be set up like patches where you would
require previous patch rpms to be installed, and we could even obsolete
a patch rpm with a later patch rpm, bringing the download total back
down again (this makes me think of what SP2 does for XP, eliminating the
need for a googolplex KB updates, though I'm not considering the overall
size here). I do see the point in an initial install after the release
date would require downloading the package and all of the patches, so
that could get to be a problem.
[snip]
Justin W