## NAME

Tazlito — SliTaz Live Tool.

## SYNTAX

    tazlito [command] [list|iso|flavor] [dir]

## BESCHREIBUNG

Tazlito ist ein kleines Programm zum Extrahieren eines Direktstart-ISO-Abbildes, Neuerstellen des ISO-Abbildes und regenerieren des Wurzel-Dateisystems eines Direktstart-ISO-Abbildes. Mit Tazlito kann auch anhand einer Liste vorher transferierter Pakete eine Distribution erzeugt werden. Tazlito liest die Konfigurationsdatei `/etc/tazlito/tazlito.conf` oder eine (leicht zu erstellende) eigene Konfigurationsdatei `tazlito.conf` im Arbeitsverzeichnis. Darin werden der Name des ISO-Abbildes, der Kennsatz für das ISO-Abbild, der Name des Betreuers und die Pfade der Paketdateien und des zu erzeugenden ISO-Abbildes festgelegt. Tazlito kann auch zusätzliche Dateien aus einem Verzeichnis in das ISO-Abbild übernehmen.

Tazlito wird unter der freien GNU-Lizenz GPL v.3 verbreitet und ist standardmäßig auf SliTaz installiert. Ebenso wurde es erfolgreich auf Debian GNU/Linux getestet. Weitere Informationen finden Sie im Handbuch.

## KOMMANDOS

### usage

Mit dem Kommando `usage` wird eine Übersicht der verfügbaren Kommandos mitsamt einer Kurzbeschreibung ausgegeben:

    # tazlito usage

### stats

Mit dem Kommando `stats` werden die Konfigurationsvariablen, die Pfade verschiedener Dateien und Verzeichnisse sowie Informationen über das ISO-Abbild ausgegeben:

    # tazlito stats

### gen-config

Mit dem Kommando `gen-config` wird eine Konfigurationsdatei erstellt, die dann modifiziert werden kann. Standardmäßig wird diese Datei im Arbeitsverzeichnis erstellt, es kann aber auch ein anderes Verzeichnis angegeben werden:

    # tazlito gen-config
    # tazlito gen-config /path/to/distro

### configure

Mit dem Kommando `configure` kann die globale Konfigurationsdatei oder eine Konfigurationsdatei im Arbeitsverzeichnis modifiziert werden:

    # tazlito configure

### gen-iso

Mit dem Kommando `gen-iso` kann ein neues Direkstart-ISO-Abbild unter Berücksichtigung von Änderungen und zusätzlichen Dateien für das Wurzel-Dateisystem erzeugt werden. Damit dies funktioniert, muss der Verzeichnisbaum eines Direkstartsystems zugreifbar sein. Dieser Verzeichnisbaum kann leicht mit dem Kommando `extract-distro` erstellt werden. Nach Änderungen darin wird ein neues ISO-Abbild erzeugt mit:

    # tazlito gen-iso

### gen-initiso

Mit dem Kommando `gen-initiso` wird dasselbe erreicht wie mit `gen-iso`, nur dass zunächst initramfs neu erstellt wird. initramfs enthält das Wurzel-Dateisystem und muss nach jeder Änderung neu erstellt werden:

    # tazlito gen-initiso

### list-flavors

Mit dem Kommando `list-flavors` wird eine Liste verfügbarer Varianten (falls erforderlich) transferiert und angezeigt. Mit der Option `--recharge` wird die Liste in jedem Fall transferiert:

    # tazlito list-flavors
    # tazlito list-flavors --recharge

### get-flavor

Mit dem Kommando `get-flavor` werden die Dateien zum Erstellen einer Variante mit `gen-distro` (falls erforderlich) transferiert und vorbereitet:

    # tazlito get-flavor particular-flavor

### show-flavor

Mit dem Kommando `show-flavor` wird die Beschreibung einer Variante und deren Größe nach Neuerstellung angezeigt. Mit den Optionen `--brief` und `--noheader` wird der Umfang der Ausgabe reduziert:

    # tazlito show-flavor particular-flavor
    # tazlito show-flavor particular-flavor --brief
    # tazlito show-flavor particular-flavor --brief --noheader

### gen-flavor

Mit dem Kommando `gen-flavor` wird eine Datei mit der Beschreibung einer neuen Variante aus den Ergebnissen der Erzeugung einer Distribution (mit `gen-distro`) erstellt. Die Datei `.flavor` kann dann an slitaz.org gesendet werden:

    # tazlito gen-flavor new-flavor

### gen-liveflavor

Mit dem Kommando `gen-liveflavor` wird eine Datei mit der Beschreibung einer neuen Variante aus den Ergebnissen der Erzeugung einer Distribution basierend auf dem laufenden System erstellt. Die Option `--help` liefert weitere Informationen:

    # tazlito gen-liveflavor
    # tazlito gen-liveflavor --help

### upgrade-flavor

Mit dem Kommando `upgrade-flavor` aktualisiert eine Datei `.flavor`, indem in die Paketliste die neuesten verfügbaren Versionen eingetragen werden:

    # tazlito upgrade-flavor this-flavor

### extract-flavor

Mit dem Kommando `extract-flavor` wird eine Variante in eine leicht zu modifizierende Baumstruktur in `/home/slitaz/VERSION/flavors` konvertiert, die mit mercurial verwaltet werden kann: http://hg.slitaz.org/flavors. Für z.B. cooking wird das Arbeitsverzeichnis in `/home/slitaz/cooking` sein.

    # tazlito extract-flavor this-flavor

### pack-flavor

Mit dem Kommando `pack-flavor` wird eine Baumstruktur aus `/home/slitaz/VERSION/flavors` in eine Datei `.flavor` konvertiert. Dies ist die umgekehrte Funktion von `tazlito extract-flavor`:

    # tazlito pack-flavor this-flavor

### extract-distro

Mit dem Kommando `extract-distro` werden Dateien aus einem ISO-Abbild für einen Direktstart-Datenträger extrahiert, um die Wurzelverzeichnisse des optischen Datenträgers und des Systems zu erzeugen. Darin können dann die gewünschten Änderungen oder Erweiterungen vorgenommen werden und das ISO-Abbild mit `gen-iso` oder `gen-initiso` neu erstellt werden. Beispiel:

    # tazlito extract-distro slitaz-cooking.iso

### gen-distro

Mit dem Kommando `gen-distro` kann der Verzeichnisbaum einer Distribution und ein ISO-Abbild gemäß einer Paketliste erzeugt werden. Hierzu wird eine Paketliste, ein Verzeichnis, das alle Pakete (`.tazpkg`) aus der Liste enthält und ein Verzeichnis für die Erstellung der Distribution benötigt. Die Paketliste kann aus der Variante mit dem Kommando `get-flavor` extrahiert werden. Wenn ein optischer Datenträger mit einem Direktstartsystem verwendet wird, ermöglichen die Optionen `--cdrom` und `--iso=` die Wiederherstellung von Paketen, die Dateien im Verzeichnis `/boot` ablegen, ohne dass diese von einem Depot transferiert werden müssen und stellt die zusätzlichen Dateien des optischen Datenträgers wieder her. Die Pfade der verschiedenen Verzeichnisse sind in der Konfigurationsdatei festgelegt und Pakete können von SliTaz-Depots transferiert werden oder mit Cookutils erstellt werden. Eine Distribution erzeugen:

    # tazlito gen-distro
    # tazlito gen-distro --cdrom
    # tazlito gen-distro --iso=slitaz.iso
    # tazlito gen-distro package-list

### clean-distro

Mit dem Kommando `clean-distro` werden alle erzeugten und aus dem ISO-Abbild extrahierten Dateien gelöscht:

    # tazlito clean-distro

### check-distro

Mit dem Kommando `check-distro` wird geprüft, ob mit den Paketen installierte Dateien vorhanden sind:

    # tazlito check-distro

### writeiso

Mit dem Kommando `writeiso` wird das aktuelle Dateisystem in ein cpio-Archiv (`rootfs.gz`) gepackt und anschließend ein urladefähiges ISO-Abbild erzeugt. Writeiso kann sowohl in einem auf Platte installierten SliTaz als auch in einem Direktstartsystem verwendet werden. Auch das aktuelle Verzeichnis `/home` wird in das Archiv übernommen. Damit ist es auf einfache Weise möglich, ein eigenes, angepasstes ISO-Abbild für optische Datenträger zu erstellen. Einfach ein SliTaz-System laden, irgendwelche Dateien ändern und dann:

    # tazlito writeiso [gzip|lzma|none]
    # tazlito writeiso gzip
    # tazlito writeiso gzip image-name

### check-list

Mit dem Kommando `check-list` wird geprüft, ob die Datei `distro-packages.list` die aktuellen Paketversionen enthält:

    # tazlito check-list

### repack

Mit dem Kommando `repack` wird das Wurzel-Dateisystem (rootfs) mit der höchstmöglichen Kompressionsrate neu komprimiert:

    # tazlito repack slitaz.iso

### merge

Mit dem Kommando `merge` werden verschiedene Varianten wie russische Puppen verschachtelt. Jedes Wurzel-Dateisystem ist eine Teilmenge des vorherigen. Das erste Wurzel-Dateisystem wird von dem ISO-Abbild im dritten Argument extrahiert. Dann wird in Abhängigkeit vom verfügbaren Arbeitsspeicher die entsprechende Variante zum Laden ausgewählt.:

    # tazlito merge 160M slitaz-core.iso 96M rootfs-justx.gz 32M rootfs-base.gz

### build-loram

Mit dem Kommando `build-loram` wird aus einem ISO-Abbild ein ISO-Abbild für Rechner mit kleinem Arbeitsspeicher erzeugt. Es kann eine Variante erzeugt werden, bei der das Dateisystem `/` sich stets im Arbeitsspeicher befindet oder wo es sich auf dem optischen Datenträger befindet:

    # tazlito build-loram slitaz.iso loram.iso
    # tazlito build-loram slitaz.iso loram-cdrom.iso cdrom

### emu-iso

Mit dem Kommando `emu-iso` wird der Emulator Qemu zum Laden von SliTaz verwendet. Qemu kann verwendet werden, um ein neu erstelltes ISO-Abbild zu testen, ohne dass es auf optischen Datenträger geschrieben werden muss oder dass eine sparsame Installation vorgenommen werden muss:

    # tazlito emu-iso
    # tazlito emu-iso path/to/image.iso

### burn-iso

Mit dem Kommando `burn-iso` wird ein optisches Laufwerk ermittelt und seine Geschwindigkeit festgestellt. Dann wird mit wodim (Bestandteil von cdrkit) das ISO-Abbild auf einen optischen Datenträger geschrieben. Das Standard-ISO-Abbild ist das aus der aktuellen Konfigurationsdatei, aber es kann auch ein anderes angegeben werden:

    # tazlito burn-iso
    # tazlito burn-iso slitaz-hacked.iso

## VARIANTEN

Eine Datei `.flavor` enthält lediglich einige wenige KB Informationen, die zum (Wieder-)Erstellen eines angepassten SliTaz-Direkstart-ISO-Abbildes für optischen Datenträger benötigt werden.

### Eine Variante erstellen

Aus den vorhandenen Varianten kann eine zum (Wieder-)Erstellen ausgewählt werden:

    # tazlito list-flavors

    List of flavors
    ================================================================================
    Name              ISO   Rootfs  Description
    ================================================================================
    base               6.9M  13.1M  Minimal set of packages to boot
    core-3in1         31.5M 105.6M  SliTaz core system with justX and base alternatives
    core              31.5M 104.6M  SliTaz core system
    eeepc             31.2M 105.4M  SliTaz eeepc system
    justX             16.1M  51.2M  SliTaz with a minimal X environment

Wir beginnen mit der (Wieder-)Erstellung der Variante eeepc, die 105,4 MB Arbeitsspeicher benötigt und auf dem Datenträger 31,2 MB belegt:

    # tazlito clean-distro
    # tazlito get-flavor eeepc
    # tazlito gen-distro

### Eine Variante erzeugen

Um eine Variante zu erzeugen, muss:

- Entweder ein ISO-Abbild mit `tazlito gen-distro` erzeugt werden und dann eine Datei `.flavor` mit `tazlito gen-flavor`
- Oder direkt eine Baumstruktur erzeugt werden, die eine Variante definiert (siehe `tazlito extract-flavor`) und dann eine Datei `.flavor` mit `tazlito pack-flavor`
- Oder der "online builder" verwendet werden

### Eine Variante veröffentlichen

Da eine Datei `.flavor` nur einige wenige KB groß ist, kann sie einfach über die "mailing list" verbreitet werden.

Die Ergebnisse von `tazlito extract-flavor` können auch in das "mercurial repository" transferiert werden. Dieses Verfahren ist vorzuziehen, da der Baum direkt im "mercurial web interface" sichtbar wird.

Dieser Baum enthält:

- Eine Datei receipt, die die Variante über die folgenden Variablen beschreibt:
  - FLAVOR: Der Name der Variante.
  - SHORT_DESC: Kurzbeschreibung.
  - VERSION: Freies Format.
  - MAINTAINER: Email-Adresse des Betreuers.
  - FRUGAL_RAM: Mindestgröße des benötigten Arbeitsspeichers (optional).
  - ROOTFS_SIZE: Größe des entpackten rootfs.gz im Arbeitsspeicher (optional).
  - INITRAMFS_SIZE: Größe von rootfs.gz auf dem Datenträger (optional).
  - ISO_SIZE: Größe des ISO-Abbildes auf dem Datenträger (optional).
  - ROOTFS_SELECTION: Optional, siehe Meta-Variante unten.
- Die Datei packages.list, die die Liste der Pakete ohne Versionsangabe enthält (tazlito verwendet die neueste verfügbare). Diese Datei fehlt, wenn ROOTFS_SELECTION im Rezept angegeben ist.
- Die optionale Datei mirrors, die eine Liste inoffizieller (undigest) Depots enthält, aus denen persönliche Pakete installiert werden können.
- Das optionale Verzeichnis rootfs, das den Baum enthält, der dem Wurzel-Dateisystem rootfs.gz hinzugefügt werden soll (üblicherweise Konfigurationsdateien).
- Das optionale Verzeichnis rootcd , das den Baum enthält, der dem Wurzel-Dateisystem des optischen Datenträgers hinzugefügt werden soll.

### Eine Variante anpassen

Es ist meist einfacher, eine vorhandene Variante zu modifizieren als eine Variante von Grund auf neu zu erstellen. Im folgenden Beispiel wird die Variante eeepc angepasst:

    # tazpkg get-install mercurial
    # cd /home/slitaz
    # hg clone http://hg.slitaz.org/flavors
    # cd flavors
    # cp -a eeepc myslitaz

Dann können Dateien im Verzeichnis `myslitaz` geändert werden und mit

    # tazlito pack-flavor myslitaz

wird eine neue Variante erzeugt.

Tipp: Die Installation von mercurial wie im vorherigen Beispiel ist nicht erforderlich. Es genügen die Kommandos:

    # tazlito get-flavor eeepc
    # tazlito extract-flavor eeepc.flavor
    # cd /home/slitaz/flavors
    # cp -a eeepc myslitaz

### Meta-Variante

Eine Meta-Variante enthält mehrere verschachtelte Varianten, wie russische Puppen. Es wird die Variante geladen, für die genügend Arbeitsspeicher vorhanden ist. Die Variable ROOTFS_SELECTION legt die Mindestgrößen an Arbeitsspeicher für die entsprechenden Varianten fest, Beispiel:

    ROOTFS_SELECTION="160M core 96M justX 32M base"

Eine Meta-Variante enthält keine Paketliste (`packages.list`). Meta-Varianten werden von SliTaz-Kernen vor Version 2.6.30 nicht unterstützt.

## BETREUER

Christophe Lincoln <pankso at slitaz.org>
Pascal Bellard <pascal.bellard at slitaz.org>