A more efficient up2date service using binary diffs

Joe Desbonnet jdesbonnet at gmail.com
Thu Mar 10 08:14:45 UTC 2005


Here is my (draft) idea as to how to explore this further. The
advantage of this approach is that it can work as a separate 3rd party
add on software without any modification to the existing software. I
have to confess I'm currently not very familiar with the inner
workings of up2date, apt, yum etc, so maybe there are gotchas here I
havn't thought about.

A RPM repository proxy server runs on the local computer. This proxy
server will be configured with the following information:
  * Location of locally stored RPMs (/var/spool/up2date, copies of
install CDs etc)
  * Location of online RPM repositories
  * Location of RPM diff/delta reposities

Yum/up2date/apt is configured to point to this local server as the repository.

When the proxy server receives a request for a RPM, it checks the diff
repository and obtains a list of diffs that apply to that RPM. It then
checks the local cache to see what RPMs are available. If there is a
suitable match, the downloads the diff, applies the patch, checks the
integrity of the resulting RPM and passes the RPM back to the calling
software (yum/up2date whatever).

If no diff is found, it just downloads the RPM and passes it on directly.

A copy of any new RPM (obtained by diff or by whole) is keep in a
cache for possible use later.

Obviously a separate project is to produce a tool that can
automatically crunch a diff/delta repository out of a standard RPM
repository.

Any flaws in this idea? If not I'll consider taking it on.

Joe.




More information about the fedora-devel-list mailing list