cookutils rev 831

Add doc/cookutils.fr.html
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Sep 24 18:06:50 2016 +0200 (2016-09-24)
parents 82dc943aa390
children 54bbb76536a8
files doc/cookutils.fr.html
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/doc/cookutils.fr.html	Sat Sep 24 18:06:50 2016 +0200
     1.3 @@ -0,0 +1,436 @@
     1.4 +<!DOCTYPE html>
     1.5 +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
     1.6 +<head>
     1.7 +	<meta charset="utf-8" />
     1.8 +	<title>Documentation de Cookutils</title>
     1.9 +	<link rel="stylesheet" type="text/css" href="../slitaz-doc.css" />
    1.10 +	<script type="text/javascript" src="../slitaz-doc.js"></script>
    1.11 +</head>
    1.12 +<body>
    1.13 +
    1.14 +<header>
    1.15 +	<h1>Documentation de Cookutils</h1>
    1.16 +</header>
    1.17 +
    1.18 +<!-- Start content -->
    1.19 +<div id="content">
    1.20 +
    1.21 +<h2>SliTaz Cook &amp; Cooker</h2>
    1.22 +
    1.23 +<p>
    1.24 +	Les Cookutils SliTaz fournissent les outils et utilitaires pour 
    1.25 +	faciliter la construction de paquets SliTaz. Ils sont faciles à
    1.26 +	utiliser et à apprendre, rapides et légers. Vous pourrez créer
    1.27 +	des paquets SliTaz avec quelques commandes. Les Cookutils fournissent
    1.28 +	l'utilitaire 'cook' et le <a href="#cooker">Cooker</a>.
    1.29 +</p>
    1.30 +<p>
    1.31 +	Cook vous permet de créer et de compiler un paquet, fournit un
    1.32 +	fichier journal et vérifie la qualité du paquet et de la recette.
    1.33 +	Le Cooker est un robot de fabrication avec plus d'automatismes et
    1.34 +	peut être utilisé comme outil de fabrication car il fournit
    1.35 +	une interface CGI/Web qui vous parmet de voir des journaux de 
    1.36 +	cuisson agréables et coloriés. Cook et le Cooker se servent des
    1.37 +	mêmes wok et base de fichiers, il partagent les paquets
    1.38 +	<a href="#blocked">bloqués</a> et cassés tout comme leur activité.
    1.39 +</p>
    1.40 +<p>
    1.41 +	Pour toute information technique, par exemple le style de codage, etc,
    1.42 +	veuillez vous référer au README qui se trouve dans les fichiers
    1.43 +	source ou dans /usr/share/doc/cookutils.
    1.44 +</p>
    1.45 +
    1.46 +<h3>Usage de Cook</h3>
    1.47 +<p>
    1.48 +	Cook donne une aide intégrée succinte que vous pouvez afficher
    1.49 +	avec la commande 'usage'. Il a aussi quelques options pour faire
    1.50 +	des tâches spécifiques avant ou après la cuisson. Pour avoir
    1.51 +	l'aide et l'usage :
    1.52 +</p>
    1.53 +<pre>
    1.54 +# cook usage
    1.55 +</pre>
    1.56 +
    1.57 +<h3>Comment faire</h3>
    1.58 +<p>
    1.59 +	La première chose à faire avant de cuire des paquets est de
    1.60 +	configurer votre environnement. Les 2 façons recommendées de
    1.61 +	travailler : cuire directement sur l'hôte ou cuire dans un chroot
    1.62 +	pour protéger votre hôte. Dans le cas où vous voulez travailler
    1.63 +	dans un chroot vous pouvez installer et utiliser Tazdev pour en
    1.64 +	créer un et vous placer à l'intérieur :
    1.65 +</p>
    1.66 +<pre>
    1.67 +# tazdev gen-chroot &amp;&amp; tazdev chroot
    1.68 +</pre>
    1.69 +<p>
    1.70 +	Par défaut Tazdev crée un chroot dans /home/slitaz/cooking/chroot
    1.71 +	mais vous pouvez spécifier un chemin quelconque en argument. L'endroit
    1.72 +	du chroot n'est pas important, lorsque vous serez dans le chroot vous
    1.73 +	utiliserez des chemins standards de SliTaz comme /home/slitaz/wok pour
    1.74 +	de répertoire du wok ou /home/slitaz/log pour tous les journaux de
    1.75 +	cuisson. Comme toujours vous pouvez afficher l'aide de tazdev avec :
    1.76 +	tazdev usage.
    1.77 +</p>
    1.78 +<p>
    1.79 +	Lorsque vous utilisez un chroot il y a 2 répertoires spéciaux montés
    1.80 +	avec l'option bind : src et packages. Les sources pour tous les paquets
    1.81 +	sont stockés par défaut dans /home/slitaz/src, ce répertoire est
    1.82 +	monté dans le chroot pour que les outils puissient l'utiliser.
    1.83 +	Cette méthode vous permet de partager les sources avec plusieurs
    1.84 +	chroots par exemple un pour cooking et un pour stable. Le répertoire
    1.85 +	par défaut est : /home/slitaz/[version]/packages ainsi ils ne sont pas
    1.86 +	dans le chroot et ne sont pas affectés si le chroot est effacé par
    1.87 +	erreur.
    1.88 +</p>
    1.89 +
    1.90 +<h3>Pour commencer</h3>
    1.91 +<p>
    1.92 +	Donc vous avez décidé de la façon dont vous voulez travailler, alors préparons
    1.93 +	l'environnement de cuisson. Cook se sert du fichier de configuration cook.conf,
    1.94 +	si vous voulez utiliser des chemins inhabituels pour les répertoires et fichiers
    1.95 +	SliTaz, vous devez le modifier. Le paramétrage va créer quelques répertoires
    1.96 +	et fichiers pour garder une trace de la l'activité et des erreurs, tous les
    1.97 +	fichiers sont des fichiers textes simples que vous pouvez ouvrir dans un
    1.98 +	éditeur de texte. Pour préparer votre environnement :
    1.99 +</p>
   1.100 +<pre>
   1.101 +# cook setup
   1.102 +</pre>
   1.103 +<p>
   1.104 +	La commande de paramétrage à une option --wok qui vous permet de cloner un
   1.105 +	wok SliTaz pendant la creation de l'environnement de cuisson. Même si vous
   1.106 +	n'êtes pas un développeur officiel vous pouver le cloner et utiliser les
   1.107 +	paquets existants comme exemple pour créer le vôtre.
   1.108 +	Pour paramétrer et cloner le wok cooking ou le wok undisgest par défaut ;
   1.109 +</p>
   1.110 +<pre>
   1.111 +# cook setup --wok
   1.112 +# cook setup --undigest
   1.113 +</pre>
   1.114 +
   1.115 +<h3>Testez votre environnement</h3>
   1.116 +<p>
   1.117 +	Cook fournit une commande de test qui crée un paquet et le cuit. Cela vous
   1.118 +	permet de voir si votre environnement fonctionne et donne un paquet exemple 
   1.119 +	avec une recette. Le paquet s'appelle 'cooktest' et peut être retiré après
   1.120 +	avoir été testé. Pour cuire le paquet de test :
   1.121 +</p>
   1.122 +<pre>
   1.123 +# cook test
   1.124 +</pre>
   1.125 +
   1.126 +<h3>Créer et cuire</h3>
   1.127 +<p>
   1.128 +	Si votre environnement est correctement paramétré vous pouvez commencer
   1.129 +	à créer et compiler des paquets SliTaz depuis votre wok. Pour créer un
   1.130 +	nouveau pqauet avec une recette vide (vous pouvez aussi créer une recette
   1.131 +	interactivement) :
   1.132 +</p>
   1.133 +<pre>
   1.134 +# cook new pkgname
   1.135 +# cook new pkgname --interactive
   1.136 +</pre>
   1.137 +<p>
   1.138 +	Si vous venez de créer un nouveau paquet, vous devrez éditer le recette avec
   1.139 +	votre éditeur de texte favori. Alors la recette est prête ou si vous avez
   1.140 +	déjà un paquet existant, vous pouvez le cuire :
   1.141 +</p>
   1.142 +<pre>
   1.143 +# cook pkgname
   1.144 +</pre>
   1.145 +<p>
   1.146 +	Si tout c'est bien passé vous trouverez votre paquet dans le répertoire
   1.147 +	$SLITAZ/packages et tous les fichiers produits dans $SLITAZ/wok/pkgname.
   1.148 +</p>
   1.149 +
   1.150 +<h3>Cuire et installer</h3>
   1.151 +<p>
   1.152 +	Si vous voulez cuire et installer le paquet en une commande :
   1.153 +</p>
   1.154 +<pre>
   1.155 +# cook pkgname --install
   1.156 +</pre>
   1.157 +
   1.158 +<h3>Obtenir les sources</h3>
   1.159 +<p>
   1.160 +	Si vous voulez ou avez besion de seulement télécharger les sources d'un
   1.161 +	paquet sans le fabriquer, vous pouvez utiliser l'option --getsrc comme suit :
   1.162 +</p>
   1.163 +<pre>
   1.164 +# cook pkgname --getsrc
   1.165 +</pre>
   1.166 +
   1.167 +<h3>Nettoyer les paquets</h3>
   1.168 +<p>
   1.169 +	Après compilation et empaquetage il y a plusieurs fichiers dans le wok qui 
   1.170 +	prennent de la place disque. Pour nettoyer un pqauet unique :
   1.171 +</p>
   1.172 +<pre>
   1.173 +# cook pkgname --clean
   1.174 +</pre>
   1.175 +<p>
   1.176 +	Vous pouvez aussi nettoyer le wok en entier ou vous pouvez choisir de garder
   1.177 +	les fichiers SliTaz et seulement retirer les sources :
   1.178 +</p>
   1.179 +<pre>
   1.180 +# cook clean-wok
   1.181 +# cook clean-src
   1.182 +</pre>
   1.183 +
   1.184 +<h3>Recherche</h3>
   1.185 +<p>
   1.186 +	Cook fournit une fonction de recherche simple pour trouver rapidement un
   1.187 +	paquet dans le wok. Elle utilise grep et supporte des expressions régulières :
   1.188 +</p>
   1.189 +<pre>
   1.190 +# cook search busybox
   1.191 +</pre>
   1.192 +
   1.193 +<h3>Functions de la recette</h3>
   1.194 +<p>
   1.195 +	Beaucoup de paquets fournissent le même genre de fichiers comme les
   1.196 +	paquets *-dev avec les librairies statiques, les fichiers pkgconfig et
   1.197 +	les entêtes pour includes. Alors cook fournit une fonction à utiliser
   1.198 +	dans la recette :
   1.199 +</p>
   1.200 +<pre>
   1.201 +get_dev_files     : Install /usr/lib/{lib.*a,pkgconfig} /usr/include
   1.202 +</pre>
   1.203 +
   1.204 +<h3>Liste de paquets</h3>
   1.205 +<p>
   1.206 +	Cook peut lister les paquets dans le wok et ainsi créer une liste de paquets
   1.207 +	adaptée pour Tazpkg. Cela vous permet de créer votre dépôt de paquets assez
   1.208 +	facilement et c'est utiilisé pour créer la liste offcielle des paquets Slitaz
   1.209 +	sur les miroirs. Pour lister le wok actuellement utilisé par cook (il n'est
   1.210 +	pas nécessaire d'être root) :
   1.211 +</p>
   1.212 +<pre>
   1.213 +$ cook list-wok
   1.214 +</pre>
   1.215 +<p>
   1.216 +	En créant la base (ou liste) de paquets, cook va vérifier si vous avez un
   1.217 +	dépôt de saveurs dans /home/slitaz/flavors ; si c'est la cas il va emballer
   1.218 +	toutes les saveurs en utilisant la dernière liste de paquets disponible.
   1.219 +	Pour créer une liste de paquets et les fichers de saveurs :
   1.220 +</p>
   1.221 +<pre>
   1.222 +# cook pkgdb
   1.223 +</pre>
   1.224 +
   1.225 +<h3 id="cooker">Le Cooker</h3>
   1.226 +<p>
   1.227 +	Le Cooker est un robot de compilation, sa première fonction est de rechercher
   1.228 +	les commits dans le wok, créer une liste ordonnée et cuire tous les paquets
   1.229 +	modifiés. Il peut aussi être utilisé comme interface pour cook car ils
   1.230 +	utilisent les mêmes fichiers. Le Cooker peut aussi être utilisé pour cuire
   1.231 +	une longue liste de paquets en une fois comme tous les paquets d'une saveur.
   1.232 +	Le cooker fournit une interface CGI/Web agréable qui fonctionne par défaut
   1.233 +	sur n'importe quel système SliTaz car il fournit le support CGI via le serveur
   1.234 +	httpd de busybox.
   1.235 +</p>
   1.236 +<p>
   1.237 +	Le Cooker fournit une aide intégrée succinte et quelques commandes.
   1.238 +	Par exemple pour afficher l'usage vous pouvez faire :
   1.239 +</p>
   1.240 +<pre>
   1.241 +# cooker usage
   1.242 +# cooker -u
   1.243 +</pre>
   1.244 +
   1.245 +<h3>Paramétrage du Cooker</h3>
   1.246 +<p>
   1.247 +	Tout comme cook, le Cooker a besoin d'un environnement fonctionnel avant de
   1.248 +	commencer à l'utiliser. Le principale différence avec l'environnement de 
   1.249 +	cook est que le Cooker a besoin de 2 woks. Un wok Hg propre comme référence
   1.250 +	et un wok de fabrication. De cette façon il est facile de comparer les 2 woks
   1.251 +	et d'obtenir les modifications. SI vous avez déjà un environnement pour cook,
   1.252 +	vous devez déplacer votre wok avant de paramétrer le Cooker ou il s'en
   1.253 +	plaindra. Le paramétrage installera aussi un ensemble de paquets de 
   1.254 +	développement qui peuvent être définis dans le fichiers de configuration
   1.255 +	cook.conf avec la variable SETUP_PKGS. Pour paramétrer votre environnement
   1.256 +	cooker :
   1.257 +</p>
   1.258 +<pre>
   1.259 +# cooker setup
   1.260 +</pre>
   1.261 +<p>
   1.262 +	Si tout ce passe correctement vous avez maintenant 2 woks, les paquets de
   1.263 +	developpement de base installés et tous les fichiers nécessaires créés.
   1.264 +	Le comportement par défaut est de rechercher les commits, vous pouvez lancer
   1.265 +	un test :	
   1.266 +</p>
   1.267 +<pre>
   1.268 +# cooker
   1.269 +</pre>
   1.270 +
   1.271 +<h3>Cuire avec le Cooker</h3>
   1.272 +<p>
   1.273 +	Encore 2 façons de travailler maintenant : faire des modifications dans
   1.274 +	le nouveau wok Hg et lancer le cooker sans arguments ou cuire les paquets
   1.275 +	manuellement. Le cooker vous permet de cuire un paquet unique ou tous les
   1.276 +	paquets d'un catégorie ou d'une saveur. Vous pouvez aussi essayer de
   1.277 +	fabriquer tous les paquets non construits, mais sachez que le Cooker n'a
   1.278 +	pas été fait pour gérer des milliers de paquets. 
   1.279 +</p>
   1.280 +<p>
   1.281 +	Pour cuire un paquet unique comme 'cook pkgname' mais avec un journal en plus :
   1.282 +</p>
   1.283 +<pre>
   1.284 +# cooker pkg pkgname
   1.285 +</pre>
   1.286 +<p>
   1.287 +	Pour cuire plus d'un paquet vous avez différentes possibilités.
   1.288 +	Vous pouvez utiliser un paquet existant comme ceux des saveurs live,
   1.289 +	vous pouvez aussi utiliser une liste personnelle avec des noms de paquet
   1.290 +	à chaque ligne. Enfin vous pouvez construire tous les paquets d'un catégorie.
   1.291 +</p>
   1.292 +<pre>
   1.293 +# cooker flavor [name]
   1.294 +# cooker list [/path/to/cooklist]
   1.295 +# cooker cat [category]
   1.296 +</pre>
   1.297 +<p>
   1.298 +	Le cooker vous permet de recuire une révision spécifique de Hg. C'est
   1.299 +	utile en production ainsi si le robot de fabrication est interrompu
   1.300 +	pendant des commits en cooking, vous pouvez cuire les paquets à la main :
   1.301 +</p>
   1.302 +<pre>
   1.303 +# cooker rev 9496
   1.304 +</pre>
   1.305 +
   1.306 +<h3 id="blocked">Le paquets bloqués</h3>
   1.307 +<p>
   1.308 +	Cook et le Cooker gèrent un fichier contenant la liste des paquets bloqués
   1.309 +	afin de ne pas les cuire lors de commits ou si une liste de cuission est utilisée.
   1.310 +	C"est très utile pour un Robot de fabrication en production. Lorsque vous
   1.311 +	bloquez ou débloquez un paquet vous pouvez ajouter une note dans les cooknotes.
   1.312 +	Exemple de blocage de paquet :
   1.313 +</p>
   1.314 +<pre>
   1.315 +# cook pkgname --block
   1.316 +# cooker block pkgname
   1.317 +# cooker -n "Blocked pkgname note"
   1.318 +</pre>
   1.319 +<p>
   1.320 +	La liste des paquets bloqués est affichée dans l'interface Web du Cooker.
   1.321 +	Pour débloquer un paquet vous devez utiliser la commande unblock ou l'option
   1.322 +	cook --unblock :
   1.323 +</p>
   1.324 +<pre>
   1.325 +# cook pkgname --unblock
   1.326 +# cooker unblock pkgname
   1.327 +</pre>
   1.328 +
   1.329 +<h3>Cooker CGI/Web</h3>
   1.330 +<p>
   1.331 +	Pour que vous puissiez voir les journaux de façon agréable, garder une
   1.332 +	trace de l'activité et vous aider à trouver les erreurs, vous pouvez
   1.333 +	utiliser l'interface Web du Cooker qui se trouve par défaut dans le dossier
   1.334 +	/var/www/cooker. Si vous n'utilisez pas un chroot et que le démon httpd de
   1.335 +	Busybox est lancé, l'interface Web fonctionnera sans configuration et sera
   1.336 +	visible en <a href="http://localhost/cooker/cooker.cgi">
   1.337 +		http://localhost/cooker/cooker.cgi</a>
   1.338 +</p>
   1.339 +<p>
   1.340 +	Si vous utilisez un environnement de chroot, vous devriez aussi installer
   1.341 +	cookutils sur votre hôte et modifier la variable de chemin SLITAZ.
   1.342 +	Une façon standard est d'avoir un chroot dans :
   1.343 +</p>
   1.344 +<pre>
   1.345 +/home/slitaz/cooking/chroot
   1.346 +</pre>
   1.347 +<p>
   1.348 +	Avec /etc/slitaz/cook.conf modifié comme suit :
   1.349 +</p>
   1.350 +<pre>
   1.351 +SLITAZ="/home/slitaz/cooking/chroot/home/slitaz"
   1.352 +</pre>
   1.353 +<p>
   1.354 +	Note : il n'est pas obligatoire d'installer les cookutils sur votre hôte
   1.355 +	pour utiliser l'interface Web. Si vous utilisez Lighttpd vous pouvez aussi
   1.356 +	copier les fichiers cooker.cgi et style.css par exemple dans votre dossier
   1.357 +	~/Public et utiliser un cook.conf perso avec. L'avantage d'installer
   1.358 +	cookutils sur l'hôte est d'avoir des mise à jour régulières par le
   1.359 +	gestionnaire de paquets Tazpkg. Disons que vous avez cloné ou téléchargé
   1.360 +	les cookutils :
   1.361 +</p>
   1.362 +<pre>
   1.363 +$ cp -a cookutils/web ~/Public/cgi-bin/cooker
   1.364 +$ cp -f cookutils/cook.conf ~/Public/cgi-bin/cooker
   1.365 +</pre>
   1.366 +<p>
   1.367 +	Editez le fichier de configuration : ~/Public/cgi-bin/cooker/cook.conf pour
   1.368 +	mettre votre chemin SLITAZ et c'est tout !
   1.369 +</p>
   1.370 +
   1.371 +<h3>Cooknotes</h3>
   1.372 +<p>
   1.373 +	Le fonction cooknotes vous permet d'écrire de courtes notes personnelles
   1.374 +	au sujet de l'emballage et est utile pour travailler en groupe. Les
   1.375 +	cooknotes ont été codées pour que les mainteneur du Robot de fabrication
   1.376 +	de SliTaz partagent des informations avec les autres contributeurs.
   1.377 +	Les cooker peut bloquer la fabrication d'un paquet et recuire des paquets
   1.378 +	à la main, par exemple il est commode de faire une note si un paquet est
   1.379 +	bloqué afin que le mainteneur sache pourquoi l'administrateur a fait cela.
   1.380 +	Les cooknotes sont affichées dans l'interface Web et peuvent être vérifiées
   1.381 +	depuis la ligne de commande :
   1.382 +</p>
   1.383 +<pre>
   1.384 +# cooker note "Blocked pkgname due to heavy CPU load"
   1.385 +# cooker notes
   1.386 +</pre>
   1.387 +
   1.388 +<h3>Le Cooker comme robot de fabrication</h3>
   1.389 +<p>
   1.390 +	Le Cooker est conçu pour être le robot de fabrication de SliTaz, c'est à
   1.391 +	dire qu'il contrôle 2 woks, met à jour le wok Hg, obtient les différences
   1.392 +	et cuit tous les paquets qui ont été commités. La façon la plus sûre
   1.393 +	et la plus propre de lancer le Cooker comme robot de fabrication avec cron
   1.394 +	est d'utiliser un environnement de chroot, mais il peut tourner directement
   1.395 +	sur l'hôte si vous le voulez.
   1.396 +</p>
   1.397 +<p>
   1.398 +	Pour lance de Cooker automatiquement vous devez utiliser crom depuis le chroot
   1.399 +	et ajouter un ligne dans le crontab de root dans /var/spool/cron/crontabs.
   1.400 +	Disons que vous souhaitez lancer le Cooker toutes les 2 heures :
   1.401 +</p>
   1.402 +<pre>
   1.403 +* */2 * * * /usr/bin/cooker
   1.404 +</pre>
   1.405 +
   1.406 +<h3>Lancer le Robot Cooker au boot</h3>
   1.407 +<p>
   1.408 +	L'environnement du Cooker et la tâche cron peut être automatiquement
   1.409 +	lancée au démarrage. Vous devez avoir installé le paquet
   1.410 +	cookutils-daemon sur l'hôte et utiliser une installation standard
   1.411 +	SliTaz pour qu'il fonctionne correctement (la cooking se trouve
   1.412 +	dans /home/slitaz/cooking). Ce script va monter les systèmes de
   1.413 +	fichiers virtuels nécessaires pour les sources et les paquets.
   1.414 +	Les fichiers sources se trouvent dans /home/slitaz/src et sont
   1.415 +	reliés au chroot pour que vous puissiez les partager entre plusieurs
   1.416 +	version  (stable, cooking, undigest). Si ce paquet n'est pas encore
   1.417 +	installé :
   1.418 +</p>
   1.419 +<pre>
   1.420 +# tazpkg get-install cookutils-daemon
   1.421 +</pre>
   1.422 +<p>
   1.423 +	Pour lancer le daemon vous devez avoir une définition de ficher cron pour
   1.424 +	root dans le chroot, le script daemon fonctionne comme tous les autres
   1.425 +	daemons système et peut être controllé avec :
   1.426 +</p>
   1.427 +<pre>
   1.428 +# /etc/init.d/cooker [start|stop|restart]
   1.429 +</pre>
   1.430 +
   1.431 +<!-- End content -->
   1.432 +</div>
   1.433 +
   1.434 +<footer>
   1.435 +	Copyright © <span class="year"></span> <a href="http://www.slitaz.org/">SliTaz GNU/Linux</a>
   1.436 +</footer>
   1.437 +
   1.438 +</body>
   1.439 +</html>