Aufgabenstellung für Software-Entwickler: Paketieren Sie Ihre Software so, dass ein Windows-User sie ohne zusätzliche Kenntnisse unter Linux installieren kann. Geht nicht? Doch, mit Installjammer.
Windows-Anwender erwarten das Einfache. Auf Software-CDs finden sie gewöhnlich eine Datei »setup.exe«, die den Inhalt eines Programmpakets auf die Festplatte bringt und meist auch die spätere Deinstallation ermöglicht. Als einziges Unix-artiges System adaptiert PC-BSD [1] dieses Vorgehen.
Im ewig währenden Diskussionsthema Paketverwaltung lautet das wichtigste Argument gegen den Weg von PC-BSD und Windows: Für Linux existieren bereits mehrere hervorragende Paketsysteme, auch Laien lernen den Umgang mit deren grafischen Frontends schnell. Außerdem entfernen sie Software rückstandsfrei wieder, die Pakete bleiben außerdem schlank, da sie nicht alle Shared Libraries mitbringen müssen.
Für eine Umsetzung Windows-ähnlicher Installationsroutinen spricht, dass eine gewohnte Umgebung Nutzern den Schritt zu Linux erleichtern würde und dass Pakete, die alle verwendeten Bibliotheken enthalten, mit noch weniger Aufwand zu installieren sind. Die Firma Bitrock beackert dieses Feld mit ihrem Install Builder [2] bereits seit 2003; dieser Installer war anfangs das einzige Produkt des Unternehmens.
Technik
Install Builder haben die Aufgabe, das Zusammenstellen der Dateien eines Softwarepakets durch eine grafische Oberfläche zu erleichtern. Das Archiv enthält Informationen darüber, in welche Verzeichnisse des Zielsystems die enthaltenen Dateien gehören, sowie einen Installer und einen Uninstaller. Der User startet die ausführbare Datei, ein grafischer Assistent führt ihn durch die Installation.
Mit Installjammer [3] hat der Texaner Damon Courtney nach mehreren Jahren Arbeit inzwischen den ersten produktionstauglichen Install Builder für Linux veröffentlicht, der unter einer freien Lizenz steht, der Mozilla Public License. Die kommerziellen Linux-Werkzeuge Bitrock Installer und das Installer Toolkit der deutschen Firma Plaasoft [4] kosten rund 200 US-Dollar respektive Euro (Tabelle 1). Nach Angaben von Plaasoft wird die schon zu 95 Prozent fertige Version 3.0 bei gleich bleibendem Preis neben Stand-alone-Installern auch noch RPM-, DEB- und TGZ-Pakete generieren. Freie Linux-Software ist in diesem Bereich dünn gesät, Freshmeat führt nur Izpack [5], das sich auf Java-Pakete spezialisiert hat.
|
Tabelle 1: Install |
|||
|---|---|---|---|
|
|
Installjammer 1.0 |
Bitrock Installer 3.7 |
Plaasoft Installer 2.1 |
|
Preis |
frei, Mozilla Public License |
ca. 200 US-Dollar |
ca. 200 Euro |
|
Plattformen |
Linux, Windows |
Linux, Windows, Mac OS X |
Linux, Windows |
|
Systemvoraussetzungen unter Linux |
X11 |
GTK |
Qt |
|
Paketformate |
Stand-alone-Installer |
Stand-alone-Installer |
Stand-alone-Installer, ab Version 3.0 auch RPM, DEB und |
|
Besonderheiten |
Mac OS X eventuell lauffähig |
Lizenzierung pro Plattform und Anzahl der User |
Neue Version 3.0 zu 95% fertig |
Installjammer läuft dank der TCL-Codebasis unter Windows und unter Linux. Mac OS unterstützt es offiziell zwar nicht, aber auch für dieses Betriebssystem gibt es einen TCL-Interpreter, sodass Installjammer auch damit einsetzbar ist.
Installation
Das Binary »InstallJammer-1.0-Linux-x86-Install« steht auf der Projekt-Homepage zum Download bereit und startet die Installation des Programms. Führt der Anwender diese ausführbare Datei mit Benutzerrechten aus, landet Installjammer unterhalb des Homeverzeichnisses. Verfügt der Prozess über ausreichende Rechte, installiert er die enthaltenen Dateien standardmäßig unter »/usr/local/«. Als Sprachen stehen Installjammer-Benutzern Englisch, Französisch und Spanisch zur Auswahl.
Die Installationsroutine gibt einen ersten Eindruck davon, wie auch eigene, mit Installjammer erstellte Oberflächen aussehen, wobei sich allerdings beispielsweise die Grafiken austauschen lassen. Den Hauptteil der Arbeit erledigt die Installerdatei »main.tcl«. Sie enthält die Dialoge sowie die Logik und kopiert die Zip-komprimierten Programmdateien an ihre Ziele im lokalen Dateisystem.
Nach dem Start präsentiert sich Installjammer zunächst mit einer leeren Projektliste. Die Toolbar-Schaltflächen verzieren Crystal-Grafiken des KDE-Standard-Theme. Der Assistent fragt nach dem Verzeichnis, in dem sich alle Programmdateien und Bibliotheken befinden. Es empfiehlt sich daher, diese nach dem Kompilieren aus dem Quelltext in ein eigenes Verzeichnis zu installieren, nicht unterhalb von »/usr/«.
Projekte zaubern
Im ersten Schritt fragt der Assistent (siehe Abbildung 1) die grundlegenden Daten wie den Projektnamen und das temporäre Verzeichnis ab. Im zweiten erfasst er Informationen zum Programm selbst, bei »Company« findet beispielsweise die Adresse der Projekt-Webseite ihren Platz. Der nächste Dialog möchte die Dateinamen zum Start der Anwendung unter Windows und Linux wissen. Bei Linux bietet sich der relative Pfad ausgehend vom Präfix an. Gibt es keine Windows-Version der zu installierenden Software, bleibt das Feld leer.
In die weiteren Felder kommen das Quellverzeichnis, in dem sich die Programmdateien befinden, die Auswahl des Installer-Designs – klassisch oder modern – sowie die Plattform (Windows, Linux oder beide). In Schritt sieben schließlich besteht die Möglichkeit, einen Uninstaller hinzuzufügen.
Feintuning
Über die Navigation in der linken Baumstruktur lassen sich die Informationen zum Programm, zu den Komponenten und Dateien sowie das Benutzerinterface anpassen. Hier stehen beispielsweise Lizenzbestimmungen (Abbildung 2). Außerdem definiert man Aktionen, die der Installer unter frei zu bestimmenden Bedingungen ausführt. Dabei ruft die Routine externe Programme auf oder passt die Fenstertitel an.

Abbildung 2: Über den markierten Button lassen sich vorgefertigte Dialogschritte, zum Beispiel eine Lizenzbestätigung, in den Installer einfügen.
Interessant sind auch die so genannten virtuellen Texte, in denen sich Variablen definieren und für bedingte Aktionen verwenden lassen (Abbildung 3). Zum Abschluss erzeugt Disk Builder die Installationsdatei (Abbildung 4).

Abbildung 3: Bei virtuellen Texten handelt es sich um Variablen, die der Install Builder beispielsweise bei bedingten Aktionen verwendet.
Der generierte Installer lässt sich direkt innerhalb des Programms ausprobieren. Verschiedene Testmodi ermöglichen das Aufspüren von Fehlern. Sie führen die ganze Installation in einem temporären Verzeichnis durch oder ohne die Dateien ans Ziel zu kopieren.
Das fertige Paket liegt nach dem Speichern in der Datei »InstallJammerProjects/Programmname/output« unterhalb des Homeverzeichnisses. Installjammer inklusive Uninstaller vergrößert den Gesamtumfang des fertigen Pakets in der höchsten Kompressionsstufe um etwa 1,1 MByte. Die Größe der enthaltenen Software spielt dabei keine Rolle.
Einsatzmöglichkeiten
Unter Linux fehlt Installjammer ein Mechanismus wie jener, der unter Windows installierte Programme dem Anwender etwa über die Menüs oder entsprechende Shortcuts auf dem Desktop leicht zugänglich macht. Das ließe sich zwar beispielsweise über zentrale ».desktop«-Dateien lösen, die auch auf den Uninstaller verweisen könnten, aber wer hierfür eine bestehende Lösung sucht, muss auf Autopackage zurückgreifen. Dem wiederum fehlt ein benutzerfreundlicher Package-Builder.
Mit Installjammer ergeben sich für Linux-Entwickler und -Anwender neue Möglichkeiten. Programmierer können Windows-Umsteigern Pakete bieten, bei denen sie zur Installation nicht mal einen Paketmanager zu bedienen brauchen. Zugleich erhalten die Entwickler ein freies Werkzeug, das professionelle Crossplatform-Installer baut.
Installjammer glänzt mit einfachen Wizards für den schnellen Installer-Bau und hoher Flexibilität für anspruchsvolle Anwender. Eine Alternative zu Systemen wie DEB oder RPM ist es allerdings nicht, aber als erstes freies Projekt in seiner Nische ist es durchaus eine hilfreiche Ergänzung. (csc)
|
Installjammer-Entwickler Damon |
|---|
|
Hauptentwickler Damon Courtney über Installjammer und ähnliche Projekte: Ich bin mir sicher, dass Installjammer bei vielen Projekten nützlich ist, aber einigen Leuten wird der Overhead zu groß ausfallen. Das ebenfalls freie Windows-Programm NSIS [6] hat weniger als 50 KByte Overhead, Installjammer dagegen fast 1,5 MByte. Das ist ein ziemlich großer Unterschied, aber wahrscheinlich der Preis, den man für einen Crossplatform-Installer zahlen muss. Installshield [7] braucht 2 zusätzliche MByte und darüber hinaus eine Java-Installation. Installjammer enthält alles, was die Installation benötigt, außer der Libc und X11 unter Linux natürlich. Allerdings ist NSIS nicht ganz so benutzerfreundlich. Installjammer habe ich sowohl für Endanwender als auch für Entwickler komfortabel gestaltet, denn auch Letztere möchten nicht mehrere Stunden mit einem Installer verbringen, sondern nur eine Anwendung in ein Verzeichnis kopieren und einfach auf Build klicken. Den Installer für Installjammer selbst zu erzeugen, hat zum Beispiel fünf Minuten gedauert. Dieser Komfort bringt eben auch Ballast mit sich. |
|
Infos |
|---|
|
[1] PC-BSD: [http://www.pcbsd.org] [2] Bitrock: [http://www.bitrock.com] [3] Installjammer: [http://www.installjammer.com] [4] Plaasoft: [http://www.plaasoft.de] [5] Izpack: [http://www.izforge.com/izpack] [6] NSIS: [http://nsis.sourceforge.net] [7] Installshield: [http://www.macrovision.com/products/flexnet_installshield] |
|
Der Autor |
|---|
|
Michael Stibane arbeitet als Linux-Trainer und Autor. Als Autodidakt produziert er inzwischen eine eigene Linux-Distribution, STX Linux, und hat sein Büro mitten im Wald im Osterzgebirge. |







