Ce chapitre fournit un aperçu des trois principaux outils utilisés dans la construction des systèmes live: live-build, live-boot et live-config.
live-build est une collection de scripts pour construire des systèmes live. Ces scripts sont aussi appelés "commandes".
L'idée derrière live-build est de constituer un cadre qui utilise un répertoire de configuration pour automatiser et personnaliser complètement tous les aspects de la construction d'une image Live.
Plusieurs concepts sont similaires à ceux utilisés pour construire des paquets Debian avec debhelper:
Unlike debhelper, live-build provides the tools to generate a skeleton configuration directory. This could be considered to be similar to tools such as dh-make. For more information about these tools, read on, since the remainder of this section discuses the four most important commands. Note that the preceding lb is a generic wrapper for live-build commands.
As discussed in live-build, the scripts that make up live-build read their configuration with the source command from a single directory named config/. As constructing this directory by hand would be time-consuming and error-prone, the lb init command can be used to create the initial skeleton configuration tree.
The lb init command creates the following directories inside config/: hooks/, includes/, several other includes subdirectories for each stage of the build process and package-lists/. The latter includes a list of several important live packages like live-boot, live-config and live-config-sysvinit.
Issuing lb config without any arguments completes the config/ subdirectory which it populates with some default settings in configuration files, and two skeleton trees named auto/ and local/.
$ lb config
[2014-04-25 17:14:34] lb config
P: Updating config tree for a debian/wheezy/i386 system
Using lb config without any arguments would be suitable for users who need a very basic image, or who intend to provide a more complete configuration via auto/config later (see Managing a configuration for details).
Normalement, vous voulez indiquer certaines options. Par exemple, pour indiquer la distribution que vous voulez construire en utilisant son nom de code:
$ lb config --distribution sid
Il est possible d'indiquer plusieurs options, telles que:
$ lb config --binary-images netboot --bootappend-live "boot=live components hostname=live-host username=live-user" ...
Une liste complète des options est disponible dans la page de manuel de lb_config.
La commande lb build lit dans votre configuration à partir du répertoire config/. Elle exécute alors les commandes de niveau inférieur nécessaires à la construction de votre système Live.
Le rôle de la commande lb clean est d'enlever les différentes parties d'une construction afin que autres compilations ultérieures puissent commencer à partir d'un état propre. Par défaut, les étapes chroot, binary et source sont nettoyées, mais le cache est laissé intact. En outre, les étapes peuvent être nettoyées individuellement. Par exemple, si vous avez effectué des changements qui affectent uniquement la phase binaire, utilisez lb clean --binary avant de construire un nouveau binaire. Si vos modifications invalident le bootstrap et/ou les caches de paquets, par exemple, modifications aux options --mode, --architecture ou --bootstrap, vous devez utiliser lb clean --purge. Voir la page de manuel de lb_clean pour une liste complète des options.
live-boot est une collection de scripts fournissant des hooks pour initramfs-tools. Il est utilisé pour générer un initramfs capable de démarrer des systèmes live, comme ceux créés par live-build. Cela inclut ISOs, netboot tarballs, et les images pour clés USB.
Au démarrage, il va chercher un support en lecture seule qui contient un répertoire /live/ où un système de fichiers racine (souvent une image du système de fichiers compressée comme squashfs) est stocké. S'il le trouve, il va créer un environnement accessible en écriture, en utilisant aufs, afin que les systèmes similaires à Debian puissent démarrer à partir de cet environnement.
Plus d'information sur initial ramfs dans Debian peut être trouvée dans le Debian Linux Kernel Handbook sur ‹http://kernel-handbook.alioth.debian.org/› dans le chapitre sur initramfs.
live-config se compose des scripts qui s'exécutent au démarrage après live-boot pour configurer le système live automatiquement. Il gère les tâches telles que l'établissement du nom d'hôte, des paramètres régionaux et du fuseau horaire, la création de l'utilisateur live, l'inhibition des cron jobs et l'autologin de l'utilisateur live.