aboutsummaryrefslogtreecommitdiffhomepage
path: root/markup/pod/live-manual/media/text/fr/examples.ssi
blob: a959f5061118df70691945bb52141472e68eba7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
:B~ Exemples

1~examples  Exemples

Ce chapitre présente des exemples de constructions pour des cas
d'utilisation spécifiques avec des systèmes live. Si vous débutez dans la
construction de vos propres images des systèmes live, nous vous recommandons
de regarder d'abord les trois tutoriels à la suite car chacun d'entre eux
enseigne de nouvelles techniques qui vous aideront à utiliser et à
comprendre les exemples restants.

2~using-the-examples Utiliser les exemples

Pour utiliser ces exemples, vous avez besoin d'un système pour les
construire qui doit répondre aux exigences énumérées dans
{Exigences}#requirements et sur lequel live-build est installé comme décrit
dans {Installation de live-build}#installing-live-build.

Notez que, pour des raisons de concision, dans ces exemples, nous
n'indiquons pas de miroir local à utiliser pour la construction. Vous pouvez
accélérer considérablement les téléchargements si vous utilisez un miroir
local. Vous pouvez indiquer ces options lorsque vous utilisez #{lb config}#,
tel que décrit dans {Miroirs de distribution utilisés pendant la
construction}#distribution-mirrors-build-time, ou pour plus de commodité,
fixez par défaut votre système de construction dans
#{/etc/live/build.conf}#. Il suffit de créer ce fichier et de définir les
variables #{LB_MIRROR_*}# correspondantes à votre miroir préféré. Tous les
autres miroirs utilisés dans la construction seront choisis par défaut à
partir de ces valeurs. Par exemple:

code{

 LB_MIRROR_BOOTSTRAP="http://mirror/debian/"
 LB_MIRROR_CHROOT_SECURITY="http://mirror/debian-security/"
 LB_MIRROR_CHROOT_BACKPORTS="http://mirror/debian-updates/"

}code

2~tutorial-1 Tutoriel 1: Une image par défaut

*{Cas d'utilisation:}* Créer une image simple d'abord, en apprenant les bases de live-build.

Dans ce tutoriel, nous construirons une image ISO hybride par défaut
contenant uniquement des paquets de base (pas de Xorg) et quelques paquets
de prise en charge live, en guise de premier exercice dans l'utilisation de
live-build.

Vous ne pouvez pas faire plus simple que cela:

code{

 $ mkdir tutorial1 ; cd tutorial1 ; lb config

}code

Examinez le contenu du répertoire #{config/}# si vous le souhaitez. Vous
verrez stockés ici une arborescence de configuration, prête à être
personnalisée ou, dans ce cas, utilisée immédiatement pour construire une
image par défaut.

Maintenant, en tant que superutilisateur, construisez l'image en
enregistrant un journal avec #{tee}#.

code{

 # lb build 2>&1 | tee build.log

}code

En supposant que tout se passe bien, après un certain temps, le répertoire
courant contiendra #{live-image-i386.hybrid.iso}#. Cette image ISO hybride
peut être démarrée directement dans une machine virtuelle comme décrit dans
{Test d'une image ISO avec QEMU}#testing-iso-with-qemu et {Test d'une image
ISO avec VirtualBox}#testing-iso-with-virtualbox, ou bien copiée sur un
support optique ou un périphérique USB comme décrit dans {Graver une image
ISO sur un support physique}#burning-iso-image et {Copie d'un image ISO
hybride sur une clé USB}#copying-iso-hybrid-to-usb, respectivement.

2~tutorial-2 Tutoriel 2: Un utilitaire d'un navigateur Web

*{Cas d'utilisation:}* Créer l'image d'un utilitaire de navigation Web, en apprenant à appliquer des personnalisations.

Dans ce tutoriel, nous allons créer une image utilisable comme un utilitaire
de navigation web, ce qui servira d'introduction à la personnalisation
d'images live.

code{

 $ mkdir tutorial2
 $ cd tutorial2
 $ lb config
 $ echo "task-lxde-desktop iceweasel" >> config/package-lists/my.list.chroot

}code

Notre choix de LXDE pour cet exemple reflète notre volonté de fournir un
environnement de bureau minimal, puisque le but de l'image est l'utilisation
unique que nous avons à l'esprit, le navigateur web. On pourrait aller
encore plus loin et offrir une configuration par défaut pour le navigateur
web dans #{config/includes.chroot/etc/iceweasel/profile/}#, ou des paquets
de prise en charge supplémentaires pour visualiser différents types de
contenu web, mais nous laissons cela en exercice pour le lecteur.

Construisez l'image, encore une fois en tant que superutilisateur, et gardez
un journal comme dans {Tutoriel 1}#tutorial-1:

code{

 # lb build 2>&1 | tee build.log

}code

Encore une fois, vérifiez que l'image est OK et faites un test, comme dans
{Tutoriel 1}#tutorial-1:

2~tutorial-3 Tutoriel 3: Une image personnalisée

*{Cas d'utilisation:}* Créer un projet pour construire une image personnalisée, contenant vos logiciels préférés à emporter avec vous sur une clé USB où que vous alliez, et évoluant dans des révisions successives selon les changements de vos besoins et de vos préférences.

Puisque nous allons changer notre image personnalisée pendant un certain
nombre de révisions, et que nous voulons suivre ces changements, essayer des
choses expérimentalement et éventuellement les annuler si les choses ne
fonctionnent pas, nous garderons notre configuration dans le populaire
système de contrôle de version #{git}#. Nous allons également utiliser les
meilleures pratiques d'autoconfiguration via #{auto}# scripts tel que décrit
dans {Gestion d'une configuration}#managing-a-configuration.

3~ Première révision

code{

 $ mkdir -p tutorial3/auto
 $ cp /usr/share/doc/live-build/examples/auto/* tutorial3/auto/
 $ cd tutorial3

}code

Éditez #{auto/config}# comme suit: 

code{

 #!/bin/sh

 lb config noauto \
     --architectures i386 \
     --linux-flavours 686-pae \
     "${@}"

}code

Exécutez #{lb config}# pour générer l'arbre de configuration, en utilisant
le script #{auto/config}# qu'on a créé:

code{

 $ lb config

}code

Remplissez maintenant votre liste de paquets locaux:

code{

 $ echo "task-lxde-desktop iceweasel xchat" >> config/package-lists/my.list.chroot

}code

Tout d'abord, #{--architectures i386}# assure que sur notre système de
construction #{amd64}#, nous construisons une version de 32 bits qui peut
être utilisée sur la plupart des machines. Deuxièmement, nous utilisons
#{--linux-flavours 686-pae}# parce que nous ne prévoyons pas d'utiliser
cette image sur des systèmes très anciens. Troisièmement, nous avons choisi
le métapaque de la tâche /{lxde}/ pour nous donner un bureau minimal. Et
enfin, nous avons ajouté deux premiers paquets préférés: /{iceweasel}/ et
/{xchat}/.

Maintenant, construisez l'image:

code{

 # lb build

}code

Notez que contrairement aux deux premiers tutoriels, nous n'avons plus
besoin de taper #{2>&1 | tee build.log}# parce que cela est maintenant
inclus dans #{auto/build}#.

Une fois que vous avez testé l'image (comme dans {Tutoriel 1}#tutorial-1) et
vous êtes satisfait de son fonctionnement, il est temps d'initialiser notre
dépôt #{git}#, en n'ajoutant que les scripts auto que nous avons juste
créés, puis de faire le premier commit: 

code{

 $ git init
 $ cp /usr/share/doc/live-build/examples/gitignore .gitignore
 $ git add .
 $ git commit -m "Initial import."

}code

3~ Deuxième révision

Dans cette révision, nous allons nettoyer à partir de la première
construction, ajouter le paquet /{vlc}/ à notre configuration, reconstruire,
tester et faire le commit.

La commande #{lb clean}# va nettoyer tous les fichiers générés par la
construction précédente à l'exception du cache, ce qui évite d'avoir à
retélécharger les paquets. Cela garantit que la commande #{lb build}#
suivante exécutera à nouveau toutes les étapes pour régénérer les fichiers
de notre nouvelle configuration.

code{

 # lb clean

}code

Ajoutez maintenant le paquet /{vlc}/ à votre liste de paquets locaux dans
#{config/package-lists/my.list.chroot}#:

code{

 $ echo vlc >> config/package-lists/my.list.chroot

}code

Construisez à nouveau:

code{

# lb build

}code

Testez et, quand vous êtes satisfait, faites le commit de la prochaine
révision:

code{

 $ git commit -a -m "Ajout du lecteur de média vlc."

}code

Bien sûr, des changements plus compliqués de la configuration sont
possibles, comme l'ajout de fichiers dans les sous-répertoires de
#{config/}#. Quand vous livrez de nouvelles révisions, prenez soin de ne pas
modifier à la main ou d'envoyer dans le dépôt les fichiers de niveau
supérieur dans #{config}# contenant les variables #{LB_*}#, car ce sont
aussi des produits de lacreation et ils sont toujours nettoyés par #{lb
clean}# et recréés avec #{lb config}# via leurs scripts #{auto}# respectifs.

Nous sommes arrivés à la fin de notre série de tutoriels. Alors que de
nombreux types de personnalisations sont possibles, même en n'utilisant que
les fonctionnalités explorées dans ces exemples simples, une variété presque
infinie d'images différentes peut être crée. Les autres exemples de cette
section couvrent plusieurs autres cas d'utilisation tirés des expériences
recueillies chez les utilisateurs des systèmes live.

2~ Un client kioske VNC 

*{Cas d'utilisation:}* Créer une image avec live-build pour démarrer directement sur un serveur VNC.

Créez un répertoire de construction et créez une configuration à
l'intérieur, désactivez «recommends» pour faire un système minimal. Puis
créez deux listes initiales de paquets: la première générée par un script
fourni par live-build nommée #{Packages}# (voir {Générer listes de
paquets}#generated-package-lists), et la seconde incluant /{xorg}/,
/{gdm3}/, /{metacity}/ et /{xvnc4viewer}/.

code{

 $ mkdir vnc-kiosk-client
 $ cd vnc-kiosk-client
 $ lb config -a i386 -k 686-pae --apt-recommends false
 $ echo '! Packages Priority standard' > config/package-lists/standard.list.chroot
 $ echo "xorg gdm3 metacity xvnc4viewer" > config/package-lists/my.list.chroot

}code

Comme il est expliqué dans {Régler APT pour économiser de
l'espace}#tweaking-apt-to-save-space, il se peut que vous deviez ajouter
quelques paquets recommandés pour faire fonctionner votre image
correctement.

Une façon facile d'énumérer les paquets recommendés est d'utiliser
/{apt-cache}/. Par exemple:

code{

 $ apt-cache depends live-config live-boot

}code

Dans cet exemple, nous avons découvert que nous devions ré-inclure plusieurs
paquets recommandés par live-config et live-boot: #{user-setup}# pour
l'autologin et #{sudo}# un logiciel essentiel pour arrêter le système.  En
outre, il pourrait être utile d'ajouter #{live-tools}# pour copier l'image
dans la RAM et #{eject}# pour éjecter le support live. Alors:

code{

 $ echo "live-tools user-setup sudo eject" > config/package-lists/recommends.list.chroot

}code

Après cela, créez le répertoire #{/etc/skel}# dans
#{config/includes.chroot}# avec un fichier #{.xsession}# personnalisé pour
l'utilisateur par défaut qui va lancer /{metacity}/ et /{xvncviewer}/, en
reliant le port #{5901}# sur un serveur à #{192.168.1.2}#:

code{

 $ mkdir -p config/includes.chroot/etc/skel
 $ cat > config/includes.chroot/etc/skel/.xsession << EOF
 #!/bin/sh

 /usr/bin/metacity &
 /usr/bin/xvncviewer 192.168.1.2:1

 exit
 EOF

}code

Construire l'image:

code{

 # lb build

}code

Amusez-vous bien!

2~ Une image de base pour une clé USB de 128 Mo

*{Cas d'utilisation:}* Créer une image par défaut avec certains composants supprimés afin de l'adapter sur une clé USB de 128 Mo avec un peu d'espace laissé pour l'utiliser à votre convenance.

Pour l'optimisation d'une image adaptée à la dimension de certains supports,
vous avez besoin de comprendre le compromis que vous faites entre la taille
et la fonctionnalité. Dans cet exemple, nous ne réduisons la taille que pour
faire place aux éléments supplémentaires dans la limite de 128 Mo, mais en
évitant de détruire l'intégrité des paquets contenus, telle que la purge des
données de localisation via le paquet /{localepurge}/, ou d'autres
optimisations "intrusives". On notera en particulier que nous utilisons
#{--debootstrap-options}# pour créer un système minimal à partir de zéro.

code{

 $ lb config --apt-indices false --apt-recommends false --debootstrap-options "--variant=minbase" --firmware-chroot false --memtest none

}code

Pour faire que l'image fonctionne correctement, nous devons ajouter à
nouveau au moins deux paquets recommandés qui sont laissés de côté par
l'option #{--apt-recommends false}#. Voir {Régler APT pour économiser de
l'espace}#tweaking-apt-to-save-space

code{

 $ echo "user-setup sudo" > config/package-lists/recommends.list.chroot

}code

Maintenant, construisez l'image de la manière habituelle:

code{

 # lb build 2>&1 | tee build.log

}code

Sur le système de l'auteur au moment de l'écriture, la configuration
ci-dessus produisait une image de 110 Mo. Cela se compare favorablement avec
l'image de 192 Mo produite par la configuration par défaut dans {Tutoriel
1}#tutorial-1.

Laisser tomber les index d'APT avec #{--apt-indices false}# permet aussi
d'économiser une bonne quantité d'espace, le compromis étant que vous devez
faire #{apt-get update}# avant d'utiliser apt dans le système
live. Abandonner les paquets recommandés avec #{--apt-recommends false}#
économise de l'espace supplémentaire, au détriment de certains paquets dont
vous vous attendriez autrement qu'ils soient là. #{--debootstrap-options
"--variant=minbase"}# construit un système minimal dès le
début. L'utilisation de #{--firmware-chroot false}# n'inclut pas
automatiquement les paquets de micrologiciels. Finalement, #{--memtest
none}# prévient l'installation d'un testeur de mémoire.

*{Remarque:}* Un système minimal peut également être obtenu en utilisant des hooks comme par exemple le #{stripped.hook.chroot}# dans #{/usr/share/doc/live-build/examples/hooks}#, il peut gagner de petites quantités supplémentaires d'espace et produire une image de 91 Mo. Cependant, il le fait par l'élimination de la documentation et d'autres fichiers des paquets installés sur le système. Cela porte atteinte à l'intégrité de ces paquets et, comme averti par le commentaire d'en-tête, cela peut avoir des conséquences imprévues. C'est pourquoi l'utilisation de /{debootstrap}/ est la méthode recommandée pour atteindre cet objectif.

2~ Un bureau GNOME localisé avec un installateur 

*{Cas d'utilisation:}* Créer une image de bureau GNOME, localisée pour la Suisse et incluant un installateur.

Nous voulons faire une image iso-hybrid pour l'architecture i386 en
utilisant notre bureau préféré, dans ce cas, GNOME, contenant tous les
paquets qui seraient installés par l'installateur Debian standard pour
GNOME.

Notre premier problème est la découverte des noms des tâches
appropriées. Actuellement, live-build ne peut pas aider à faire cela. Alors
que nous pourrions être chanceux et trouver ces noms par essais et erreurs,
il existe un outil, #{grep-dctrl}#, qui peut être utilisé pour découvrir les
descriptions des tâches dans tasksel-data. Pour la préparation, assurez-vous
d'avoir ces deux outils:

code{

 # apt-get install dctrl-tools tasksel-data

}code

Maintenant, nous pouvons rechercher les tâches appropriées, d'abord avec:

code{

 $ grep-dctrl -FTest-lang de /usr/share/tasksel/descs/debian-tasks.desc -sTask
 Task: german

}code

Par cette commande, nous découvrons que la tâche est appelée, assez
clairement, german. Maintenant, pour trouver les tâches liées:

code{

 $ grep-dctrl -FEnhances german /usr/share/tasksel/descs/debian-tasks.desc -sTask
 Task: german-desktop
 Task: german-kde-desktop

}code

Pendant le démarrage, nous allons générer la locale *{de_CH.UTF-8}* et
sélectionner la disposition de clavier *{ch}*. Maintenant, nous allons
mettre les morceaux ensemble. En nous rappelant grâce à {Utilisation des
métapaquets}#using-metapackages que les métapaquets sont préfixés #{task-}#,
nous précisons ces paramètres de la langue pendant l'amorçage, puis nous
ajoutons les paquets de priorité standard et tous nos métapaquets découverts
à notre liste de paquets comme suit:

code{

 $ mkdir live-gnome-ch
 $ cd live-gnome-ch
 $ lb config \
     -a i386 \
     --bootappend-live "boot=live components locales=de_CH.UTF-8 keyboard-layouts=ch" \
     --debian-installer live
 $ echo '! Packages Priority standard' > config/package-lists/standard.list.chroot
 $ echo task-gnome-desktop task-german task-german-desktop >> config/package-lists/desktop.list.chroot
 $ echo debian-installer-launcher >> config/package-lists/installer.list.chroot

}code

Notez que nous avons inclus le paquet /{debian-installer-launcher}/ pour
lancer l'installateur à partir du bureau live. Le noyau #{586}#, qui est
actuellement nécessaire pour faire que le lanceur fonctionne correctement,
est inclus par défaut.