## NOM

Tazlito — SliTaz Live Tool.

## SYNTAXE

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

## DESCRIPTION

Tazlito est un petit utilitaire permettant d'extraire le LiveCD, reconstruire l'image ISO ou regénérer le système racine du LiveCD de SliTaz. Tazlito donne aussi la possibilité de générer une distribution depuis une liste de paquets préalablements téléchargés et stockés dans un répertoire. Pour fonctionner, l'application Tazlito utilise un fichier de configuration système `/etc/tazlito/tazlito.conf` ou un fichier `tazlito.conf` se trouvant dans le répertoire courant. Ce fichier de configuration peut facilement être généré automatiquement par Tazlito, il spécifie le nom de l'image ISO, le nom du volume, le préparateur, le chemin vers le repositoire des paquets et celui vers la distribution. Tazlito permet aussi de configurer un répertoire contenant des fichiers additionnels, qui seront copiés dans le LiveCD lors de la génération de la distribution.

Tazlito est, distribué sous licence libre GNU GPL v.3, installé par défaut sur SliTaz et installé/testé avec succès sur Debian GNU/Linux. Vous trouverez aussi un complément d'informations au sujet de création de sa propre version du LiveCD, via le livre de cuisine (Cookbook) de SliTaz et le Handbook.

## COMMANDES

### usage

La commande `usage` affiche une liste des commandes disponibles avec une courte description :

    # tazlito usage

### stats

`stats` affiche les variables de configuration, le chemin vers les différents fichiers et répertoires et les informations sur l'image ISO :

    # tazlito stats

### gen-config

La commande `gen-config` vous permet de générer une fichier de configuration prêt à être édité. Par défaut le fichier est créé dans le répertoire courant et peut aussi l'être dans un autre répertoire si spécifié :

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

### configure

La commande `configure` permet de configurer le fichier de configuration système ou celui trouvé dans le répertoire courant :

    # tazlito configure

### gen-iso

La commande `gen-iso` pour Generate ISO permet de générer une nouvelle image ISO du LiveCD suite à des modifications et ajouter dans le système racine du CD-ROM. Pour fonctionner cette commande a besoin d'un répertoire contenant la structure du système Live, cette structure peur facilement être construite avec la commande `extract-distro`, modifiée et reconstruite via :

    # tazlito gen-iso

### gen-initiso

La commande `gen-initiso` va faire le même travail que `gen-iso` mais en reconstruisant préalablement l'initramfs compressé du système. L'initramfs contient tous le système racine de la distribution et doit être reconstruite en cas de modifications sur les fichiers.

    # tazlito gen-initiso

### list-flavors

La commande `list-flavors` télécharge si nécessaire et affiche la liste des différentes saveurs disponibles. On peut forcer le téléchargement avec `--recharge`.

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

### get-flavor

La commande `get-flavor` télécharge si nécessaire et prépare les fichiers nécessaires à `gen-distro` pour refabriquer une saveur.

    # tazlito get-flavor saveur-particuliere

### show-flavor

La commande `show-flavor` affiche les caractéristiques d'une saveur et ses dimensions après refabrication. Les options `--brief` et `--noheader` réduisent l'affichage produit.

    # tazlito show-flavor saveur-particuliere
    # tazlito show-flavor saveur-particuliere --brief
    # tazlito show-flavor saveur-particuliere --brief --noheader

### gen-flavor

La commande `gen-flavor` crée un fichier de description d'une nouvelle saveur à partir des résultats de fabrication de `gen-distro`. Le fichier `.flavor` produit pourra être ensuite envoyé à slitaz.org.

    # tazlito gen-flavor nouvelle-saveur

### gen-liveflavor

La commande `gen-liveflavor` crée une image ISO et un fichier de description d'une nouvelle saveur à partir de la distribution courante. Un fichier texte optionnel permetde décrire les modifications à faire par rapport à la distribution courante. Le format de chacune de ses lignes est `[code][tabulation][caractères]`. Les valeurs possibles de code sont `+`, `-`, `@`, `!` et `?` pour ajouter un paquet, le retirer, décrire la saveur, ajouter un paquet non libre, et afficher un message à l'écran.

    # tazlito gen-liveflavor nouvelle-saveur
    # tazlito gen-liveflavor autre-saveur mes-modifications
    # cat mes-modifications
    @      Developper tools and some non-free packages
    +      slitaz-toolchain
    +      mercurial
    !      skype
    !      flash-plugin

### upgrade-flavor

La commande `upgrade-flavor` raffraîchit une saveur consue pour une ancienne version de SliTaz en mettant à jour la liste des paquets avec les dernières versions des paquets disponibles.

    # tazlito upgrade-flavor une-saveur

### extract-flavor

La commande `extract-flavor` convertit une saveur en une arborescence facilement modifiable dans `/home/slitaz/VERSION/flavors` qui pourra être gérée avec Mercurial dans http://hg.slitaz.org/flavors. Par exemple sur une cooking le répértoire de travail sera `/home/slitaz/cooking/flavors`.

    # tazlito extract-flavor une-saveur

### pack-flavor

La commande `pack-flavor` convertit une arborescence de `/home/slitaz/VERSION/flavors` en saveur (`.flavor`). Soit l'opération inverse de `tazlito extract-flavor`.

    # tazlito pack-flavor une-saveur

### extract-distro

La commande `extract-iso` sert à extraire les fichiers d'une images ISO du LiveCD, pour en reconstruire la structure (Racine du CD-ROM et du système). Il est ensuite possible de faire les modifications ou ajouts souhaités, pour reconstruire l'image ISO via les commandes `gen-iso` ou `gen-initiso`. Exemple d'utilisation :

    # tazlito extract-distro slitaz-cooking.iso

### gen-distro

La commande Generate Distribution permet de générer la structure du système Live et une image ISO via une liste de paquets. Pour fonctionner, cette commande a besoin d'une liste de paquets, d'un répertoire contenant tous les paquets (`.tazpkg`) de la liste et d'un répertoire pour générer la distribution. La liste de paquets peut être extraite d'une saveur par la commande `get-flavor`. Si l'on utilise le Live-CD, les options `--cdrom` et `--iso='image-iso'` permettent de refabriquer les packets qui placent des fichiers dans `/boot` sans être obligé de les télécharger et récupère les fichiers additionnels du Live-CD. Le chemin vers les différents répertoires sont à configurer dans le fichier de configuration utilisé et les paquets peuvent être téléchargés depuis les miroirs de SliTaz ou générés par Cookutils. Pour générer une distro :

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

### clean-distro

Supprime tous les fichiers générés ou extraits de la structure du LiveCD :

    # tazlito clean-distro

### check-distro

Cette commande permet simplement de vérifier si les fichiers non installés par des paquets, sont bien présents dans la distro :

    # tazlito check-distro

### writeiso

Cette commande sauvegarde le système de fichier dans une archive cpio (`rootfs.gz`) et génère une image ISO bootable. Writeiso peut être utilisé avec une installation sur disque dur ou en mode live. Il sauvegarde aussi votre répertoire `/home`. Cette commande vous permet de modifier de refabriquer facilement votre propre LiveCD. Il suffit de démarrer le LiveCD, de modifier les fichiers que vous voulez et de faire :

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

### check-list

Vérifie si `distro-packages.list` est à jour avec les dernières version des paquets.

    # tazlito check-list

### repack

Recompresse le(s) rootfs avec la meilleure compression possible.

    # tazlito repack slitaz.iso

### merge

Réunit plusieurs saveurs imbriquées comme des poupées russes. Chaque rootfs est un sous ensemble du précédent. Le premier rootfs est extrait de l'image ISO en 3e paramètre. La saveur à lancer sera choisie au démarrage suivant la quantité de RAM disponible.

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

### build-loram

Crée une image ISO pour les machines avec peu de mémoire. Le système de fichier racine peut soit être toujours chargé en mémoire ou peut éventuellement rester sur le cdrom selon la mémoire disponible.

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

### emu-iso

La commande emu-iso va utiliser l'émulateur Qemu pour démarrer et lançer SliTaz. Qemu permet de tester l'image ISO fraîchement construite sans la graver sur CD-ROM ou redémarrer en mode frugal.

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

### burn-iso

Burn ISO va deviner le périphérique de CD-ROM, sa vitesse de gravure et lancer l'outils Wodim pour graver une image ISO. L'image ISO par défaut est celle du fichier de configuration courant, mais il est possible de spécifier une autre image via la ligne de commande :

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

## SAVEURS

Les fichiers `.flavor` contiennent en quelques Ko toutes les informations nécessaires pour refabriquer un LiveCD customisé de SliTaz.

### Refabriquer une saveur

On choisit la saveur à refabriquer parmi celles disponibles.

    # 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 environnement

Nous allons refabriquer la saveur eeepc dont le système de fichier utilise 105.4M de RAM et le CD-ROM fait 31.2M.

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

### Créer une saveur

Pour créer une saveur, il faut :

- Soit créer une image ISO avec `tazlito gen-distro` puis créer la saveur correspondante avec `tazlito gen-flavor`.
- Soit créer directement l'arboscence qui définie la saveur (voir la commande `tazlito extract-flavor`) puis créer la saveur avec `tazlito pack-flavor`.
- Soit utiliser le générateur de saveur en ligne :

### Publier une saveur

Les fichiers `.flavor` ne font généralement que quelques Ko. Ils peuvent être envoyés via la liste de diffusion de SliTaz.

Le résultat de `tazlito extract-flavor` peut aussi être mis dans mercurial. Cette méthode est préférable car l'arborescence sera directement visible avec l'interface web de mercurial.

Cette arborescence comprend :

- Le fichier receipt décrit la saveur grâce aux variables :
  - FLAVOR : le nom de la saveur.
  - SHORT_DESC : la description en une ligne.
  - VERSION : format libre.
  - MAINTAINER : adresse email.
  - FRUGAL_RAM : optionnel (peut être estimé), RAM minimum nécessaire.
  - ROOTFS_SIZE : optionnel (peut être estimé). Taille de rootfs.gz décompressé en RAM.
  - INITRAMFS_SIZE : optionnel (peut être estimé). Taille de rootfs.gz sur le CD-ROM.
  - ISO_SIZE : optionnel (peut être estimé). Taille du CD-ROM.
  - ROOTFS_SELECTION : optionnel, voir Meta saveur plus bas.
- Le fichier packages.list contenant la liste des paquets sans préciser leur version (tazlito utilisera la dernière disponible) Ce fichier est absent si ROOTFS_SELECTION est précisé dans receipt.
- Le fichier optionnel mirrors contenant la liste des miroirs non officiels (undigest) à ajouter pour inclure des paquets personnels.
- Le répertoire optionnel rootfs contenant l'arborescence à ajouter dans le système de fichier racine rootfs.gz (des fichiers de configuration habituellement).
- Le répertoire optionnel rootcd contenant l'arborescence à ajouter dans la racine du CD-ROM.

### Adapter une saveur

Il est souvent plus simple de modifier une saveur existante que d'en créer une ex-nihilo. Pour adapter la saveur eeepc par exemple :

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

Les fichiers dans `myslitaz` peuvent être adaptés, puis

    # tazlito pack-flavor myslitaz

Créera simplement la nouvelle saveur.

Astuce: on peut éviter l'installation de mercurial en extrayant une saveur. L'exemple précédent dévient:

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

### Meta saveur

Une meta saveur contient plusieurs saveurs imbriquées comme des poupées russes. La saveur à lancer sera choisie au démarrage suivant la quantité de RAM disponible. La variable ROOTFS_SELECTION définit les couples (quantité de RAM minimun, saveur correspondante), exemple :

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

Une meta saveur n'a pas de liste de paquets (`packages.list`). Les noyaux SliTaz antérieurs à la version 2.6.30 ne supportaient pas les meta saveurs.

## MAINTENEUR

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