17.3 Image-Beschreibung

KIWI benötigt eine Image-Beschreibung, um einen Image-Typ zu erstellen. Die Image-Beschreibung ist ein Verzeichnis, das mindestens eine Datei config.xml oder alternativ mit der Erweiterung *.kiwi enthält.

17.3.1 Inhalt der Image-Beschreibung

Die folgende Tabelle enthält zusätzliche optionale Informationen. Die meisten Informationen sind jedoch für die Funktionalität des späteren Betriebssystems obligatorisch:

Tabelle 17-1 Zusätzliche Dateien und Verzeichnisse zur Image-Beschreibung

Datei/Verzeichnis

Beschreibung

config/

Optionales Unterverzeichnis. Enthält Bash-Skripten, die nach der Installation aller Image-Pakete ausgeführt werden.

config.sh

Optionales Konfigurationsskript während der Erstellung der physischen Erweiterung

config.xml

Konfigurationsdatei für jede Image-Beschreibung, erläutert in Die Datei config.xml

config-cdroot.tgz

Archiv, nur für ISO-Images verwendet

config-cdroot.sh

Manipuliert extrahierte Daten aus config-cdroot.tgz.

config-yast-autoyast.xml

Von AutoYaST erstellte Konfigurationsdatei

config-yast-firstboot.xml

Konfigurationsdatei zur Steuerung des YaST Firstboot-Service

images.sh

Optionales Konfigurationsskript bei der Erstellung des Vorbereitungsschritts

Root/

Enthält andere Verzeichnisse, besondere Dateien und Skripten, die nach der Installation aller Image-Pakete geändert werden.

17.3.2 Die Datei config.xml

Sämtliche Informationen über eine Image-Beschreibung werden in einer zentralen XML-Konfigurationsdatei mit dem Namen config.xml gespeichert. Bei jeder Ausführung von KIWI wird config.xml anhand eines RELAX NG-Schemas überprüft. (Für weitere Informationen über diese Schemasprache siehe http://www.relaxng.org). Daher wird empfohlen, einen vernünftigen XML-Editor mit RELAX NG-Unterstützung zu verwenden oder die Dokumentation über das Schema in der HTML-Datei /usr/share/doc/packages/kiwi/schema/kiwi.xsd.html nachzuschlagen.

Die Konfigurationsdatei besteht aus mehreren Teilen:

  • Beschreibung zum Verfasser, Kontaktdaten und eine kurze Erläuterung,

  • erforderliche Voreinstellungsoption für die Stufe der logischen Erweiterung,

  • Informationen über die Benutzer, deren Namen, deren Home-Verzeichnisse und deren Passwörter,

  • Links zu Repositorys,

  • eine Liste aller Pakete, die für den definierten Image-Typ verwendet werden,

  • sowie andere, weniger wichtige Informationen, die Sie in der obigen HTML-Datei der RELAX NG-Schemadokumentation nachschlagen können.

Das folgende Beispiel zeigt ein Gerüst der Datei:

Beispiel 17-1 KIWI-Konfigurationsdatei

<image schemeversion="2.0" name="..."> 
  <description type="system"> 
    <author>...</author>
    <contact>...</contact>
    <specification>...</specification>
  </description>
  <preferences> 
    <type primary="true" boot="..." flags="...">iso</type>
    <type boot="..." filesystem="ext3" format="vmdk">vmx</type>
    <type boot="..." filesystem="ext3">xen</type>
    <type boot="..." filesystem="squashfs" flags="unified">oem</type>
    <version>2.7.0</version>
    <size unit="M">780</size>
    <packagemanager>zypper</packagemanager>
    <rpm-check-signatures>False</rpm-check-signatures>
    <rpm-force>False</rpm-force>
    <locale>en_US.UTF-8</locale>
    <oem-swap>no</oem-swap>
    <oem-boot-title>USB</oem-boot-title>
  </preferences>
  <users group="users"> 
    <user name="root" pwd="" home="/root"/>
  </users>
  <repository type="rpm-md"> 
    <source path="/home/rpmdir"/>
  </repository>
  <packages type="image" patternPackageType="onlyRequired"> 
    <package name="yast2-live-installer"/>
    <package name="pam"/>
    <!-- List of packages reduced -->
  </packages>

Das Wurzelelement jeder KIWI-Konfigurationsdatei. Jede Datei benötigt die Versionsnummer. Ein optionales kiwirevision-Attribut kann verwendet werden, um eine SVN-Revision von KIWI anzugeben.

Enthält eine obligatorische Beschreibung mit Informationen über den Ersteller dieser Image-Beschreibungen, seine Kontaktadresse und eine kurze Erläuterung.

Enthält obligatorische Voreinstellungen mit Informationen über die Version dieses Image, den verwendeten Paketmanager, die unterstützten Image-Typen und andere Einstellungen.

Das optionale users-Element enthält eine Liste aller Benutzer, die dem Image hinzugefügt wurden. Das user-Element enthält den Namen, den Pfad zu seinem Home-Verzeichnis, Passwort und die Shell.

Enthält eine obligatorische Liste der Repositorys, die der Paketmanager verwendet.

Enthält eine obligatorische Liste der Pakete, die im Image eingeschlossen sind.

Weitere Details über die Konfigurationsdatei werden in der obigen HTML-Datei gezeigt.