Hallo Christian, *,

SuSE hat einen Patch-mechanismus, der aber leider nicht kompatibel mit den Standard-rpm format ist (AFAIK andere Datenbankstrukture u.ä.)

ich möchte das Update-Problem mal ein bißchen weiter beleuchten. Es ist sicher richtig, daß der SuSE Update-Mechanismus, bei dem einfach ein Patch-RPM über ein bestehendes bereits installiertes RPM eingespielt wird, bei den RPM basierten Distributionen noch nicht weit verbreitet ist.

Allerdings ist das nicht die einzige Möglichkeit. Sowohl für SuSE als auch für andere RPM basierte Distros gibt es das Package "deltarpm", z.B. unter <http://dag.wieers.com/packages/deltarpm> bzw. kann man sich das aus den Sourcen unter <http://suse.inode.at/projects/deltarpm> bauen. Dort sind einige interessante Tools enthalten:

  makedeltarpm  oldrpm newrpm deltarpm
  applydeltarpm -r oldrpm deltarpm newrpm

Mit 'makedeltarpm' läßt sich aus einem alten und einem neuen RPM Package ein Delta erzeugen. Mittels 'applydeltarpm' wird aus einem alten RPM Package und dem Delta das neue RPM.

Bei letzterem neuen RPM handelt es sich um eine binär 100%ig identische Fassung des neuen Original-Packages, welches somit auch auf jeder Distribution problemlos eingesetzt werden kann.

Ich habe mir erlaubt, einige Tests durchzuführen zwischen OOo 2.0.1 und der jetzigen OOo 2.0.2 RC 4 Fassung:

OOo_2.0.1_LinuxIntel_de.tar.gz            110.861.951 Bytes
OOo_2.0.2rc4_060227_LinuxIntel_de.tar.gz  124.084.085 Bytes (*)
openoffice.org.patch.tar.gz                39.392.225 Bytes

(*) Um fair zu bleiben, habe ich die jre entfernt, die bei OOo 2.0.1 noch nicht drin war (Originalsize mit jre war 142.591.488 Bytes)

Es lassen sich also vgl. mit der vollen OOo 2.0.2 RC 4 satte 68% Übertragungsvolumen einsparen, wenn RPM Patches verwendet werden.


Ich habe noch eine weitere Untersuchung ähnlicher Art gemacht:

Angenommen die OOo RPMs wurden ohne Verwendung der Haupt-RPM Database in ein Unterverzeichnis installiert (hier z.B. mit Pavel's install Skript). Anschließend wird das Ergebnis der Installation in ein unkomprimiertes tarball verpackt (**). Es ergibt sich dann folgendes:

ooo_2.0.1.tar     296.693.760 Bytes
ooo_2.0.2.rc4.tar 321.802.240 Bytes

Hierauf lasse man dann das Tool 'xdelta' los (<http://www.xdelta.org>), mit dem man einen Binärpatch erzeugen kann, der einen vom einen tarball zum anderen bringt:

xdelta delta ooo_2.0.1.tar ooo_2.0.2.rc4.tar tarpatch

Dann ergibt sich

tarpatch           55.837.224 Bytes

Hier ist das Verhältnis nicht mehr ganz so gut, aber auch hier ergeben sich immerhin noch 55% Ersparnis.

(**) Die Methode mit den unkomprimierten tarballs wurde gewählt, weil xdelta auf komprimierten Binaries wie z.B. intern schon komprimierten RPM Packages designbasiert nur schlechte Resultate liefert, da wegen der durch die Komprimierung erfolgende Datenverwirbelung die binären Diff Algorithmen leider nicht mehr greifen. xdelta komprimiert die resultierende Patch-Datei schon selbst, eine weitere Komprimierung ist sinnlos.

Gruß,

Guido
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an