Tuesday, March 18, 2008

how rpm delta's should work

Server consists of: rsync, cpio. - it should only have copies of the latest rpms on it. It does not need the other ones to create diffs, as that is done on the client. When server gets a request, it extracts the rpm, if not already extracted, into a temporary store. Then sets up an rsync server for the client. It also has a file with the md5sum’s of all the files, the pre and post scripts, and rpm info.

Client:

  • compares rpm file database of md5sums against copy on server.
  • copies files that are different into tempory spot
  • rsyncs the modified files from the server to the client.
  • gets the new pre and post scripts, updated md5sum list and info
  • builds itself a new rpm based on the contents of the old one, plus the changed files.
  • uninstalls the old rpm and installs the new one.

This should save significant bandwidth, be easy to implement, and use existing technology.

No comments: