V.O.I.C.E Virtual OS/2 International Consumer Education
Januar 2006
A A A
Artikel

- Christian Hennecke: Des Newsletters neue Kleider
- Christian Hennecke: Artikel mit NVU verfassen - Einfach mehr Stil
- Douglas Clark: eComStation 1.2 Refresh und das Compaq Laptop
- Julian Thomas: Datenrettung nach Festplattenausfall mit DFSee - Was Sie tun können um für den Katastrophenfall des Versagens einer Festplatte vorbereitet zu sein
- Alex Taylor: Wiederauferstehung von RSU - der Remote Software Updates
- Arthur van Egmond: Lotus Approach - Ein erster Schritt zu Erstellung einer Datenbank
- Mark Dodel: Ein Bericht über Warpstock 2005
- Thomas Klein: The making of Warpstock Europa 2005 - Fragen an Robert Henschel
- OS/2-Tips
- Leserbriefe, Addenda, Errata

Aktives GUI-Element

Statisches GUI-Element

Quelltext

WPS-Objekt

Datei/Pfad

Befehlszeile

Inhalt Eingabefeld

`{Tastenkombination]`

mehr

# Wiederauferstehung von RSU - der Remote Software Updates

von Alex Taylor, © Januar 2006

Vor einigen Jahren, war RSU ein kleines, feines IBM-Hilfsprogramm, welches die Installation von FixPaks zu einem Kinderspiel machte. Alles, was man dafür benötigte, waren ein Webbrowser und eine funktionierende Internetverbindung - und schon war das neue OS/2-FixPak nur noch ein paar Mausklicks entfernt (zuzüglich der Downloadzeit).

Zu der Zeit aber, als IBM von Software Choice auf Passport Advantage umstellte, entschloß man sich leider dazu, FixPaks nicht mehr via RSU bereitzustellen. Und so wurde die Installation von FixPaks wieder eine erschütternde und hochgradig technische Beschäftigung: Auffinden und Herunterladen der Diskettenabbilder, das Auspacken selbiger auf irgendeine Art in ein temporäres Verzeichnis, die Jagd auf die korrekte Version von CSF und dann noch das Rekapitulieren der korrekten Reihenfolge der Befehle, um die FixPaks schließlich zu installieren. Und für diejenigen, die mit dem Prozeß nicht vertraut sind, kann daraus ein Haare raufender Albtraum werden.

Selbst wenn man alle Tricks kennt, wie ich, ist es ein unangenehmes Geschäft, besonders wenn man andauern unterschiedliche FixPaks auf diversen OS/2-Systemen installieren muß (was, seitdem ich Virtual PC verwende, scheinbar häfiger vorzukommen scheint). Daher kam, daß ich es versuchte und meinen eigenen RSU-Server einrichtete, um mein Leben etwas leichter zu gestalten.

Ich bin sicher, irgendwo einmal eine detailierte Beschreibung des .RSU Dateiformats gesehen zu haben, aber ich finde sie nicht mehr. Vielleicht lag sie einst auf einer Webseite, die IBM dann aus dem Diesseits getilgt hat. Jedenfalls habe ich das Thema danach studiert und durch Experimentieren schließlich geschafft, fast alles selber herauszufinden.

Auf Standard-OS/2-Systemen ist RSU hervorragend, doch ich rate davon ab, es auf eComStation-Systemen einzusetzen. Das eCS-Wartungsprogramm besitzt seine eigenen Methoden, um FixPaks über das Internet zu installieren und ist heute bereits fortgeschrittener, als RSU es je war. Außerdem kann es auch mit eCS-spezifischen Abhängigkeiten umgehen, die sich nach einer Installation ergeben (wie beispielsweise dem Aktualisieren der Dialog- und Symbolressourcen), was bei RSU nicht der Fall ist.

## Wie RSU funktioniert

In Wirklichkeit ist RSU kein einzelnes Programm, sondern ein logischer Prozeß, der damit beginnt, daß der Anwender im Webbrowser auf einen Link klickt und in der Installation eines FixPaks endet (für gewöhnlich mittels CSF, dem Corrective Service Facility bzw. Fehlerkorrektur-Hilfprogramm). Zwischen diesen beiden Punkten befinden sich drei Hauptkomponenten:

Die .RSU-Datei
  Eine ASCII-Textdatei in einem bestimmten Format, die Installationsanweisungen enthält.
RSUINST.EXE
  Das Programm, welches die Installationsanweisungen aus der .RSU-Datei interpretiert und diesen entsprechende Aktionen ausführt.
FTPINSTL.EXE
  Ein Hilfsprogramm, daß zum Herunterladen von FixPak-Abbildern dient und das Fehlerkorrektur-Hilfsprogramm startet.

Wenn Sie in Ihrem Webbrowser auf einen Link zu einem RSU-FixPak klicken, lädt der Browser eine spezielle Skriptdatei herunter, deren Dateiname die Endung .RSU trägt. Sofern in Ihrem Browser der MIME-Typ RSU korrekt konfiguriert wurde, wird dadurch RSUINST.EXE aufgerufen.

RSUINST.EXE liest die Angaben aus der .RSU-Datei und führt die darin angegebenen Anweisungen entsprechend aus. Diese Anweisungen enthalten im Wesentlichen Dinge wie stelle eine Verbindung zum FTP-Server soundso her unter Verwendung des folgende Benutzernamen/Kennworts und lade dann die folgenden Dateien herunter... packe sie aus, falls nötig, und führe dann diese Befehle mit jenen Parametern aus.

RSUINST.EXE überträgt (und entpackt) alle Dateien in das Verzeichnis \$RSUTMP$ des Laufwerks, welches Sie beim Start von RSU angeben. Danach wird der angegebenen Befehle ausgeführt und das Programm unmittelbar wieder beendet.

Bei Standard-FixPaks wird von RSUINST.EXE als einzige Datei CSF144.ZIP heruntergeladen, bei der er sich um eine spezielle Distribution des CSF handelt, die FTPINSTL.EXE und ein paar weitere Hilfsprogramme enthät. Nachdem diese Datei entpackt wurde, startet RSUINST.EXE das Programm FTPINSTL.EXE mit einem Parameter. Dieser Parameter ist eine Zeichenkette bestehend aus der Adresse eines FTP-Servers, einem Benutzernamen und Passwort sowie dem Namen des auf dem Server befindlichen Verzeichnis, in dem die FixPak-Dateien abgelegt sind. (Obwohl es meistens der Fall ist, muß das nicht unbedingt derselbe Server sein, den RSUINST.EXE zuvor verwendet hat.)

FTPINSTL.EXE meldet sich am FTP-Server an, wechselt in das angegebene Verzeichnis und sucht darin nach einer Datei namens FTPINSTL.ZIP, bei der es sich um eine spezielle ZIP-Datei handelt, die eine Liste der herunterzuladenden Dateien enthält. FTPINSTL.EXE lädt dann diese Dateien herunter, entpackt sie in seinem Arbeitsverzeichnis, führt einige Prüfungen durch und startet schließlich das Programm OS2SERV.EXE, welches als Frontend für das Fehlerkorrekturhilfsprogramm CSF agiert. Dieses führt dann letztendlich die eigentliche Installation des FixPak durch.

Nachdem das FixPak installiert wurde, erfolgt die Rückkehr von OS2SERV.EXE zu FTPINSTL.EXE, welches einige abschließende Aufräumarbeiten durchführt und mit seiner Beendigung die Verarbeitungskette schließt.

Nun, so sieht es im Prinzip aus. Lassen Sie uns nun die verschiedenen Komponenten im Detail anschauen.

## Das .RSU-Dateiformat

Eine .RSU-Datei sieht ungefähr so aus:

Eine typische .RSU-Datei

    INSTALL_TYPE=R
    INSTALL_PGM=ftpinstl.exe pristine
    INSTALL_PARMS=service.boulder.ibm.com anonymous pspdist@vnet.ibm.com ps/products/os2/rsu/xr_m015
    FTP_SITE=service.boulder.ibm.com anonymous pspdist@vnet.ibm.com
    PKG_FILE={
      NAME=ps/products/os2/rsu/csf144.zip
      UNZIP=Y
      FILE_SIZE=1500000
      UNZIPPED_SIZE=5000000
      MODE=B
    }

Die einzelnen Schlüsselwörter sind:

`INSTALL_TYPE`
  So weit ich weiß, sollte dies immer 'R' sein.
`INSTALL_PGM`

  Damit wird RSUINST.EXE mitgeteilt, welches ausführbare Programm nach dem Herunterladen und Entpacken der Dateien gestartet werden soll. Für normale FixPaks sollte das ftpinstl.exe pristine sein. (Fragen Sie mich nicht, was 'pristine' bedeutet.)

  Beachten Sie, daß Sie FTPINSTL.EXE nicht ausführen müssen - wenn Sie ein anderes Programm verwenden wollen, können Sie dieses angeben. (Im weiteren Verlauf werde ich hierzu einige Beispiele zeigen.)

`INSTALL_PARMS`

  Hiermit werden die Befehlszeilenparameter angegeben, die beim Aufruf des durch `INSTALL_PGM` festgelegten Programms verwendet werden. Im Falle von FTPINSTL.EXE ist das eine Zeichenkette im Format

      <FTP-Server> <Benutzername> <Kennwort> <FTP-Verzeichnis>

  mit der FTPINSTL.EXE mitgeteilt wird, wo sich die Dateien befinden, die herunter geladen werden sollen.

`FTP_SITE`

  Eine Zeichenkette des Formats

      <FTP-Server> <Benutzername> <Kennwort>

  Wie bereits weiter oben beschrieben, lädt auch RSUINST.EXE Dateien herunter (nicht zu verwechseln mit den FixPak-Dateien, die von FTPINSTL.EXE heruntergeladen werden). Für diese FTP-Verbindung werden dann die hier gemachten Angaben verwendet.

`PKG_FILE`

  Dies ist eine mehrzeilige Angabe zu einer Datei, die heruntergeladen worden sein muß, bevor das in `INSTALL_PGM` angegebene Programm ausgeführt werden kann. Der Parameter besteht aus einem einzelnen Paar geschweifter Klammern welches die folgenden Schlüsselwörter enthalten muß:

  `NAME`
    Der vollständig qualifizierte Dateiname (also inklusive Pfadangabe) der Datei auf dem FTP-Server.
  `UNZIP`
    Gibt an, ob die Datei entpackt werden muß (`Y`) oder nicht (`N`), nachdem sie heruntergeladen wurde.
  `FILE_SIZE`
    Die zur Speicherung der Datei benötigte freie Kapazität auf dem Ziellaufwerk.
  `UNZIPPED_SIZE`
    Der freie Speicherplatz auf dem Ziellaufwerk, der zum Entpacken der Datei nach dem Herunterladen benötigt wird. (Falls die Datei nicht entpackt werden muß, können Sie hier denselben Wert angeben wie für `FILE_SIZE`.)
  `MODE`
    Gibt an, ob die Datei binär (`B`) oder im ASCII-Modus (`A`) übertragen werden soll.

  Es können mehrere `PKG_FILE`-Definitionen angegeben werden, wenn mittels RSUINST.EXE mehrere Dateien heruntergeladen werden sollen.

## RSUINST.EXE - der Ablauf

Nachdem RSUINST.EXE gestartet wurde, wird zuerst geprüft, ob eine gültige .RSU-Datei als Parameter an das Programm übergeben wurde. Fehlt dieser Parameter oder ist die Datei nicht gültig (weil z.B. nicht vorhanden), wird das Programm sofort beendet.

Nach erfolgreicher Initialisierung zeigt RSUINST.EXE einen Dialog an, mit dessen Hilfe der Anwender einige grundlegende Optionen auswählen kann, wie beispielsweise das Laufwerk zur Speicherung der Dateien und ob der Modus mit ausführlicher Protokollierung verwendet werden soll oder nicht. Die eigentliche Arbeit beginnt erst, nachdem der Anwender auf Begin geklickt hat

Abb. 1: Der RSUINST.EXE-Programmbildschirm
Falls der Programmbildschirm bei Ihnen nicht so aussieht, verwenden Sie eine veraltete Version von RSUINST.EXE und sollten diese aktualisieren. Aus irgendeinem seltsamen Grund werden sogar noch die Convenience Packages mit einer veralteten Version dieses Programms ausgeliefert.

RSUINST.EXE verarbeitet dann die in der .RSU-Datei enthaltenen Angaben wie folgt:

1. Herstellen einer Verbindung zu dem in `FTP_SITE` angegebenen FTP-Server (unter Verwendung des angegebenen Benutzernamens und Kennworts).
2. Jede mittels eines entsprechenden Eintrags `PKG_FILE` angegebene Datei wird übertragen, nachdem sichergestellt wurde, daß genügend freie Speicherkapazität vorhanden ist. Jede Datei mit einem Eintrag `UNZIP=Y` wird dann im Anschluß entpackt.
3. Ausführen des in `INSTALL_PGM` festgelegten Programms mit den durch `INSTALL_PARMS` angegebenen Parametern und Beendigung der Verarbeitung.

Alle heruntergeladenen und entpackten Dateien werden im Verzeichnis \$RSUTMP$ des vom Anwender vorgegebenen Laufwerks gespeichert.

## FTPINSTL.EXE - der Ablauf

FTPINSTL.EXE lädt die eigentlichen FixPak-Dateien herunter, entpackt Sie und ruft dann OS2SERV.EXE auf, um die Installation des FixPaks zu initiieren. Auch bei diesem Programm werden dem Anwender zu Beginn ein paar Optionen angeboten.

Abb. 2: Der FTPINSTL.EXE-Programmbildschirm

Nach Klicken auf Begin stellt FTPINSTL.EXE eine Verbindung zum dem in den Parametern angegebenen FTP-Server her und verwendet zur Authentifizierung die ebenfalls in den Parametern enthaltenen Angaben zu Benutzername und Kennwort. Danach erfolgt ein Wechsel in das angegebene Verzeichnis und es wird nach einer Datei namens FTPINSTL.ZIP gesucht. Diese ZIP-Datei muß in dem FTP-Verzeichnis vorhanden sein und eine spezielle ASCII-Textdatei enthalten, die man als Tabellendatei bezeichnet.

Der Name der Tabellendatei muß dabei immer dem Format <fixpak>.TBL entsprechen, wobei <fixpak> der Name des FTP-Verzeichnis ist. Wenn das FTP-Verzeichnis beispielsweise /ps/products/os2/rsu/xr_m015 lautet, dann muß das ZIP-Archiv FTPINSTL.ZIP in diesem Verzeichnis eine Tabellendatei namens xr_m015.tbl enthalten.

Die Tabellendatei enthält eine Liste zusäztlicher ZIP-Dateien, die von FTPINSTL.EXE herunterzuladen und zu entpacken sind. Diese Dateien werden dabei im folgenden Format - jeweils immer in einer eigenen Zeile - aufgelistet:

    <größe> <dateiname> [<prüfsumme>]

Hierbei steht <größe> für die Größe der Datei in Bytes und <dateiname> für den Namen der Datei. <prüfsumme> ist eine optionale Angabe. Dabei handelt es sich scheinbar um eine Art von Prüfsumme für die angebenene Datei, aber ich habe nicht herausbekommen können, um welche Art genau es sich handelt.

Die in der Tabellendatei angegebenen Dateien müssen sich im selben Verzeichnis befinden, ihre Größe in Bytes (und die Prüfsumme sofern angegeben) muß exakt dem entsprechen, was jeweils in der Tabellendatei angegeben ist. Außerdem muß der Dateiname jeweils einer bestimmten Nomenklatur entsprechen: Die einzelnen Dateinamen (ohne die Erweiterung .ZIP) müssen dem Namen des FTP-Verzeichnis entsprechen und dahinter und zusätzlich ein einziges alphanumerisches Zeichen tragen. Um unser vorheriges Beispiel wieder aufzugreifen, müßte also in einem FTP-Verzeichnis namens /ps/products/os2/rsu/xr_m015 die weiteren ZIP-Dateien Namen tragen, die dem Muster xr_m015?.zip entsprechen, wobei ? entweder eine Ziffer von "1" bis "9" oder ein Buchstabe von "a" bis "z" ist.

Wird als Zeichen ein Buchstabe verwendet, so muß dieser als Kleinbuchstabe angegeben werden. FTPINSTL.EXE scheint auf exakter Schreibweise zu bestehen, wenn Datei- und Verzeichnisnamen geprüft werden. Ich rate daher drigend zur durchgängigen Verwendung von Kleinbuchstaben in Datei- bzw. Verzeichnisnamen.

Wenn eine dieser Bedingungen nicht eingehalten wurde, wird das Herunterladen von FTPINSTL.EXE abgebrochen, und es erscheint eine Fehlermeldung mit Bezug auf eine fehlerhafte Tabellendatei.

FTPINSTL.ZIP kann auch eine Datei namens README.1ST enthalten. In diesem Fall bietet FTPINSTL.EXE die Möglichkeit, diese Datei anzuzeigen (durch Aufruf von E.EXE) während die weiteren ZIP-Dateien heruntergeladen werden.

Sobald alle Dateien heruntergeladen und entpackt wurden, ruft FTPINSTL.EXE das Programm OS2SERV.EXE auf, welches ein graphisches Front-End für CSF ist (und ein weiteres Programm, das in CSF144.ZIP enthalten ist) und den Anwender durch die eigentliche Installation des FixPaks begleitet.

## Einrichtung eines RSU-Servers

Nun, da wir mehr oder weniger wissen, wie RSU unter der Haube funktioniert, können wir unsere eigene RSU-Umgebung einrichten. Dazu müssen wir einige Sachen in Angriff nehmen:

- Das Anlegen der .RSU-Dateien und die Einrichtung einer Website, über die diese erreichbar sind.
- Die Einrichtung eines FTP-Servers zur Bereitstellung der verschiedenen herunterladbaren Dateien (sowohl die Hilfsprogramme als auch die FixPaks selbst).
- Das Umwandeln der FixPak-Abbilddateien in ZIP-Dateien.
- Das Einrichten der FixPak-Verzeichnisse auf dem FTP-Server, einschließlich der Tabellendateien für die einzelnen FixPaks.

### Erstellen der .RSU-Dateien

Das Format der .RSU-Dateien habe ich bereits erläutert. Für die meisten Zwecke reicht es, sich eine Dateivorlage zu erstellen und diese (mit minimalen Modifikationen) für jedes FixPak zu kopieren, das RSU-fähig gemacht werden soll.

Lassen Sie uns für's erste einmal annehmen, daß wir es nur mit Standard-FixPaks zu tun haben werden (also durch CSF installierte). In diesem Fall werden Sie FTPINSTL.EXE als Endpunkt-Programm verwenden (festgelegt mit `INSTALL_PGM`).

Beachten Sie das folgende Beispiel:

Dateivorlage für FixPaks auf einem hypothetischen RSU-Server mit der IP-Adresse 192.168.107.66

    INSTALL_TYPE=R
    INSTALL_PGM=ftpinstl.exe pristine
    INSTALL_PARMS=192.168.107.66 anonymous user@host.rsu os2_fixpak/*******
    FTP_SITE=192.168.107.66 anonymous user@host.rsu
    PKG_FILE={
      NAME=os2_fixpak/csf144.zip
      UNZIP=Y
      FILE_SIZE=1500000
      UNZIPPED_SIZE=5000000
      MODE=B
    }

Der einzige Teil, den ich für gewöhnlich zu ändern brauche, ist "*******" (der FixPak-Verzeichnisname) im Eintrag `INSTALL_PARMS`.

Die Einträge in der .RSU-Datei, auf die man aufpassen muß (beim Erstellen einer Dateivorlage), sind:

`INSTALL_PARMS`

  Stellen Sie sicher, daß Sie hier die Adresse des FTP-Servers angeben, auf dem Sie die (mit ZIP gepackten) FixPak-Dateien ablegen werden. Geben Sie hier auch den korrekten Benutzernamen und Kennwort an (ein anonymes Login wird empfohlen, sofern Ihr FTP-Server dies unterstützt). Im großen und ganzen werden diese Angaben für alle FixPaks gleich sein. Der einzige abweichende Teil wird wahrscheinlich nur der Verzeichnisname am Ende der Zeile sein.

  Hier sind einige Beispiele von meinem RSU-Server:

  xr_m015.rsu (Warp 4 FixPak 15):
    `INSTALL_PARMS=192.168.107.66 anonymous user@host.rsu os2_fixpak/xr_m005`
  xr_d001.rsu (Device Driver FixPak 3):
    `INSTALL_PARMS=192.168.107.66 anonymous user@host.rsu os2_fixpak/xr_d003`
  ip_8414.rsu (Peer 4.0 FixPak IP_8414):
    `INSTALL_PARMS=192.168.107.66 anonymous user@host.rsu os2_fixpak/ip_8414`

  Ansonsten sind die Dateien alle identisch mit der obigen Vorlage.

`FTP_SITE`
  Geben Sie die Adresse (und die Logindaten) des FTP-Servers an, auf sich die Zip-Datei des CSF befindet. Diese können Sie entweder auf Ihrem eigenen Server bereitstellen oder dafür sogar auf IBMs FTP-Server verweisen, dessen Adresse service.boulder.ibm.com lautet und der ein anonymes Login benutzt.
`PKG_FILE`
  Dieser Eintrag muß exakt auf die CSF-ZIP-Datei verweisen. Sie können die Werte aus dem obigen Beispiel verwenden; ändern Sie dabei aber den Parameter `NAME` so ab, daß er auf den korrekten Pfad- und Dateinamen auf Ihrem FTP-Server verweist (oder auf ps/products/os2/rsu/csf144.zip wenn Sie statt dessen zu IBM's FTP-Server umleiten wollen).

Nachdem Sie die .RSU-Dateien erstellt haben, müssen Sie diese noch für Web-Browser-Zugriff durch den/die Anwender verfügbar machen. Eine beliebige Webseite reicht dafür aus - sie sollte jeweils eine HTML-Verknüpfung für die Dateien enthalten..

Eine RSU-Web-Seite sollte außerdem auch eine Verknüpfung zum Programm RSUINSTN.EXE haben (das Sie hier herunterladen können) und vielleicht noch Installationsanweisungen dazu, damit Anwender ihr System gegebenenfalls entsprechend einrichten können. Da IBM's alte RSU-Webseite diese Anweisungen nicht mehr enthält, habe ich eine entsprechende Textdatei zusammengestellt, welche die nötigen Schritte beschreibt.

### Einrichtung des FTP-Servers

Als nächstes benötigen Sie einen FTP-Server, auf dem die Fixpak-Dateien selbst bereitgestellt werden können. Leider erfordert sowohl RSUINST.EXE als auch FTPINSTL.EXE zwingend das FTP-Protokoll zum Herunterladen von Dateien. Web-basiertes Datei-Hosting via HTTP reicht also nicht aus.

Wenn Sie selbst den Server kontrollieren, können Sie Ihr bevorzugtes FTP-Serverprogramm verwenden. Ich empfehle hierfür eines, das anonymes Login unterstützt, ansonsten müßten Sie einen realen Benutzernamen inklusive des Kennworts in die .RSU-Dateien eintragen. Wenn der FTP-Server jemand anderem gehört (beispielsweise Ihrem ISP, einer Firma oder einer Institution) sollten Sie sicherstellen, daß es Ihnen gestattet ist, die FixPaks dort bereitzustellen. Desweiteren sollte der Server über eine ziemlich schnelle Netzwerkanbindung verfügen da FixPaks dazu neigen, Downloads von beträchtlichem Umfang darzustellen.

### ZIP-Dateien erzeugen

FixPak-Dateien werden gewöhnlich als Diskettenabbilder in Form binärer Dateien verteilt. Da wir aber ZIP-Dateien benötigen, müssen Sie also nun aus jeder Abbilddatei eine entsprechende ZIP-Datei erstellen. Dazu verwenden Sie ein Hilfsprogramm wie DSKXTRCT (erhältlich bei Hobbes), um die Abbilddateien zunächst zu entpacken. Danach benutzen Sie einfach ZIP.EXE oder ein gleichwertiges Programm, um die ZIP-Datei zu erstellen.

Beachten Sie bitte, daß - wie bereits gesagt - jede ZIP-Datei denselben Namen wie das FTP-Verzeichnis haben muß, in dem sie später abgelegt wird, zuzüglich eines einzelnen Buchstabens in Kleinschreibung am Ende, gefolgt von der Erweiterung .ZIP.

Das weiter unten abgebildete DSK2RSU.CMD demonstriert übrigens eine automatisierte Methode hierfür.

### Anlegen der FixPak-Verzeichnisse

Legen Sie die ZIP-Dateien jeweils in den entsprechend benannten Verzeichnissen des FTP-Servers ab. Als nächstes müssen nun die speziellen FTPINSTL.ZIP-Dateien in denselben Verzeichnissen angelegt werden.

FTPINSTL.ZIP muß dabei die Tabellendatei <name>.TBL enthalten, wobei <name> wieder einmal dem Namen des FTP-Verzeichnisses entspricht. Die Datei, deren Format bereits oben erläutert wurde, enthält eine Liste der ZIP-Dateien des FixPak sowie deren jeweiliger Größe (in Byte).

FTPINSTL.ZIP sollte darüber hinaus auch die Datei README.1ST enthalten, die mit dem FixPak geliefert wurde (alle FixPaks beinhalten eine Datei diesen Namens).

Das im nächsten Abschnitt beschriebene REXX-Skript erstellt die FTPINSTL.ZIP für Sie automatisch.

### DSK2RSU.CMD

All diese ZIP-Dateien entsprechend und im korrekten Format anzulegen kann mühsam und knifflig werden. Daher habe ich ein einfaches REXX-Skript geschrieben, das diesen Prozeß automatisiert. Das Skript heißt DSK2RSU.CMD und setzt voraus, daß Sie sowohl ZIP.EXE als auch DSKXTRCT.EXE über die Umgebungsvariable PATH aufrufbar installiert haben.

Ich empfehle die Verwendung der aktuellsten Version von ZIP.EXE. Einige andere Versionen brechen bei der Erstellung der ZIP-Datei mit einem seltsamen Fehler ab. Dies habe ich im besonderen bei der Version 2.30 (mit Unterstützung von Verschlüsselung) beobachtet, obwohl es allem Anschein nach systemabhängig ist.

DSK2RSU.CMD ist hier vervfügbar. Um das Skript verwenden zu können, tun Sie folgendes:

1. Legen Sie ein temporäres Verzeichnis mit einem Namen an, der das FixPak beschreibt. Wichtig: Der Name dieses temporären Verzeichnis wird verwendet, um alle von RSU verwendeten Datei- und Verzeichnisnamen für dieses FixPak zu erzeugen. Stellen Sie also sicher, daß der Name aussagekräftig ist. (Es werden nur die ersten sieben Zeichen des Namens verwendet.
2. Besorgen Sie sich die Diskettenabbilder für das FixPak, daß Sie RSU-fähig machen wollen und legen Sie diese gemeinsam in dem temporären Verzeichnis ab.

3. Geben Sie dann folgende Befehl ein:

       DSK2RSU <verzeichnisname>

   <verzeichnisname> ist dabei der Name des Verzeichnisses, das die Diskettenabbilder enthält.

DSK2RSU.CMD macht folgendes:

- Es wandelt alle Diskettenabbilder in ZIP-Dateien um.
- Es erstellt die FixPak-Tabellendatei (.TBL) mit den korrekten Dateiangaben.
- Es erstellt die Datei FTPINSTL.ZIP, in der neben der Tabellendatei auch die Datei README.1ST enthalten ist, sofern eine Datei dieses Namens im Abbild der ersten FixPak-Diskette enthalten war.
- Es legt alle erzeugten ZIP-Dateien gemeinsam in einem neuen Unterverzeichnis ab, dessen Name der zuvor beschriebenen Nomenklatur entspricht.

Das neuangelegte Verzeichnis kann nun von Ihnen direkt in den entsprechenden Pfad Ihres FTP-Servers verschoben werden und schon sollte das FixPak bereit sein für Installationen über RSU (sobald Sie eine entsprechende .RSU-Datei angelegt haben natürlich).

### Beispiel

Nehmen wir einmal an, ich möchte das Warp 4 Peer FixPak IP_8414 zur Installation über RSU bereitstellen. Wir nehmen weiterhin an, daß ich dazu den eingangs bereits erwähnten internen FTP-Server (IP-Adresse 192.168.107.66) verwenden möchte.

Dafür lege ich zunächst die Datei IP_8414.RSU an und mache diese auf irgendeiner Webseite verfügbar:

Beispiel .RSU-Datei für IP_8414

    INSTALL_TYPE=R
    INSTALL_PGM=ftpinstl.exe pristine
    INSTALL_PARMS=192.168.107.66 anonymous user@host.rsu os2_fixpak/ip_8414
    FTP_SITE=192.168.107.66 anonymous user@host.rsu
    PKG_FILE={
      NAME=os2_fixpak/csf144.zip
      UNZIP=Y
      FILE_SIZE=1500000
      UNZIPPED_SIZE=5000000
      MODE=B
    }

Als nächstes muß ich nun die FixPak-Dateien selbst anlegen. Dazu besorge ich mir also die FixPak-Diskettenabbilder von IBM und lege diese alle in einem temporären Verzeichnis (z.B. D:\tmp\ip_8414) ab:

    Directory of D:\tmp\ip_8414

     4-21-05 10:45a         <DIR>      0 ----  .
     4-21-05 10:45a         <DIR>  1,323 ----  ..
     1-09-01 10:02a     1,472,041      0 a---  IP08414.1DK
     1-09-01 10:02a     1,472,041      0 a---  IP08414.2DK
     1-09-01 10:02a     1,472,041      0 a---  IP08414.3DK
     1-09-01 10:02a     1,472,041      0 a---  IP08414.4DK
     1-09-01 10:02a       866,345      0 a---  IP08414.5DK
            7 file(s)   6,754,509 bytes used
                        983,244,800 bytes free

Jetzt stelle ich sicher, daß ZIP.EXE, DSKXTRCT.EXE und DSK2RSU.CMD alle über die Verzeichnisse in der Umgebungsvariable PATH meines Systems erreichbar sind und starte dann die Konvertierung.

    [D:\]dsk2rsu d:\tmp\ip_8414
    Processing 5 diskette images in D:\TMP\IP_8414.

    Unpacking D:\TMP\IP_8414\IP08414.1DK ... OK
    Unpacking D:\TMP\IP_8414\IP08414.2DK ... OK
    Unpacking D:\TMP\IP_8414\IP08414.3DK ... OK
    Unpacking D:\TMP\IP_8414\IP08414.4DK ... OK
    Unpacking D:\TMP\IP_8414\IP08414.5DK ... OK
    Creating ip_84141.zip ... OK
    Creating ip_84142.zip ... OK
    Creating ip_84143.zip ... OK
    Creating ip_84144.zip ... OK
    Creating ip_84145.zip ... OK
    Writing ip_8414.tbl ...
    Creating ftpinstl.zip ...
    Done.

    RSU files have been placed under D:\TMP\IP_8414\IP_8414.

Jetzt kann ich einfach das Ausgabeverzeichnis in das FTP-Verzeichnis verschieben.

    [D:\]move D:\tmp\ip_8414\ip_8414 \FTPServ\ftp\os2_fixpak

### Wichtige Hinweise

Der häufigste Fehler bei der Einrichtung eines RSU-Server besteht darin, daß einer der Datei- oder Verzeichnisnamen fehlerhaft ist. FTPINSTL.EXE ist sehr wählerisch, und wenn Sie es versäumen, alle Ihre Dateien und Verzeichnisse genau so zu benennen, daß Sie der korrekten Formel entsprechen, wird die FixPak-Installation scheitern.

Rekapitulieren wir also nochmals die Benennungsformeln:

- Die ZIP-Dateien des FixPak müssen denselben Namen (einschließlich der Groß-/Kleinschreibung) haben wie das Verzeichnis, in dem sie sich befinden, zuzüglich eines weiteren kleingeschriebenen Zeichens dahinter und unmittelbar vor der Dateinamenerweiterung, die .ZIP zu lauten hat. ('1' steht dabei für die erste Datei, '2' für die zweite, 'a' für die zenhte, 'b' für die elfte, 'g' für die sechzehnte und so weiter.)

- Das FixPak-Verzeichnis muß außerdem eine Datei namens FTPINSTL.ZIP enthalten, welche wiederum folgendes enthalten muß:

  - Eine ASCII-Tabellendatei mit demselben Namen wie das Verzeichnis zuzüglich der Erweiterung .TBL. Diese Datei enthält eine Liste aller FixPak ZIP-Dateien (mit korrekter Groß-/Klein-Schreibweise) die heruntergeladen werden sollen - jeweils eine Datei pro Zeile im Format `größe dateiname` (und optional einer jeweiligen Prüfsumme).
  - Eine ASCII-Datei namens README.1ST, die der Anwender auf Wunsch einsehen kann, während die ZIP-Dateien heruntergeladen werden.

  Die Groß-/Kleinschreibung ist weder beim Dateinamen FTPINSTL.ZIP noch bei den beiden enthaltenen Dateien von Bedeutung. Dies ist allerdings der Fall bei den Dateinamen, die in der Tabellendatei (.TBL) angegeben sind.

Einige neuere FixPaks - speziell im Bereich Netzwerke - werden nicht mehr als Diskettenabbilder sondern in Form von ZIP-Dateien bereitgestellt. In einigen Fällen können Sie diese ZIP-Dateien einfach gemäß der beschriebenen Namenskonventionen umbenennen, damit diese mit RSU installierbar sind (solange Sie die Tabellendatei usw. korrekt erstellen). Allerdings unterliegt FTPINSTL.EXE scheinbar einer Beschränkung der durch es verarbeitbaren Dateien (bei deren Überschreitung ein Abbruch während des Herunterladens auftritt). Der exakte Grenzwert ist mir nicht bekannt, aber er scheint bei einer Größe von etwas mehr als 3 MB zu liegen. Wenn das FixPak also in einer ZIP-Datei von mehr als 3 MB geliefert wird, sollten Sie diese in mehrere Archive aufteilen (und dabei natürlich wieder auf die Einhaltung der besagten Namenskonventionen achten).

### Ohne FTPINSTL.EXE

Da es auf die Installation von Standard-FixPaks ausgelegt ist, interagiert FTPINSTL.EXE automatisch mit dem Corrective Service Facility. Was passiert nun, wenn Sie etwas installieren wollen, das sich zur Installation nicht des CSF bedient?

Wie bereits weiter oben beschrieben, ist es durchaus möglich, ein anderes Programm als FTPINSTL.EXE im Parameter `INSTALL_PGM` der .RSU-Datei anzugeben.

Nehmen wir zum Beispiel an, Sie möchten das Upgrade auf MPTS 5.5 installieren (wird als WR_8610 bereitgestellt). Da es sich hierbei um ein vollwertiges Produkt handelt, welches das vorherige vollständig ersetzt, ist es technisch gesehen alles andere als ein FixPak und wird auch nicht mittels CSF installiert, sondern bringt sein eigenes Installationsprogramm (MPTS.EXE) mit.

Hier ist meine .RSU-Datei für WR_8610:

    INSTALL_TYPE=R
    INSTALL_PGM=mpts.exe
    INSTALL_PARMS=
    FTP_SITE=192.168.107.66 anonymous user@host.rsu
    PKG_FILE={
      NAME=os2_fixpak/wr_8610/wr_86101.zip
      UNZIP=Y
      FILE_SIZE=1500000
      UNZIPPED_SIZE=3000000
      MODE=B
    }
    PKG_FILE={
      NAME=os2_fixpak/wr_8610/wr_86102.zip
      UNZIP=Y
      FILE_SIZE=1500000
      UNZIPPED_SIZE=3000000
      MODE=B
    }
    PKG_FILE={
      NAME=os2_fixpak/wr_8610/wr_86103.zip
      UNZIP=Y
      FILE_SIZE=1500000
      UNZIPPED_SIZE=3000000
      MODE=B
    }
    PKG_FILE={
      NAME=os2_fixpak/wr_8610/wr_86104.zip
      UNZIP=Y
      FILE_SIZE=1500000
      UNZIPPED_SIZE=3000000
      MODE=B
    }
    PKG_FILE={
      NAME=os2_fixpak/wr_8610/wr_86105.zip
      UNZIP=Y
      FILE_SIZE=1500000
      UNZIPPED_SIZE=3000000
      MODE=B
    }
    PKG_FILE={
      NAME=os2_fixpak/wr_8610/wr_86106.zip
      UNZIP=Y
      FILE_SIZE=1500000
      UNZIPPED_SIZE=3000000
      MODE=B
    }
    PKG_FILE={
      NAME=os2_fixpak/wr_8610/wr_86107.zip
      UNZIP=Y
      FILE_SIZE=1500000
      UNZIPPED_SIZE=3000000
      MODE=B
    }

Es gibt hier nun drei Unterschiede zu meinen Dateien für Standard-Fixpaks. Zuerst einmal ist `INSTALL_PGM` jetzt MPTS.EXE - das Programm, mit dem die Installation der aktualisierten MPTS-Version durchgeführt wird. Da es keine Parameter verwendet, kann die Zeile `INSTALL_PARMS` in diesem Fall leer bleiben. Da ich FTPINSTL.EXE nun also nicht benutze, kann ich es auch nicht zum Herunterladen der eigentlichen Produktdateien verwenden und muß stattdessen direkt auf RSUINST.EXE vertrauen. Damit das klappt, werden für jede benötigte Datei entsprechende `PKG_FILE` Anweisungen verwendet.

Genau genommen kann man RSU dazu verwenden, Programme zu laden und zu starten, die im Grunde gar nichts mit FixPak-Installationen zu tun haben. Wenn ich beispielsweise einem Besucher meiner Webseite ermöglichen möchte, das REXX-Skript (TEST.CMD) herunterzuladen und auszuführen - beispielsweise zu Testzwecken - kann ich dafür eine Verknüpfung zu einer .RSU-Datei wie der folgenden verwenden:

    INSTALL_TYPE=R
    INSTALL_PGM=test.cmd
    INSTALL_PARMS=/v
    FTP_SITE=192.168.107.66 anonymous user@host.rsu
    PKG_FILE={
      NAME=support/test.cmd
      UNZIP=N
      FILE_SIZE=12000
      UNZIPPED_SIZE=12000
      MODE=A
    }

Wußten Sie, daß es wahrscheinlich weniger komplizierte Arten gibt, das zu bewerkstelligen?

Übersetzung: Thomas Klein
Formatierung: Christian Hennecke
Korrektur: Christian Hennecke

##### Daten und Quellen

Das Hilfsprogramm DSKXTRCT.EXE, das zum Extrahieren von FixPak-Diskettenabbildern verwendet wird.
Die aktuellste Version von RSUINST.EXE und unterstützenden Dateien von IBM.
Die aktuellste RSU-fähige Version des Corrective Service Facility.
Meine eigene Webseite zu RSU; enthät RSU Verknüpfungen zu FixPaks auf IBM's FTP Seiten.
Meine eigene Webseite über REXX Programme; DSK2RSU.CMD ist dort erhältlich.
Die aktuellste Version der Info-Zip ZIP.EXE Hilfsprogramme - wird empfohlen.
IBM Webseite für die aktuellsten FixPaks (Passport Advantage erforderlich um in den Downloadbereich zu gelangen).