:B~ Personnalisation des contenus

1~customizing-contents Personnalisation des contenus

Ce chapitre aborde la personnalisation fine des contenus du système live
au-delà du simple choix des paquets à inclure. Les inclusions vous
permettent d'ajouter ou de remplacer des fichiers arbitraires dans votre
image Debian Live, les hooks vous permettent d'exécuter des commandes
arbitraires dans 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.

2~includes Includes

Bien qu'idéalement un système Debian Live comprendrait des fichiers
entièrement fournis par les paquets Debian non modifiés, il peut être
pratique de fournir ou de modifier certains contenus par le biais de
fichiers. Avec les inclusions, il est possible d'ajouter (ou remplacer) des
fichiers arbitraires dans votre image live de Debian. live-build prévoit
deux mécanismes pour leur utilisation:

_* Chroot local includes: Ils vous permettent d'ajouter ou remplacer des
fichiers sur le système de fichiers chroot/Live. Veuillez consulter
{Live/chroot local includes}#live-chroot-local-includes pour plus
d'informations.

_* Binary local includes: Ils vous permettent d'ajouter ou de remplacer des
fichiers dans l'image binaire. Veuillez consulter {Binary local
includes}#binary-local-includes pour plus d'informations.

Veuillez consulter les {Termes}#terms pour plus d'informations sur la
distinction entre les images "Live" et "binary".

3~live-chroot-local-includes Live/chroot local includes

Les 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
l'arborescence du répertoire de l'utilisateur (#{/etc/skel}#) utilisée 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}#live-chroot-local-hooks si le traitement est nécessaire.

Pour inclure des fichiers, il suffit de les ajouter à votre répertoire
#{config/includes.chroot}#. 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:

code{

 $ mkdir -p config/includes.chroot/var/www
 $ cp /path/to/my/index.html config/includes.chroot/var/www

}code

Votre configuration aura alors le schéma suivant:

code{

 -- config
    [...]
     |-- includes.chroot
     |   `-- var
     |       `-- www
     |           `-- index.html
    [...]

}code

Les chroot local includes sont installés après l'installation de paquets de
sorte que les fichiers installés par les paquets sont remplacés.

3~binary-local-includes Binary local includes

Pour inclure des matériels tels que des documents ou des vidéos sur le
système de fichiers des supports, afin qu'ils soient accessibles dès
l'insertion du support sans 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écrits par et liés par une page
d'index HTML. Copiez simplement le matériel dans #{config/includes.binary/}#
comme suit:

code{

 $ cp ~/video_demo.* config/includes.binary/

}code

Ces fichiers apparaissent maintenant dans le répertoire racine du support
live.

2~hooks Hooks

Les hooks permettent l'exécution des commandes dans les étapes de la
construction chroot et binary afin de personnaliser l'image. 

3~live-chroot-local-hooks Live/chroot local hooks

Pour exécuter des commandes à l'étape chroot, créer un script hook avec le
suffixe #{.chroot}# contenant les commandes dans le répertoire
#{config/hooks/}#. Le hook s'exécutera dans le chroot après que le reste de
votre configuration chroot ait été appliqué, donc n'oubliez pas de vous
assurer que votre configuration inclut tous les paquets et les fichiers dont
votre hook a besoin pour fonctionner. Consultez les exemples de scripts
chroot hook pour diverses tâches courantes de personnalisation chroot
fournis dans #{/usr/share/doc/live-build/examples/hooks}# que vous pouvez
copier ou faire un lien symbolique pour les utiliser dans votre propre
configuration.

3~boot-time-hooks Hooks pendant le démarrage

Pour exécuter des commandes pendant le démarrage, vous pouvez fournir
live-config hooks comme expliqué dans la section "Personnalisation" de sa
page de manuel. Examinez les hooks de live-config fournis dans
#{/lib/live/config/}#, en notant les numéros de séquence. Fournissez ensuite
votre propre hook précédé d'un numéro de séquence appropriée, soit comme un
chroot local include dans #{config/includes.chroot/lib/live/config/}#, soit
comme un paquet personnalisé tel que discuté dans {Installation des paquets
modifiés ou de tiers}#installing-modified-or-third-party-packages.

3~ Binary local hooks

Pour exécuter des commandes à l'étape binaire, créez un script hook avec le
suffixe #{.binary}# contenant les commandes dans le répertoire
#{config/hooks/}#. Le hook sera exécuté après toutes les autres commandes
binaires, mais avant binary_checksums, la dernière commande binaire.  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! Consultez les
exemples de scripts de binary hook pour diverses tâches courantes de
personnalisation binaires fournis dans
#{/usr/share/doc/live-build/examples/hooks}# que vous pouvez copier ou lier
symboliquement pour les utiliser dans votre propre configuration.

2~ Préconfigurer questions de debconf

Les fichiers dans le répertoire #{config/preseed/}# avec le suffixe #{.cfg}#
suivis de l'étape (#{.chroot}# or #{.binary}#) 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, veuillez consulter #{debconf(7)}# dans
le paquet /{debconf}/.
