# HG changeset patch # User Pascal Bellard # Date 1474733210 -7200 # Node ID 4940cbb852b1deaa7e87654388b047084e82d8f7 # Parent 82dc943aa390acec09e57f70651ca3bc8c1747d4 Add doc/cookutils.fr.html diff -r 82dc943aa390 -r 4940cbb852b1 doc/cookutils.fr.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/cookutils.fr.html Sat Sep 24 18:06:50 2016 +0200 @@ -0,0 +1,436 @@ + + + + + Documentation de Cookutils + + + + + +
+

Documentation de Cookutils

+
+ + +
+ +

SliTaz Cook & Cooker

+ +

+ Les Cookutils SliTaz fournissent les outils et utilitaires pour + faciliter la construction de paquets SliTaz. Ils sont faciles à + utiliser et à apprendre, rapides et légers. Vous pourrez créer + des paquets SliTaz avec quelques commandes. Les Cookutils fournissent + l'utilitaire 'cook' et le Cooker. +

+

+ Cook vous permet de créer et de compiler un paquet, fournit un + fichier journal et vérifie la qualité du paquet et de la recette. + Le Cooker est un robot de fabrication avec plus d'automatismes et + peut être utilisé comme outil de fabrication car il fournit + une interface CGI/Web qui vous parmet de voir des journaux de + cuisson agréables et coloriés. Cook et le Cooker se servent des + mêmes wok et base de fichiers, il partagent les paquets + bloqués et cassés tout comme leur activité. +

+

+ Pour toute information technique, par exemple le style de codage, etc, + veuillez vous référer au README qui se trouve dans les fichiers + source ou dans /usr/share/doc/cookutils. +

+ +

Usage de Cook

+

+ Cook donne une aide intégrée succinte que vous pouvez afficher + avec la commande 'usage'. Il a aussi quelques options pour faire + des tâches spécifiques avant ou après la cuisson. Pour avoir + l'aide et l'usage : +

+
+# cook usage
+
+ +

Comment faire

+

+ La première chose à faire avant de cuire des paquets est de + configurer votre environnement. Les 2 façons recommendées de + travailler : cuire directement sur l'hôte ou cuire dans un chroot + pour protéger votre hôte. Dans le cas où vous voulez travailler + dans un chroot vous pouvez installer et utiliser Tazdev pour en + créer un et vous placer à l'intérieur : +

+
+# tazdev gen-chroot && tazdev chroot
+
+

+ Par défaut Tazdev crée un chroot dans /home/slitaz/cooking/chroot + mais vous pouvez spécifier un chemin quelconque en argument. L'endroit + du chroot n'est pas important, lorsque vous serez dans le chroot vous + utiliserez des chemins standards de SliTaz comme /home/slitaz/wok pour + de répertoire du wok ou /home/slitaz/log pour tous les journaux de + cuisson. Comme toujours vous pouvez afficher l'aide de tazdev avec : + tazdev usage. +

+

+ Lorsque vous utilisez un chroot il y a 2 répertoires spéciaux montés + avec l'option bind : src et packages. Les sources pour tous les paquets + sont stockés par défaut dans /home/slitaz/src, ce répertoire est + monté dans le chroot pour que les outils puissient l'utiliser. + Cette méthode vous permet de partager les sources avec plusieurs + chroots par exemple un pour cooking et un pour stable. Le répertoire + par défaut est : /home/slitaz/[version]/packages ainsi ils ne sont pas + dans le chroot et ne sont pas affectés si le chroot est effacé par + erreur. +

+ +

Pour commencer

+

+ Donc vous avez décidé de la façon dont vous voulez travailler, alors préparons + l'environnement de cuisson. Cook se sert du fichier de configuration cook.conf, + si vous voulez utiliser des chemins inhabituels pour les répertoires et fichiers + SliTaz, vous devez le modifier. Le paramétrage va créer quelques répertoires + et fichiers pour garder une trace de la l'activité et des erreurs, tous les + fichiers sont des fichiers textes simples que vous pouvez ouvrir dans un + éditeur de texte. Pour préparer votre environnement : +

+
+# cook setup
+
+

+ La commande de paramétrage à une option --wok qui vous permet de cloner un + wok SliTaz pendant la creation de l'environnement de cuisson. Même si vous + n'êtes pas un développeur officiel vous pouver le cloner et utiliser les + paquets existants comme exemple pour créer le vôtre. + Pour paramétrer et cloner le wok cooking ou le wok undisgest par défaut ; +

+
+# cook setup --wok
+# cook setup --undigest
+
+ +

Testez votre environnement

+

+ Cook fournit une commande de test qui crée un paquet et le cuit. Cela vous + permet de voir si votre environnement fonctionne et donne un paquet exemple + avec une recette. Le paquet s'appelle 'cooktest' et peut être retiré après + avoir été testé. Pour cuire le paquet de test : +

+
+# cook test
+
+ +

Créer et cuire

+

+ Si votre environnement est correctement paramétré vous pouvez commencer + à créer et compiler des paquets SliTaz depuis votre wok. Pour créer un + nouveau pqauet avec une recette vide (vous pouvez aussi créer une recette + interactivement) : +

+
+# cook new pkgname
+# cook new pkgname --interactive
+
+

+ Si vous venez de créer un nouveau paquet, vous devrez éditer le recette avec + votre éditeur de texte favori. Alors la recette est prête ou si vous avez + déjà un paquet existant, vous pouvez le cuire : +

+
+# cook pkgname
+
+

+ Si tout c'est bien passé vous trouverez votre paquet dans le répertoire + $SLITAZ/packages et tous les fichiers produits dans $SLITAZ/wok/pkgname. +

+ +

Cuire et installer

+

+ Si vous voulez cuire et installer le paquet en une commande : +

+
+# cook pkgname --install
+
+ +

Obtenir les sources

+

+ Si vous voulez ou avez besion de seulement télécharger les sources d'un + paquet sans le fabriquer, vous pouvez utiliser l'option --getsrc comme suit : +

+
+# cook pkgname --getsrc
+
+ +

Nettoyer les paquets

+

+ Après compilation et empaquetage il y a plusieurs fichiers dans le wok qui + prennent de la place disque. Pour nettoyer un pqauet unique : +

+
+# cook pkgname --clean
+
+

+ Vous pouvez aussi nettoyer le wok en entier ou vous pouvez choisir de garder + les fichiers SliTaz et seulement retirer les sources : +

+
+# cook clean-wok
+# cook clean-src
+
+ +

Recherche

+

+ Cook fournit une fonction de recherche simple pour trouver rapidement un + paquet dans le wok. Elle utilise grep et supporte des expressions régulières : +

+
+# cook search busybox
+
+ +

Functions de la recette

+

+ Beaucoup de paquets fournissent le même genre de fichiers comme les + paquets *-dev avec les librairies statiques, les fichiers pkgconfig et + les entêtes pour includes. Alors cook fournit une fonction à utiliser + dans la recette : +

+
+get_dev_files     : Install /usr/lib/{lib.*a,pkgconfig} /usr/include
+
+ +

Liste de paquets

+

+ Cook peut lister les paquets dans le wok et ainsi créer une liste de paquets + adaptée pour Tazpkg. Cela vous permet de créer votre dépôt de paquets assez + facilement et c'est utiilisé pour créer la liste offcielle des paquets Slitaz + sur les miroirs. Pour lister le wok actuellement utilisé par cook (il n'est + pas nécessaire d'être root) : +

+
+$ cook list-wok
+
+

+ En créant la base (ou liste) de paquets, cook va vérifier si vous avez un + dépôt de saveurs dans /home/slitaz/flavors ; si c'est la cas il va emballer + toutes les saveurs en utilisant la dernière liste de paquets disponible. + Pour créer une liste de paquets et les fichers de saveurs : +

+
+# cook pkgdb
+
+ +

Le Cooker

+

+ Le Cooker est un robot de compilation, sa première fonction est de rechercher + les commits dans le wok, créer une liste ordonnée et cuire tous les paquets + modifiés. Il peut aussi être utilisé comme interface pour cook car ils + utilisent les mêmes fichiers. Le Cooker peut aussi être utilisé pour cuire + une longue liste de paquets en une fois comme tous les paquets d'une saveur. + Le cooker fournit une interface CGI/Web agréable qui fonctionne par défaut + sur n'importe quel système SliTaz car il fournit le support CGI via le serveur + httpd de busybox. +

+

+ Le Cooker fournit une aide intégrée succinte et quelques commandes. + Par exemple pour afficher l'usage vous pouvez faire : +

+
+# cooker usage
+# cooker -u
+
+ +

Paramétrage du Cooker

+

+ Tout comme cook, le Cooker a besoin d'un environnement fonctionnel avant de + commencer à l'utiliser. Le principale différence avec l'environnement de + cook est que le Cooker a besoin de 2 woks. Un wok Hg propre comme référence + et un wok de fabrication. De cette façon il est facile de comparer les 2 woks + et d'obtenir les modifications. SI vous avez déjà un environnement pour cook, + vous devez déplacer votre wok avant de paramétrer le Cooker ou il s'en + plaindra. Le paramétrage installera aussi un ensemble de paquets de + développement qui peuvent être définis dans le fichiers de configuration + cook.conf avec la variable SETUP_PKGS. Pour paramétrer votre environnement + cooker : +

+
+# cooker setup
+
+

+ Si tout ce passe correctement vous avez maintenant 2 woks, les paquets de + developpement de base installés et tous les fichiers nécessaires créés. + Le comportement par défaut est de rechercher les commits, vous pouvez lancer + un test : +

+
+# cooker
+
+ +

Cuire avec le Cooker

+

+ Encore 2 façons de travailler maintenant : faire des modifications dans + le nouveau wok Hg et lancer le cooker sans arguments ou cuire les paquets + manuellement. Le cooker vous permet de cuire un paquet unique ou tous les + paquets d'un catégorie ou d'une saveur. Vous pouvez aussi essayer de + fabriquer tous les paquets non construits, mais sachez que le Cooker n'a + pas été fait pour gérer des milliers de paquets. +

+

+ Pour cuire un paquet unique comme 'cook pkgname' mais avec un journal en plus : +

+
+# cooker pkg pkgname
+
+

+ Pour cuire plus d'un paquet vous avez différentes possibilités. + Vous pouvez utiliser un paquet existant comme ceux des saveurs live, + vous pouvez aussi utiliser une liste personnelle avec des noms de paquet + à chaque ligne. Enfin vous pouvez construire tous les paquets d'un catégorie. +

+
+# cooker flavor [name]
+# cooker list [/path/to/cooklist]
+# cooker cat [category]
+
+

+ Le cooker vous permet de recuire une révision spécifique de Hg. C'est + utile en production ainsi si le robot de fabrication est interrompu + pendant des commits en cooking, vous pouvez cuire les paquets à la main : +

+
+# cooker rev 9496
+
+ +

Le paquets bloqués

+

+ Cook et le Cooker gèrent un fichier contenant la liste des paquets bloqués + afin de ne pas les cuire lors de commits ou si une liste de cuission est utilisée. + C"est très utile pour un Robot de fabrication en production. Lorsque vous + bloquez ou débloquez un paquet vous pouvez ajouter une note dans les cooknotes. + Exemple de blocage de paquet : +

+
+# cook pkgname --block
+# cooker block pkgname
+# cooker -n "Blocked pkgname note"
+
+

+ La liste des paquets bloqués est affichée dans l'interface Web du Cooker. + Pour débloquer un paquet vous devez utiliser la commande unblock ou l'option + cook --unblock : +

+
+# cook pkgname --unblock
+# cooker unblock pkgname
+
+ +

Cooker CGI/Web

+

+ Pour que vous puissiez voir les journaux de façon agréable, garder une + trace de l'activité et vous aider à trouver les erreurs, vous pouvez + utiliser l'interface Web du Cooker qui se trouve par défaut dans le dossier + /var/www/cooker. Si vous n'utilisez pas un chroot et que le démon httpd de + Busybox est lancé, l'interface Web fonctionnera sans configuration et sera + visible en + http://localhost/cooker/cooker.cgi +

+

+ Si vous utilisez un environnement de chroot, vous devriez aussi installer + cookutils sur votre hôte et modifier la variable de chemin SLITAZ. + Une façon standard est d'avoir un chroot dans : +

+
+/home/slitaz/cooking/chroot
+
+

+ Avec /etc/slitaz/cook.conf modifié comme suit : +

+
+SLITAZ="/home/slitaz/cooking/chroot/home/slitaz"
+
+

+ Note : il n'est pas obligatoire d'installer les cookutils sur votre hôte + pour utiliser l'interface Web. Si vous utilisez Lighttpd vous pouvez aussi + copier les fichiers cooker.cgi et style.css par exemple dans votre dossier + ~/Public et utiliser un cook.conf perso avec. L'avantage d'installer + cookutils sur l'hôte est d'avoir des mise à jour régulières par le + gestionnaire de paquets Tazpkg. Disons que vous avez cloné ou téléchargé + les cookutils : +

+
+$ cp -a cookutils/web ~/Public/cgi-bin/cooker
+$ cp -f cookutils/cook.conf ~/Public/cgi-bin/cooker
+
+

+ Editez le fichier de configuration : ~/Public/cgi-bin/cooker/cook.conf pour + mettre votre chemin SLITAZ et c'est tout ! +

+ +

Cooknotes

+

+ Le fonction cooknotes vous permet d'écrire de courtes notes personnelles + au sujet de l'emballage et est utile pour travailler en groupe. Les + cooknotes ont été codées pour que les mainteneur du Robot de fabrication + de SliTaz partagent des informations avec les autres contributeurs. + Les cooker peut bloquer la fabrication d'un paquet et recuire des paquets + à la main, par exemple il est commode de faire une note si un paquet est + bloqué afin que le mainteneur sache pourquoi l'administrateur a fait cela. + Les cooknotes sont affichées dans l'interface Web et peuvent être vérifiées + depuis la ligne de commande : +

+
+# cooker note "Blocked pkgname due to heavy CPU load"
+# cooker notes
+
+ +

Le Cooker comme robot de fabrication

+

+ Le Cooker est conçu pour être le robot de fabrication de SliTaz, c'est à + dire qu'il contrôle 2 woks, met à jour le wok Hg, obtient les différences + et cuit tous les paquets qui ont été commités. La façon la plus sûre + et la plus propre de lancer le Cooker comme robot de fabrication avec cron + est d'utiliser un environnement de chroot, mais il peut tourner directement + sur l'hôte si vous le voulez. +

+

+ Pour lance de Cooker automatiquement vous devez utiliser crom depuis le chroot + et ajouter un ligne dans le crontab de root dans /var/spool/cron/crontabs. + Disons que vous souhaitez lancer le Cooker toutes les 2 heures : +

+
+* */2 * * * /usr/bin/cooker
+
+ +

Lancer le Robot Cooker au boot

+

+ L'environnement du Cooker et la tâche cron peut être automatiquement + lancée au démarrage. Vous devez avoir installé le paquet + cookutils-daemon sur l'hôte et utiliser une installation standard + SliTaz pour qu'il fonctionne correctement (la cooking se trouve + dans /home/slitaz/cooking). Ce script va monter les systèmes de + fichiers virtuels nécessaires pour les sources et les paquets. + Les fichiers sources se trouvent dans /home/slitaz/src et sont + reliés au chroot pour que vous puissiez les partager entre plusieurs + version (stable, cooking, undigest). Si ce paquet n'est pas encore + installé : +

+
+# tazpkg get-install cookutils-daemon
+
+

+ Pour lancer le daemon vous devez avoir une définition de ficher cron pour + root dans le chroot, le script daemon fonctionne comme tous les autres + daemons système et peut être controllé avec : +

+
+# /etc/init.d/cooker [start|stop|restart]
+
+ + +
+ + + + +