cookutils view doc/cookutils.fr.html @ rev 880
cook: cook_copy_folders() and cook_copy_files(): allow spaces in the path, preserve existing hardlinks
Package mesa-dri-ati-12.0.6: before 10.0MB, after 4.3MB (3 hardlinked files + other 2 hardlinked files)
Package mesa-dri-ati-12.0.6: before 10.0MB, after 4.3MB (3 hardlinked files + other 2 hardlinked files)
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Sat Feb 18 15:02:59 2017 +0200 (2017-02-18) |
parents | |
children | dc3ff2ae7314 |
line source
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
3 <head>
4 <meta charset="utf-8" />
5 <title>Documentation de Cookutils</title>
6 <link rel="stylesheet" type="text/css" href="../slitaz-doc.css" />
7 <script type="text/javascript" src="../slitaz-doc.js"></script>
8 </head>
9 <body>
11 <header>
12 <h1>Documentation de Cookutils</h1>
13 </header>
15 <!-- Start content -->
16 <div id="content">
18 <h2>SliTaz Cook & Cooker</h2>
20 <p>
21 Les Cookutils SliTaz fournissent les outils et utilitaires pour
22 faciliter la construction de paquets SliTaz. Ils sont faciles à
23 utiliser et à apprendre, rapides et légers. Vous pourrez créer
24 des paquets SliTaz avec quelques commandes. Les Cookutils fournissent
25 l'utilitaire 'cook' et le <a href="#cooker">Cooker</a>.
26 </p>
27 <p>
28 Cook vous permet de créer et de compiler un paquet, fournit un
29 fichier journal et vérifie la qualité du paquet et de la recette.
30 Le Cooker est un robot de fabrication avec plus d'automatismes et
31 peut être utilisé comme outil de fabrication car il fournit
32 une interface CGI/Web qui vous parmet de voir des journaux de
33 cuisson agréables et coloriés. Cook et le Cooker se servent des
34 mêmes wok et base de fichiers, il partagent les paquets
35 <a href="#blocked">bloqués</a> et cassés tout comme leur activité.
36 </p>
37 <p>
38 Pour toute information technique, par exemple le style de codage, etc,
39 veuillez vous référer au README qui se trouve dans les fichiers
40 source ou dans /usr/share/doc/cookutils.
41 </p>
43 <h3>Usage de Cook</h3>
44 <p>
45 Cook donne une aide intégrée succinte que vous pouvez afficher
46 avec la commande 'usage'. Il a aussi quelques options pour faire
47 des tâches spécifiques avant ou après la cuisson. Pour avoir
48 l'aide et l'usage :
49 </p>
50 <pre>
51 # cook usage
52 </pre>
54 <h3>Comment faire</h3>
55 <p>
56 La première chose à faire avant de cuire des paquets est de
57 configurer votre environnement. Les 2 façons recommendées de
58 travailler : cuire directement sur l'hôte ou cuire dans un chroot
59 pour protéger votre hôte. Dans le cas où vous voulez travailler
60 dans un chroot vous pouvez installer et utiliser Tazdev pour en
61 créer un et vous placer à l'intérieur :
62 </p>
63 <pre>
64 # tazdev gen-chroot && tazdev chroot
65 </pre>
66 <p>
67 Par défaut Tazdev crée un chroot dans /home/slitaz/cooking/chroot
68 mais vous pouvez spécifier un chemin quelconque en argument. L'endroit
69 du chroot n'est pas important, lorsque vous serez dans le chroot vous
70 utiliserez des chemins standards de SliTaz comme /home/slitaz/wok pour
71 de répertoire du wok ou /home/slitaz/log pour tous les journaux de
72 cuisson. Comme toujours vous pouvez afficher l'aide de tazdev avec :
73 tazdev usage.
74 </p>
75 <p>
76 Lorsque vous utilisez un chroot il y a 2 répertoires spéciaux montés
77 avec l'option bind : src et packages. Les sources pour tous les paquets
78 sont stockés par défaut dans /home/slitaz/src, ce répertoire est
79 monté dans le chroot pour que les outils puissient l'utiliser.
80 Cette méthode vous permet de partager les sources avec plusieurs
81 chroots par exemple un pour cooking et un pour stable. Le répertoire
82 par défaut est : /home/slitaz/[version]/packages ainsi ils ne sont pas
83 dans le chroot et ne sont pas affectés si le chroot est effacé par
84 erreur.
85 </p>
87 <h3>Pour commencer</h3>
88 <p>
89 Donc vous avez décidé de la façon dont vous voulez travailler, alors préparons
90 l'environnement de cuisson. Cook se sert du fichier de configuration cook.conf,
91 si vous voulez utiliser des chemins inhabituels pour les répertoires et fichiers
92 SliTaz, vous devez le modifier. Le paramétrage va créer quelques répertoires
93 et fichiers pour garder une trace de la l'activité et des erreurs, tous les
94 fichiers sont des fichiers textes simples que vous pouvez ouvrir dans un
95 éditeur de texte. Pour préparer votre environnement :
96 </p>
97 <pre>
98 # cook setup
99 </pre>
100 <p>
101 La commande de paramétrage à une option --wok qui vous permet de cloner un
102 wok SliTaz pendant la creation de l'environnement de cuisson. Même si vous
103 n'êtes pas un développeur officiel vous pouver le cloner et utiliser les
104 paquets existants comme exemple pour créer le vôtre.
105 Pour paramétrer et cloner le wok cooking ou le wok undisgest par défaut ;
106 </p>
107 <pre>
108 # cook setup --wok
109 # cook setup --undigest
110 </pre>
112 <h3>Testez votre environnement</h3>
113 <p>
114 Cook fournit une commande de test qui crée un paquet et le cuit. Cela vous
115 permet de voir si votre environnement fonctionne et donne un paquet exemple
116 avec une recette. Le paquet s'appelle 'cooktest' et peut être retiré après
117 avoir été testé. Pour cuire le paquet de test :
118 </p>
119 <pre>
120 # cook test
121 </pre>
123 <h3>Créer et cuire</h3>
124 <p>
125 Si votre environnement est correctement paramétré vous pouvez commencer
126 à créer et compiler des paquets SliTaz depuis votre wok. Pour créer un
127 nouveau pqauet avec une recette vide (vous pouvez aussi créer une recette
128 interactivement) :
129 </p>
130 <pre>
131 # cook new pkgname
132 # cook new pkgname --interactive
133 </pre>
134 <p>
135 Si vous venez de créer un nouveau paquet, vous devrez éditer le recette avec
136 votre éditeur de texte favori. Alors la recette est prête ou si vous avez
137 déjà un paquet existant, vous pouvez le cuire :
138 </p>
139 <pre>
140 # cook pkgname
141 </pre>
142 <p>
143 Si tout c'est bien passé vous trouverez votre paquet dans le répertoire
144 $SLITAZ/packages et tous les fichiers produits dans $SLITAZ/wok/pkgname.
145 </p>
147 <h3>Cuire et installer</h3>
148 <p>
149 Si vous voulez cuire et installer le paquet en une commande :
150 </p>
151 <pre>
152 # cook pkgname --install
153 </pre>
155 <h3>Obtenir les sources</h3>
156 <p>
157 Si vous voulez ou avez besion de seulement télécharger les sources d'un
158 paquet sans le fabriquer, vous pouvez utiliser l'option --getsrc comme suit :
159 </p>
160 <pre>
161 # cook pkgname --getsrc
162 </pre>
164 <h3>Nettoyer les paquets</h3>
165 <p>
166 Après compilation et empaquetage il y a plusieurs fichiers dans le wok qui
167 prennent de la place disque. Pour nettoyer un pqauet unique :
168 </p>
169 <pre>
170 # cook pkgname --clean
171 </pre>
172 <p>
173 Vous pouvez aussi nettoyer le wok en entier ou vous pouvez choisir de garder
174 les fichiers SliTaz et seulement retirer les sources :
175 </p>
176 <pre>
177 # cook clean-wok
178 # cook clean-src
179 </pre>
181 <h3>Recherche</h3>
182 <p>
183 Cook fournit une fonction de recherche simple pour trouver rapidement un
184 paquet dans le wok. Elle utilise grep et supporte des expressions régulières :
185 </p>
186 <pre>
187 # cook search busybox
188 </pre>
190 <h3>Functions de la recette</h3>
191 <p>
192 Beaucoup de paquets fournissent le même genre de fichiers comme les
193 paquets *-dev avec les librairies statiques, les fichiers pkgconfig et
194 les entêtes pour includes. Alors cook fournit une fonction à utiliser
195 dans la recette :
196 </p>
197 <pre>
198 get_dev_files : Install /usr/lib/{lib.*a,pkgconfig} /usr/include
199 </pre>
201 <h3>Liste de paquets</h3>
202 <p>
203 Cook peut lister les paquets dans le wok et ainsi créer une liste de paquets
204 adaptée pour Tazpkg. Cela vous permet de créer votre dépôt de paquets assez
205 facilement et c'est utiilisé pour créer la liste offcielle des paquets Slitaz
206 sur les miroirs. Pour lister le wok actuellement utilisé par cook (il n'est
207 pas nécessaire d'être root) :
208 </p>
209 <pre>
210 $ cook list-wok
211 </pre>
212 <p>
213 En créant la base (ou liste) de paquets, cook va vérifier si vous avez un
214 dépôt de saveurs dans /home/slitaz/flavors ; si c'est la cas il va emballer
215 toutes les saveurs en utilisant la dernière liste de paquets disponible.
216 Pour créer une liste de paquets et les fichers de saveurs :
217 </p>
218 <pre>
219 # cook pkgdb
220 </pre>
222 <h3 id="cooker">Le Cooker</h3>
223 <p>
224 Le Cooker est un robot de compilation, sa première fonction est de rechercher
225 les commits dans le wok, créer une liste ordonnée et cuire tous les paquets
226 modifiés. Il peut aussi être utilisé comme interface pour cook car ils
227 utilisent les mêmes fichiers. Le Cooker peut aussi être utilisé pour cuire
228 une longue liste de paquets en une fois comme tous les paquets d'une saveur.
229 Le cooker fournit une interface CGI/Web agréable qui fonctionne par défaut
230 sur n'importe quel système SliTaz car il fournit le support CGI via le serveur
231 httpd de busybox.
232 </p>
233 <p>
234 Le Cooker fournit une aide intégrée succinte et quelques commandes.
235 Par exemple pour afficher l'usage vous pouvez faire :
236 </p>
237 <pre>
238 # cooker usage
239 # cooker -u
240 </pre>
242 <h3>Paramétrage du Cooker</h3>
243 <p>
244 Tout comme cook, le Cooker a besoin d'un environnement fonctionnel avant de
245 commencer à l'utiliser. Le principale différence avec l'environnement de
246 cook est que le Cooker a besoin de 2 woks. Un wok Hg propre comme référence
247 et un wok de fabrication. De cette façon il est facile de comparer les 2 woks
248 et d'obtenir les modifications. SI vous avez déjà un environnement pour cook,
249 vous devez déplacer votre wok avant de paramétrer le Cooker ou il s'en
250 plaindra. Le paramétrage installera aussi un ensemble de paquets de
251 développement qui peuvent être définis dans le fichiers de configuration
252 cook.conf avec la variable SETUP_PKGS. Pour paramétrer votre environnement
253 cooker :
254 </p>
255 <pre>
256 # cooker setup
257 </pre>
258 <p>
259 Si tout ce passe correctement vous avez maintenant 2 woks, les paquets de
260 developpement de base installés et tous les fichiers nécessaires créés.
261 Le comportement par défaut est de rechercher les commits, vous pouvez lancer
262 un test :
263 </p>
264 <pre>
265 # cooker
266 </pre>
268 <h3>Cuire avec le Cooker</h3>
269 <p>
270 Encore 2 façons de travailler maintenant : faire des modifications dans
271 le nouveau wok Hg et lancer le cooker sans arguments ou cuire les paquets
272 manuellement. Le cooker vous permet de cuire un paquet unique ou tous les
273 paquets d'un catégorie ou d'une saveur. Vous pouvez aussi essayer de
274 fabriquer tous les paquets non construits, mais sachez que le Cooker n'a
275 pas été fait pour gérer des milliers de paquets.
276 </p>
277 <p>
278 Pour cuire un paquet unique comme 'cook pkgname' mais avec un journal en plus :
279 </p>
280 <pre>
281 # cooker pkg pkgname
282 </pre>
283 <p>
284 Pour cuire plus d'un paquet vous avez différentes possibilités.
285 Vous pouvez utiliser un paquet existant comme ceux des saveurs live,
286 vous pouvez aussi utiliser une liste personnelle avec des noms de paquet
287 à chaque ligne. Enfin vous pouvez construire tous les paquets d'un catégorie.
288 </p>
289 <pre>
290 # cooker flavor [name]
291 # cooker list [/path/to/cooklist]
292 # cooker cat [category]
293 </pre>
294 <p>
295 Le cooker vous permet de recuire une révision spécifique de Hg. C'est
296 utile en production ainsi si le robot de fabrication est interrompu
297 pendant des commits en cooking, vous pouvez cuire les paquets à la main :
298 </p>
299 <pre>
300 # cooker rev 9496
301 </pre>
303 <h3 id="blocked">Le paquets bloqués</h3>
304 <p>
305 Cook et le Cooker gèrent un fichier contenant la liste des paquets bloqués
306 afin de ne pas les cuire lors de commits ou si une liste de cuission est utilisée.
307 C"est très utile pour un Robot de fabrication en production. Lorsque vous
308 bloquez ou débloquez un paquet vous pouvez ajouter une note dans les cooknotes.
309 Exemple de blocage de paquet :
310 </p>
311 <pre>
312 # cook pkgname --block
313 # cooker block pkgname
314 # cooker -n "Blocked pkgname note"
315 </pre>
316 <p>
317 La liste des paquets bloqués est affichée dans l'interface Web du Cooker.
318 Pour débloquer un paquet vous devez utiliser la commande unblock ou l'option
319 cook --unblock :
320 </p>
321 <pre>
322 # cook pkgname --unblock
323 # cooker unblock pkgname
324 </pre>
326 <h3>Cooker CGI/Web</h3>
327 <p>
328 Pour que vous puissiez voir les journaux de façon agréable, garder une
329 trace de l'activité et vous aider à trouver les erreurs, vous pouvez
330 utiliser l'interface Web du Cooker qui se trouve par défaut dans le dossier
331 /var/www/cooker. Si vous n'utilisez pas un chroot et que le démon httpd de
332 Busybox est lancé, l'interface Web fonctionnera sans configuration et sera
333 visible en <a href="http://localhost/cooker/cooker.cgi">
334 http://localhost/cooker/cooker.cgi</a>
335 </p>
336 <p>
337 Si vous utilisez un environnement de chroot, vous devriez aussi installer
338 cookutils sur votre hôte et modifier la variable de chemin SLITAZ.
339 Une façon standard est d'avoir un chroot dans :
340 </p>
341 <pre>
342 /home/slitaz/cooking/chroot
343 </pre>
344 <p>
345 Avec /etc/slitaz/cook.conf modifié comme suit :
346 </p>
347 <pre>
348 SLITAZ="/home/slitaz/cooking/chroot/home/slitaz"
349 </pre>
350 <p>
351 Note : il n'est pas obligatoire d'installer les cookutils sur votre hôte
352 pour utiliser l'interface Web. Si vous utilisez Lighttpd vous pouvez aussi
353 copier les fichiers cooker.cgi et style.css par exemple dans votre dossier
354 ~/Public et utiliser un cook.conf perso avec. L'avantage d'installer
355 cookutils sur l'hôte est d'avoir des mise à jour régulières par le
356 gestionnaire de paquets Tazpkg. Disons que vous avez cloné ou téléchargé
357 les cookutils :
358 </p>
359 <pre>
360 $ cp -a cookutils/web ~/Public/cgi-bin/cooker
361 $ cp -f cookutils/cook.conf ~/Public/cgi-bin/cooker
362 </pre>
363 <p>
364 Editez le fichier de configuration : ~/Public/cgi-bin/cooker/cook.conf pour
365 mettre votre chemin SLITAZ et c'est tout !
366 </p>
368 <h3>Cooknotes</h3>
369 <p>
370 Le fonction cooknotes vous permet d'écrire de courtes notes personnelles
371 au sujet de l'emballage et est utile pour travailler en groupe. Les
372 cooknotes ont été codées pour que les mainteneur du Robot de fabrication
373 de SliTaz partagent des informations avec les autres contributeurs.
374 Les cooker peut bloquer la fabrication d'un paquet et recuire des paquets
375 à la main, par exemple il est commode de faire une note si un paquet est
376 bloqué afin que le mainteneur sache pourquoi l'administrateur a fait cela.
377 Les cooknotes sont affichées dans l'interface Web et peuvent être vérifiées
378 depuis la ligne de commande :
379 </p>
380 <pre>
381 # cooker note "Blocked pkgname due to heavy CPU load"
382 # cooker notes
383 </pre>
385 <h3>Le Cooker comme robot de fabrication</h3>
386 <p>
387 Le Cooker est conçu pour être le robot de fabrication de SliTaz, c'est à
388 dire qu'il contrôle 2 woks, met à jour le wok Hg, obtient les différences
389 et cuit tous les paquets qui ont été commités. La façon la plus sûre
390 et la plus propre de lancer le Cooker comme robot de fabrication avec cron
391 est d'utiliser un environnement de chroot, mais il peut tourner directement
392 sur l'hôte si vous le voulez.
393 </p>
394 <p>
395 Pour lance de Cooker automatiquement vous devez utiliser crom depuis le chroot
396 et ajouter un ligne dans le crontab de root dans /var/spool/cron/crontabs.
397 Disons que vous souhaitez lancer le Cooker toutes les 2 heures :
398 </p>
399 <pre>
400 * */2 * * * /usr/bin/cooker
401 </pre>
403 <h3>Lancer le Robot Cooker au boot</h3>
404 <p>
405 L'environnement du Cooker et la tâche cron peut être automatiquement
406 lancée au démarrage. Vous devez avoir installé le paquet
407 cookutils-daemon sur l'hôte et utiliser une installation standard
408 SliTaz pour qu'il fonctionne correctement (la cooking se trouve
409 dans /home/slitaz/cooking). Ce script va monter les systèmes de
410 fichiers virtuels nécessaires pour les sources et les paquets.
411 Les fichiers sources se trouvent dans /home/slitaz/src et sont
412 reliés au chroot pour que vous puissiez les partager entre plusieurs
413 version (stable, cooking, undigest). Si ce paquet n'est pas encore
414 installé :
415 </p>
416 <pre>
417 # tazpkg get-install cookutils-daemon
418 </pre>
419 <p>
420 Pour lancer le daemon vous devez avoir une définition de ficher cron pour
421 root dans le chroot, le script daemon fonctionne comme tous les autres
422 daemons système et peut être controllé avec :
423 </p>
424 <pre>
425 # /etc/init.d/cooker [start|stop|restart]
426 </pre>
428 <!-- End content -->
429 </div>
431 <footer>
432 Copyright © <span class="year"></span> <a href="http://www.slitaz.org/">SliTaz GNU/Linux</a>
433 </footer>
435 </body>
436 </html>