Modern Update System

Nigel Metheringham nigel.metheringham at dev.intechnology.co.uk
Tue Nov 29 16:01:37 UTC 2005


On Tue, 2005-11-29 at 15:30 +0000, David Woodhouse wrote:
> On Mon, 2005-11-28 at 19:13 -0500, Benjy Grogan wrote:
> > Is there any work being done for a modern update system that would
> > only download what is needed instead of an entirely new rpm? 
> 
> One trick I've had moderate success with is to extract the RPM payload
> (on the remote end) into a cpio file. Then create a cpio file locally
> using the contents of the old package, and rsync the new cpio using the
> old cpio as seed. Once that's done, recompress (using 'minigzip -9' so
> that it precisely matches what RPM does) and then use that as seed for
> rsyncing the RPM itself, just to get the header.

How well does it work if you pull the rpm header (presumably thats
always needed for an update), build the payload using existing files on
the system (ie from the previous install) via cpio/minigzip, glue the 2
together and rsync that?

Or even *not* pull the current rpm header, but build an rpm on the
system using the old installed package db info (how do database ordering
issues hit us here), and then rsync the new rpm on top of the
reconstructed one.  [If the old rpm is still in yum's cache then you can
just do a copy rather than a reconstruct, but that can not be assumed to
be the normal case].

It does require mirrors to give rsync access - which is probably pretty
wide spread *but* would need the rsync URLs for mirrors to be made
available - you can't just assume that you can do s/^(f|ht)tp:/rsync:/

	Nigel.
-- 
[ Nigel Metheringham           Nigel.Metheringham at InTechnology.co.uk ]
[ - Comments in this message are my own and not ITO opinion/policy - ]





More information about the fedora-devel-list mailing list