Ce chapitre aborde affiner la personnalisation du contenu du système live delà du simple choix des paquets à inclure. Les includes vous permettent d'ajouter ou de remplacer des fichiers arbitraires à votre image Debian Live, les hooks vous permettent d'exécuter des commandes arbitraires à différentes étapes de la construction et au démarrage, et la préconfiguration (preseeding) vous permet de configurer les paquets quand ils sont installés en fournissant des réponses aux questions debconf .
Bien qu'idéalement un système Debian Live comprendrait les fichiers entièrement fournis par les paquets Debian non modifiés, on convient parfois de fournir ou de modifier certains contenus par le biais de fichiers. Avec les includes, il est possible d'ajouter (ou remplacer) des fichiers arbitraires à votre image live de Debian. live-build prévoit trois mécanismes de leur utilisation:
S'il vous plaît voir Termes pour plus d'informations sur la distinction entre les images "Live" et "binaire".
Chroot local includes peuvent être utilisés pour ajouter ou remplacer des fichiers dans le système de fichiers chroot/Live afin qu'ils puissent être utilisés dans le système Live. Une utilisation typique est de peupler le répertoire du squelette de l'utilisateur (/etc/skel) utilisé par le système live pour créer le répertoire home de l'utilisateur Live. Une autre est de fournir des fichiers de configuration qui peuvent être simplement ajoutés ou remplacés à l'image sans traitement, voir Live/chroot local hooks si le traitement est nécessaire.
Pour inclure des fichiers, il suffit de les ajouter à votre répertoire config/chroot_local-includes. Ce répertoire correspond au répertoire racine (/) du système live. Par exemple, pour ajouter un fichier /var/www/index.html dans le système live, utilisez:
$ mkdir -p config/chroot_local-includes/var/www
$ cp /path/to/my/index.html config/chroot_local-includes/var/www
Votre configuration aura alors le schéma suivant:
-- config
[...]
|-- chroot_local-includes
| `-- var
| `-- www
| `-- index.html
[...]
`-- templates
Chroot local includes sont installés après l'installation de paquets de sorte que les fichiers installés par les paquets sont écrasés.
Pour inclure des matériels tels que des documents ou des vidéos sur le système de fichiers des supports, afin qu'il soit accessible dès l'insertion du support sans avoir à démarrer le système live, vous pouvez utiliser binary local includes. Cela fonctionne de façon similaire aux chroot local includes. Par exemple, supposons que les fichiers ~/video_demo.* sont des vidéos de démonstration du système live décrit par et lié par une page d'index HTML. Copiez simplement le matériel à config/binary_local-includes/ comme suit:
$ cp ~/video_demo.* config/binary_local-includes/
Ces fichiers apparaissent maintenant dans le répertoire racine du support live.
live-build a certains fichiers standard (comme la documentation) qui sera inclus dans la configuration par défaut sur tous les supports live. Ceci peut être désactivé avec:
$ lb config --includes none
Sinon, le matériel sera installé par live-build dans /includes/ par défaut sur le système de fichiers du support, ou bien vous pouvez spécifier un autre chemin avec
Les hooks permettent à les commandes être exécutées dans les étapes chroot et binaire de la construction afin de personnaliser l'image.
Pour exécuter des commandes à l'étape chroot, créer un script hook contenant les commandes dans le répertoire config/chroot_local-hooks. Le hook s'exécutera dans le chroot après le reste de votre configuration chroot a été appliquée, donc n'oubliez pas de vous assurer que votre configuration inclut tous les paquets et les fichiers que votre hook a besoin pour fonctionner. Voir les exemples de scripts chroot hook pour diverses tâches courantes de personnalisation chroot fournis dans /usr/share/live/build/examples/hooks que vous pouvez copier ou symlink pour les utiliser dans votre propre configuration.
Pour exécuter des commandes au moment du démarrage, vous pouvez fournir live-config hooks comme expliqué dans la section "Personnalisation" de sa page de manuel. Examiner les hooks de live-config fournis dans /lib/live/config/, en notant les numéros de séquence. Puis fournir votre propre hook préfixée avec un numéro de séquence appropriée, soit comme un chroot local include dans config/chroot_local-includes/lib/live/config/, ou comme un paquet personnalisé tel que discuté dans Installation des paquets modifiés ou de tiers.
Pour exécuter des commandes à l'étape binaire, créer un script hook contenant les commandes dans config/binary_local-hooks. Le hook sera exécuté après toutes les autres commandes binaires sont exécutées, mais avant binary_checksums, les dernièrs commandes binaires. Les commandes de votre hook ne s'exécutent pas dans le chroot, afin de prendre soin de ne pas modifier les fichiers en dehors de l'arbre de construction, ou vous pourriez endommager votre système de construction! Voir les exemples de scripts hook binaires pour diverses tâches courantes de personnalisation binaires fournis dans /usr/share/live/build/examples/hooks que vous pouvez copier ou symlink pour les utiliser dans votre propre configuration.
Les fichiers dans le répertoire config/chroot_local-preseed sont considérés comme des fichiers de préconfiguration debconf et sont installés par live-build en utilisant debconf-set-selections.
Pour plus d'informations sur debconf, s'il vous plaît voir debconf(7) dans le paquet debconf.