Paketstruktur#

Das Paketverzeichnis#

Bevor man mit der Paketerstellung anfangen kann, muss man in /srv/deploy/install ein Verzeichnis mit dem Namen des Paketes erstellen:

cd /srv/deploy/install
mkdir name-des-paketes

Der Name des Paketes unterliegt einer Richtlinie: (Hersteller-)Produktname(-Version). Wichtig dabei ist, dass Sie nur Kleinbuchstaben, Bindestriche und Punkten verwenden. Der Hersteller kann bei freien Programmen, wie z.B. Freemind, entfallen. Sollten Sie Pakete für Ihren eigenen Server erstellen, verwenden Sie bitte einen kleinen Zusatz um eventuelles Überschreiben durch unsere Pakete zu vermeiden. Beispiel: gym-microsoft-office-2000. Die Version wird nur angegeben, wenn es unterschiedliche Varianten eines Programms gibt (Beispiel: microsoft-office-2000 und microsoft-office-2003).

In dem angelegten Verzeichnis finden sich alle Dateien des Paketes (Dateiliste kann je nach Paket variieren):

/srv/deploy/install/template/
/srv/deploy/install/template/changelog
/srv/deploy/install/template/control
/srv/deploy/install/template/install.ins
/srv/deploy/install/template/readme.txt
/srv/deploy/install/template/remove.ins
/srv/deploy/install/template/logo.png
/srv/deploy/install/template/data/

Wichtig

Alle Dateien müssen UTF-8 kodiert sein.

Die control-Datei#

Die control-Datei stellt das Kernstück des Paketes dar und bei jedem Paket Pflicht. Der Dateiname ist einfach control, ohne Dateierweiterung.

Hier ist eine Beispieldatei:

[Product]
type: localboot
id: name-despaketes
name: Name des Paketes
description: Beschreibung des Paketes
advice:
version: 1.0
packageVersion: 1.0
setupScript: install.ins
uninstallScript: remove.ins

Die Installationsskripte#

Die Skripte für die Installation und die Deinstallation haben dieselbe Struktur und unterscheiden sich lediglich in gewissen Anweisungen und Abfragen. Sie werden jeweils entsprechend install.ins und remove.ins genannt. Es ist wichtig, dass die Dateien die Endung *.ins besitzen. Die Dateien sind aufgebaut, wie eine INI-Datei. Die zwei notwendigen Sektionen sind Initial und Aktionen.

Hier ist eine Beispieldatei für eine Installation:

[Initial]
Message=Nachricht...
DefVar $ExitCode$

[Aktionen]
ShowBitmap "%ScriptPath%\logo.png" "Paket"
WinBatch_Setup
Sub_HandleExitCode

[WinBatch_Setup]
Installationsbefehl

[Sub_HandleExitCode]
; check return code
Set $ExitCode$ = GetLastExitCode
comment "GetLastExitCode: " + $ExitCode$
if not($ExitCode$ = "0")
  LogError "Fatal: setup returned exit code " + $ExitCode$
  IsFatalError
endif

Weitere Dateien#

Changelog#

Die changelog-Datei enthält die Änderungen an einem Paket und basiert auf den Debian Changelogs.

Hier ein Beispiel für ein Standard-Changelog:

PACKAGE (1.0-1.0) experimental; urgency=low

  * Initial release. (Closes: #XXXXXX)

-- IServ <info@iserv.eu>  Fri, 02 Sep 2011 11:58:27 +0200

Das data-Verzeichnis#

Das data-Verzeichnis enthält die Daten vom Upstream-Hersteller, also die unveränderten Setups. Selbst erstellte Dateien, die die normale Installation beeinflussen, werden im Hauptverzeichnis des Paketes gespeichert. Zusätzliche Dateien können zur besseren Lesbarkeit in einzelnen Unterordnern gespeichert werden.

readme.txt#

Die readme.txt dient zur genaueren Dokumentation der Erstellung eines Paketes. Sie wird nicht benötigt, wenn es sich um einfachen Aufruf mit Parameter handelt. Müssen bei der Erstellung oder Aktualisierung des Paketes besondere Schritten, wie z. B. das Entpacken des Installers, beachtet werden, so ist eine readme.txt anzulegen.