man, 14.03.2005 kl. 08.18 skrev Florian La Roche:
On Mon, Mar 14, 2005 at 01:59:07AM +0000, Joe Desbonnet wrote:
> I have more results from my experiments in RPM delta compression. I've posted
> the results so far here:
http://www.wombat.ie/software/rpmdc/index.shtml
>
> Conclusion so far: assuming someone has the distribution RPMs
> available then an entire
> update repository (about 1GB) can be generated from 200MB of files.
>
> I hope to post my code once I clean it up a bit (it's implemented in
> Java currently).
>
> Must check out rdiff also...
I've done tests some time ago that showed a 4.8 factor to reduce bandwidth
needs for RHEL update releases. Big drawback will be the need of the previous
packages, so this might again be only something for a local server to
download updates, but not for normal client machines.
Still the savings look very nice, so I think we should continue looking at
this.
What if we made some steps here:
1. place an option in anaconda to copy all rpm's to disk. Put them in
say, /var/cache/yum/whatever/is/under/here/again
2. Create the stuff as a independent program, say rpmpatch (sympnosis:
"rpmpatch oldrpm.rpm newrpm.prpm" which outputs newrpm.rpm). This way,
it can also be used manually
3. make the master repository also create prpm's - which then will be
mirrored.
4. make yum check if:
- are there any "old" rpm's lying around localy
- are there any new prpm's in the repository
- if many steps - is it a smaller download to get,
say two prpm's, and patch incrementally untill
you get the wanted rpm?
If yes to theese three - get the prpm, not the full rpm.
(get headers the usual old way - byte-ranges from
the full rpm's)
If no to any of theese - get the full rpm's, just as we do today.
5. When yum has finished downloading, use rpmpatch (maybe making it
acessable as a libary, not only a cmd-line program) to generate the full
rpm. Install it through old "rpm -Uvh" (or libary equalient) as it
normally would.
This way it will add very little complexity. No change to mirrors, no
change to rpm itself. Only a little change on the "master repo". A new
program on the client, a little change to yum to make it get the prpm's
instead of the full rpms, patch to generate full rpm, and install the
usual way.
Kyrre