:B~ Aperçu des outils

1~overview-of-tools Aperçu des outils

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.

2~live-build Le paquet live-build

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}/:

_* Les scripts ont un emplacement central pour la configuration de leur
fonctionnement. Avec /{debhelper}/, c'est le sous-répertoire #{debian/}#
d'un arbre de paquets. Par exemple, dh_install cherchera, entre autres, un
fichier appelé #{debian/install}# pour déterminer quels fichiers doivent
exister dans un paquet binaire particulier. De la même manière, live-build
enregistre sa configuration entièrement dans un sous-répertoire #{config/}#.

_* Les scripts sont indépendants, c'est-à-dire qu'il est toujours sûr
d'exécuter chaque commande.

Contrairement à /{debhelper}/, live-build contient des outils pour générer
une arborescence de configuration. Cela pourrait être considéré comme
similaire à des outils tels que /{dh-make}/. Pour plus d'informations sur
ces outils, continuer la lecture, parce que le reste de cette section est
sur les quatre commandes les plus importantes. Notez que la commande #{lb}#
est une function générique pour les commandes live-build. 

_* *{lb config}*: Responsable de l'initialisation d'un répertoire de
configuration pour un système Live. Voir {La commande lb config }#lb-config
pour plus d'informations.

_* *{lb build}*: Responsable du démarrage d'un système de construction
Live. Voir {La commande lb build}#lb-build pour plus d'informations.

_* *{lb clean}*: Responsable de la suppression des parties d'un système de
construction Live. Voir {La commande lb clean}#lb-clean pour plus
d'informations.

3~lb-config La commande #{lb config}#

Comme indiqué dans {live-build}#live-build, les scripts qui composent
live-build lisent leur configuration avec la commande #{source}# à partir
d'un seul répertoire nommé #{config/}#. Comme la construction de ce
répertoire à la main serait fastidieuse et source d'erreurs, la commande
#{lb config}# peut être utilisée pour créer une arborescence de
configuration.

Exécuter la commande #{lb config}# sans aucun argument crée le
sous-répertoire #{config/}# qui est peuplée avec certains paramètres dans
fichiers de configuration, et deux sous-répertoires #{auto/}# et #{local/}#
avec une arborescence de fichiers.

code{

 $ lb config
 [2015-01-06 19:25:58] lb config
 P: Creating config tree for a debian/stretch/i386 system
 P: Symlinking hooks...

}code

L'utilisation de #{lb config}# sans aucun argument serait appropriée pour
les utilisateurs qui ont besoin d'une image de base, ou qui ont l'intention
de fournir plus tard une configuration plus complète via #{auto/config}#
(voir {Gestion d'une configuration}#managing-a-configuration pour plus de
détails).

Normalement, vous voulez indiquer certaines options. Par exemple, pour
spécifier le gestionnaire de paquets à utiliser lors de la construction de
l'image:

code{

 $ lb config --apt aptitude

}code

Il est possible d'indiquer plusieurs options, telles que:

code{

 $ lb config --binary-images netboot --bootappend-live "boot=live components hostname=live-host username=live-user" ...

}code

Une liste complète des options est disponible dans la page de manuel de
#{lb_config}#.

3~lb-build La commande #{lb build}#

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.

3~lb-clean La commande #{lb clean}#

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.

2~live-boot Le paquet live-boot

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.

2~live-config Le paquet live-config

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.
