Verteilungskampf

Softwarepakete werden immer größer, und auch lokale Netze wachsen beständig. Was liegt da näher, als Softwaredistributionen ‘stückchenweise’ auf mehreren Rechnern zu installieren?

In Pocket speichern vorlesen Druckansicht
Lesezeit: 5 Min.
Von
  • Torsten Beyer
  • Kersten Auel

Dank der unermüdlichen Arbeit von abertausend Entwicklern weltweit sehen sich Betreiber und Benutzer von Computern zunehmend der Problematik ausgesetzt, nahezu täglich neue Software einspielen zu müssen. Die Frage, welche neuen Eigenschaften das aktuelle Paket ausmachen, muß dabei meist mit ‘neue Fehler’ beantwortet werden.

Im Ernst, bei mehr als zehn vernetzten Rechnern kann das Problem, stets überall die letzte Software-Release vorrätig zu haben, zu einer Vollzeitbeschäftigung mit minimalen Erfolgserlebnissen werden. Grund genug, sich einmal mehr der Frage zu widmen, welche Systeme dem geplagten Administrator (oder Anwender) hilfreich zur Seite stehen können, wenn es darum geht, die Fallstricke und Fußangeln beim Verteilen von Software zu umschiffen.

Wie üblich im EDV-Geschäft, gibt es auch für das vielschichtige Thema der Softwareverteilung Vereine, Verbände und sonstige Zusammenballungen, die alle das Ziel verfolgen (sagen sie), softwareverteilenden Menschen das Leben angenehmer zu gestalten. Häufig genug ist implizit mit dieser Zielsetzung verbunden, eben diesen Menschen auch die Geldbörse zu erleichtern.

Der wohl bekannteste Club in diesem Umfeld ist das Software Management Council, das sich eben jene Zielsetzung zur Mission gemacht hat. Der zugehörige Web-Server enthält eine Menge Informationen darüber, was der Verein alles leistet und wie man Mitglied wird. Außerdem finden sich dort eine Menge interessanter Artikel zu nahezu jedem Teilaspekt des Verschiebens von Programmen in Rechnernetzen.

Bisweilen hat man ja so ein Gefühl, das einem sagt, ‘Du hast hier ein Problem’, ohne daß man genau weiß, was es ist. Im Softwaremanagementbereich läßt sich dieses Gefühl konkretisieren, wenn man sich die wesentlichen Anforderungen an ein Managementsystem (www.upenn.edu/open-systems/dctf/sw-dist-req.html) zu Gemüte führt.

Wie es aussieht, ist das Erstellen von Systemen zur Softwareverteilung ein lukratives Geschäft. Anders jedenfalls ist die Nichtexistenz frei verfügbarer, leistungsfähiger Systeme nicht erklärbar. Im Unix-Umfeld reduziert sich die Auswahl im wesentlichen auf zwei Kandidaten: rdist und rsync.

rdist ist ein Veteran der Unix-Welt. Daß dieses Programm seit mindestens zehn Jahren seine Arbeit tut, spricht sicherlich auch für seine Qualität. Die Idee ist simpel: anhand von Makefile-ähnlichen Beschreibungen bekommt rdist mitgeteilt, was auf welchem Rechner sein sollte und wo man die komplette Orginaldistribution findet (zum Beispiel auf einem zentralen Depotsystem). Basierend auf dieser Beschreibung führt rdist für alle Dateien einen Soll/Ist-Vergleich durch und - wen wundert's - kopiert dann gegebenenfalls neue Dateien durchs Netz. Wie gesagt, das an sich Feine an rdist ist die recht pfiffige Weise, wie man Soll-Stände beschreiben kann. rdist gibt es überall dort, wo BSD-Quellen (ftp.gwdg.de/pub/freebsd/FreeBSD-CVS/src/usr.bin/rdist/) sprudeln.

rsync ist syntaktisch eine Art rcp-Ersatz - bloß schlauer. Das Tool kopiert nur Differenzen zwischen zwei Dateien; dabei bedient es sich des rsync-Algorithmus. Die Grundidee ist die: Angenommen, man hat zwei Maschinen a und b jeweils mit einer Datei A und B. A und B sind "auml;hnlich" (B ist vielleicht eine Vorversion von A und soll nun auf den neuesten Stand gebracht werden). rsync berechnet auf der Maschine b (über die Datei B) pro Paket zwei Checksummen. Pakete sind typischerweise zwischen 500 Bytes und 1000 Bytes groß. Für jedes Paket sendet b das entsprechende Checksummenpaar an a. Maschine a untersucht jetzt für jedes Paar, ob es in der Datei A ein Paket gibt, dessen zwei Checksummen identisch sind zu den von b gesendeten. Wird a fündig, sind diese Pakete offensichtlich identisch und nur der Rest (also die Stellen in A, für die es keine passenden Checksummenpaare aus B gibt) muß an b übermittelt werden. Der Kniff dabei sind die Checksummenbildungen, die es kurz gesagt erlauben, beim Vergleich mit nur einem Durchlauf über die Datei A sämtliche "Löcher" zu identifizieren.

Nun mag sich die Frage stellen: "Wozu der Wahnsinn, es gibt doch diff und Konsorten?" Stimmt, allerdings benötigen diese Verfahren immer Zugang zu beiden Dateien. Das heißt in obigem Beispiel: kopieren von B nach a. Bei schnellen Netzen und wenigen Update-Vorgängen ist das vielleicht ein gangbarer Weg (sozusagen die Brutalomethode). Bei vielen Rechnern oder langsamen Netzen ist rsync deutlich effektiver. Details zum Algorithmus gibt es zusammen mit einer Implementierung, die ähnlich rcp funktioniert.

Wer eine so heikle Aufgabe wie die Verteilung von Software ungern einem PD-Programm überläßt, kann sich über den Markt (www.sresearch.com/search/105190.htm) kommerzieller Systeme schlau machen. Neben einer relativ vollständigen Zusammenstellung verfügbarer Softwaresysteme findet sich dort auch zu einer Reihe von Anwendungen eine kurze Besprechung, die die jeweiligen Highlights herausstellt. (ka)