:B~ Gestion d'une configuration

1~managing-a-configuration Gestion d'une configuration

Ce chapitre explique comment gérer une configuration d'un système live à
partir d'une création initiale, à travers des révisions successives et des
versions successives du logiciel live-build et de l'image live elle-même.

2~ Gérer les modifications de la configuration

Les configurations live sont rarement parfaites du premier coup. Il peut
être bon de passer des options #{lb config}# à partir de la ligne de
commande pour effectuer une construction unique, mais il est plus courant de
réviser ces options et de construire à nouveau jusqu'à ce que vous soyez
satisfait. Afin de prendre en charge ces changements, vous aurez besoin des
scripts automatiques qui assurent le maintien de votre configuration dans un
état cohérent.

3~ Pourquoi utiliser des scripts auto? Que font-ils?

La commande #{lb config}# enregistre les options que vous lui passez avec
les fichiers dans #{config/*}# avec beaucoup d'autres options aux valeurs
par défaut. Si vous exécutez #{lb config}# à nouveau, il ne réinitialisera
pas l'option qui a été mise par défaut en fonction de vos options
initiales. Ainsi, par exemple, si vous exécutez #{lb config}# à nouveau avec
une nouvelle valeur pour #{--binary-images}#, toutes les options qui ont été
mises à leur valeur par défaut pour l'ancien type d'image ne peuvent plus
fonctionner avec la nouvelle option. Ces fichiers ne sont pas destinés à
être lus ou modifiés. Ils enregistrent des valeurs pour plus d'une centaine
d'options, donc personne (y-compris vous) ne pourra voir dans ces options
lesquelles vous avez réellement indiquées. Finalement, si vous lancez #{lb
config}#, puis mettez live-build à niveau et que celui-ci renomme une
option, #{config/*}# contiendra toujours des variables nommées en fonction
de l'ancienne option et qui ne seront plus valides.

Pour toutes ces raisons, les scripts #{auto/*}# vous rendront la vie plus
facile. Ils sont de simples emballages pour les commandes #{lb config}#,
#{lb build}# et #{lb clean}# qui sont conçus pour vous aider à gérer votre
configuration. Le script #{auto/config}# enregistre votre commande #{lb
config}# avec toutes les options désirées, le script #{auto/clean}# supprime
les fichiers contenant les valeurs des variables de configuration et le
script #{auto/build}# crée un #{build.log}# de chaque construction. Et
chaque fois que vous lancez la commande #{lb}# correspondante, ces fichiers
sont exécutés automatiquement. En utilisant ces scripts, votre configuration
est plus facile à lire et a une cohérence interne d'une révision à
l'autre. En outre, il sera plus facile pour vous d'identifier et corriger
les options qui doivent changer lorsque vous mettez à niveau live-build
après avoir lu la documentation mise à jour.

3~ Utiliser les scripts auto d'exemple

Pour votre commodité, live-build est fourni avec des scripts shell
d'exemple, pour les copier et les modifier. Lancez une nouvelle
configuration par défaut, puis copiez les exemples:

code{

 $ mkdir mylive && cd mylive && lb config
 $ mkdir auto
 $ cp /usr/share/doc/live-build/examples/auto/* auto/

}code

Modifiez #{auto/config}# en ajoutant des options comme bon vous semble. Par
exemple:

code{

 #!/bin/sh
 lb config noauto \
     --architectures i386 \
     --linux-flavours 686-pae \
     --binary-images hdd \
     --mirror-bootstrap http://ftp.ch.debian.org/debian/ \
     --mirror-binary http://ftp.ch.debian.org/debian/ \
     "${@}"

}code

Maintenant, chaque fois que vous utilisez #{lb config}#, #{auto/config}#
réinitialisera la configuration basée sur ces options. Lorsque vous
souhaitez effectuer des modifications, modifiez les options dans ce fichier
au lieu de les passer à #{lb config}#. Lorsque vous utilisez #{lb clean}#,
#{auto/clean}# va nettoyer les fichiers ainsi que tous les autres produits
de construction. Et enfin, lorsque vous utilisez #{lb build}#, un journal de
la construction est écrit par #{auto/build}# dans #{build.log}#.

*{Remarque:}* Un paramètre spécial #{noauto}# est utilisé ici pour éliminer un autre appel à #{auto/config}#, évitant ainsi une récursion infinie. Assurez-vous que vous ne l'avez pas accidentellement supprimé en modifiant le fichier. Aussi, prenez soin de vous assurer quand vous divisez la commande #{lb config}# sur plusieurs lignes pour une meilleure lisibilité, comme le montre l'exemple ci-dessus, que vous n'oubliez pas la barre oblique inverse (\) de sorte que chaque ligne continue à la suivante.

2~clone-configuration-via-git Cloner une configuration publiée via Git

Utilisez l'option #{lb config --config}# pour cloner un dépôt Git qui
contient une configuration d'un système live. Si vous souhaitez baser votre
configuration sur une autre maintenue par le ${project}, allez voir le dépôt
sur http://debian-live.alioth.debian.org/gitweb avec le nom #{live-images}# sous le titre
#{Packages}#. Ce dépôt contient les configurations pour les {images
précompilées}#downloading-prebuilt-images

Par exemple, pour construire une image standard, utilisez le dépôt
#{live-images}# comme suit:

code{

 $ mkdir live-images && cd live-images
 $ lb config --config git://http://anonscm.debian.org/git/debian-live/live-images.git
 $ cd images/standard

}code

Modifiez #{auto/config}# et toutes les autres choses dont vous avez besoin
dans l'arbre #{config}# en fonction de vos besoins. Par exemple, les images
precompilées non officielles qui contiennent des paquets non-free sont
faites en ajoutant simplement #{--archive-areas "main contrib non-free"}#.

Vous pouvez éventuellement définir un raccourci dans votre configuration Git
en ajoutant la ligne suivante à votre #{${HOME}/.gitconfig}#:

code{

 [url "git://http://anonscm.debian.org/git/debian-live/"]
         insteadOf = lso:

}code

Cela vous permet d'utiliser #{lso:}# quand vous voulez indiquer l'adresse
d'un dépôt #{debian-live.alioth.debian.org}#. Si vous supprimez le suffixe optionnel
#{.git}#, commencer une nouvelle image en utilisant cette configuration est
aussi simple que:

code{

 $ lb config --config lso:live-images

}code

Le clonage de la totalité du dépôt #{live-images}# copie les configurations
utilisées pour plusieurs images. Si vous voulez construire une image
différente lorsque vous avez terminé avec la première, changez de répertoire
et, éventuellement, faites les modifications dont vous avez besoin.

Dans tous les cas, n'oubliez pas qu'il faut à chaque fois construire l'image
en tant que superutilisateur: #{lb build}#
