website diff fr/doc/handbook/development.html @ rev 371

fr: Add doc section
author Christophe Lincoln <pankso@slitaz.org>
date Sat Apr 11 19:48:44 2009 +0200 (2009-04-11)
parents
children 8bb487c92207
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/fr/doc/handbook/development.html	Sat Apr 11 19:48:44 2009 +0200
     1.3 @@ -0,0 +1,353 @@
     1.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     1.5 +    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     1.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
     1.7 +<head>
     1.8 +    <title>SliTaz Handbook - Developpement</title>
     1.9 +    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    1.10 +    <meta name="description" content="developpement sur Slitaz Geany scripts dialog toolchain gcc make" />
    1.11 +    <meta name="expires" content="never" />
    1.12 +    <meta name="modified" content="2009-03-22 19:30:00" />
    1.13 +    <meta name="publisher" content="www.slitaz.org" />
    1.14 +    <meta name="author" content="Christophe Lincoln"/>
    1.15 +    <link rel="shortcut icon" href="favicon.ico" />
    1.16 +    <link rel="stylesheet" type="text/css" href="book.css" />
    1.17 +</head>
    1.18 +<body bgcolor="#ffffff">
    1.19 +
    1.20 +<!-- Header and quick navigation -->
    1.21 +<div id="header">
    1.22 +<div align="right" id="quicknav">
    1.23 +    <a name="top"></a>
    1.24 +    <a href="secure-shell.html">SHell sécurisé</a> |
    1.25 +    <a href="index.html">Table des matières</a>
    1.26 +</div>
    1.27 +<h1><font color="#3E1220">SliTaz Handbook</font></h1>
    1.28 +</div>
    1.29 +
    1.30 +<!-- Content. -->
    1.31 +<div id="content">
    1.32 +<div class="content-right"></div>
    1.33 +
    1.34 +<h2><font color="#DF8F06">Développement</font></h2>
    1.35 +
    1.36 +<ul>
    1.37 +    <li><a href="#about">&Agrave; propos du développement</a> - Sur SliTaz
    1.38 +    et de SliTaz.</li>
    1.39 +    <li><a href="#shell-scripts">Scripts SHell</a> - #!/bin/sh</li>
    1.40 +    <li><a href="#dialog">Dialog</a> - Création d'interface graphique
    1.41 +    basée sur la console.</li>
    1.42 +    <li><a href="#geany">Geany</a> - IDE ou Environnement de Développement
    1.43 +    Intégré.</li>
    1.44 +    <li><a href="#perl">Perl ou Microperl</a> - Coder et utiliser des scripts
    1.45 +    Perl et/ou CGI propulsés par microperl.</li>
    1.46 +    <li><a href="#python">Python</a> - Le langage Python</li>
    1.47 +	<li><a href="#ruby">Ruby</a> - Le langage Ruby</li>
    1.48 +    <li><a href="#toolchain">Toolchain</a> - Bibliothèques, compilateur C
    1.49 +    et outils associés.</li>
    1.50 +</ul>
    1.51 +
    1.52 +<a name="about"></a>
    1.53 +<h3><font color="#6c0023">&Agrave; propos du dévelopement</font></h3>
    1.54 +<p>
    1.55 +SliTaz fournit quelques outils de développement, conception de sites web,
    1.56 +édition avancée de scripts, et de code source avec l'IDE 'geany'. Création
    1.57 +d'interface graphique à vos scripts SHell avec 'dialog'.
    1.58 +</p>
    1.59 +<p>
    1.60 +Si vous cherchez des informations sur le développement de SliTaz,
    1.61 +le <a href="http://www.slitaz.org/doc/cookbook/">cookbook</a> (livre de
    1.62 +cuisine) vous décrira toutes les étapes de construction du système. Sur le
    1.63 +site web de SliTaz, la partie <a href="http://www.slitaz.org/devel/">devel</a>
    1.64 +vous donnera des informations générales au sujet des développeurs et des
    1.65 +possibilités de participation.
    1.66 +</p>
    1.67 +<a name="shell-scripts"></a>
    1.68 +<h3><font color="#6c0023">Scripts SHell</font></h3>
    1.69 +<p>
    1.70 +L'écriture de scripts SHell est la manière la plus simple pour commencer à
    1.71 +coder, ils permettent d'avoir rapidement un résultat et les seuls prérequis
    1.72 +sont de savoir ouvrir un terminal et utiliser un éditeur de texte tels
    1.73 +que Nano, LeafPad ou Geany. Les scripts SHell permettent de faire énomérement
    1.74 +de choses sur un système GNU/Linux, initialiser le système, faire des
    1.75 +sauvegardes, exécuter des tâches répétitives, afficher des informations sur
    1.76 +l'état du système, créer ou modifier des fichier, etc. Dans un script SHell,
    1.77 +vous pouvez aussi utiliser des variables, des fonctions ou encore des appels
    1.78 +pour inclure un fichier. A noter que vous pouvez nommer vos scripts comme bon
    1.79 +vous semble et que l'utilisation de l'extension <code>.sh</code> est largement
    1.80 +utilisée.
    1.81 +</p>
    1.82 +<h4>Créer un script SHell</h4>
    1.83 +<p>
    1.84 +Avant de commencer un nouveau script SHell, vous devez faire attention
    1.85 +à l'interprétateur utilisé. La plus part du temps les scripts SHell
    1.86 +utilisent <code>/bin/sh</code>, cela permet d'être plus portable.
    1.87 +Il y a aussi des scripts qui appelent <code>/bin/bash</code>, mais cela
    1.88 +implique que Bash soit installé sur le système. Pour qu'un script SHell
    1.89 +fonctionne il doit être exécutable par l'utilisateur courant, le changement
    1.90 +des permissions sur un fichier peut se faire en ligne de commande via
    1.91 +l'outils <code>chmod</code>. Pour créer un <code>script.sh</code> et le
    1.92 +rendre exécutable :
    1.93 +</p>
    1.94 +<pre>
    1.95 + $ touch script.sh
    1.96 + $ chmod +x script.sh
    1.97 +</pre>
    1.98 +<p>
    1.99 +Maintenant que vous avez un nouveau fichier exécutable, vous allez pouvoir
   1.100 +l'éditer. Vous pouvez continuer en restant dans le terminal et en utilisant
   1.101 +l'éditeur Nano (Ctrl+X pour enregistrer) ou en ouvrant l'IDE Geany sur le
   1.102 +fichier :
   1.103 +</p>
   1.104 +<pre>
   1.105 + $ nano script.sh
   1.106 + Ou :
   1.107 + $ geany script.sh &amp;
   1.108 +</pre>
   1.109 +<p>
   1.110 +Voici un &micro;script qui contient une variable <code>NAME</code> et qui en
   1.111 +affiche la valeur avec la commande <code>echo</code> :
   1.112 +</p>
   1.113 +<pre class="script">
   1.114 +#!/bin/sh
   1.115 +
   1.116 +NAME="kayam"
   1.117 +
   1.118 +echo "$NAME est sympa."
   1.119 +
   1.120 +</pre>
   1.121 +<p>
   1.122 +Une fois que vous avez créé/modifié votre <code>script.sh</code>, il suffit
   1.123 +d'enregistrer et d'exécuter le script pour voir le résultat :
   1.124 +</p>
   1.125 +<pre>
   1.126 + $ ./script.sh
   1.127 +</pre>
   1.128 +<p>
   1.129 +Voilà pour cette brève introduction au scripts SHell. Pour aller plus loin, le
   1.130 +web regorge d'informations à ce sujet et regarder ce qu'on fait les autres
   1.131 +peut aussi aider.
   1.132 +</p>
   1.133 +<a name="dialog"></a>
   1.134 +<h3><font color="#6c0023">Dialog</font></h3>
   1.135 +<p>
   1.136 +Dialog permet de créer des interfaces graphique basées sur la console, telles
   1.137 +que 'tazkmap'. Le fichier de configuration de dialog est /etc/dialogrc, et/ou
   1.138 + ~/.dialogrc pour chaque utilisateur. Voici un simple exemple d'utilisation de
   1.139 + dialog via une console ou un terminal :
   1.140 +</p>
   1.141 +<pre>
   1.142 + $ dialog --title "Hello $USER" \
   1.143 +   --msgbox "Message propulsé par dialog." 5 54
   1.144 +</pre>
   1.145 +<p>
   1.146 +Vous trouverez pleins d'exemples de scripts dans le répertoire /sample des
   1.147 +sources de dialog, que vous pouvez télécharger depuis:
   1.148 +<a href="http://invisible-island.net/dialog/dialog.html"
   1.149 + >invisible-island.net/dialog/dialog.html</a>. Download des sources avec
   1.150 +'wget' et décompression :
   1.151 +</p>
   1.152 +<pre>
   1.153 + $ wget ftp://invisible-island.net/dialog/dialog.tar.gz
   1.154 + $ tar xzf dialog.tar.gz
   1.155 +</pre>
   1.156 +<a name="geany"></a>
   1.157 +<h3><font color="#6c0023">Geany IDE</font></h3>
   1.158 +<p>
   1.159 +Geany est un IDE ou Environnement de Dévelopement Intégré, il est simple,
   1.160 +léger, et rapide, proposant la coloration syntaxique, les onglets,
   1.161 +pliage/dépliage du code, la complétion automatique, de l'aide à l'écriture.
   1.162 +Vous avez une liste des symboles, fonctions, méthodes, variables très utiles,
   1.163 +avec une petite flèche de signalisation. Et encore, sélecteur de couleurs
   1.164 +intégré, fenêtre de messages, lancement du script courant via le bouton
   1.165 +Exécuter, etc. C'est avec lui que nous avons créé cette page,
   1.166 +la documentation, et presque tout le site web (un peu avec Nano aussi).
   1.167 +</p>
   1.168 +<h4>Lancer Geany</h4>
   1.169 +<p>
   1.170 +Vous trouverez Geany dans le menu de JWM --&gt; Development --&gt; Geany.
   1.171 +Un fois lancé pour la première fois, vous pouvez ajuster vos préférences
   1.172 +via --&gt; Editer --&gt; Préférences. Vous pouvez aussi lancer Geany via un
   1.173 +terminal X et la commande :
   1.174 +</p>
   1.175 +<pre>
   1.176 + $ geany &amp;
   1.177 +</pre>
   1.178 +<p>
   1.179 +Note : Lors de la compilation des sources, le scripts <code>./configure</code>
   1.180 +propose l'option : <code>--enable-the-force</code>... Que l'on peut utiliser
   1.181 +si l'on penser avoir la force et être Luc Skywalker!
   1.182 +</p>
   1.183 +<a name="perl"></a>
   1.184 +<h3><font color="#6c0023">Perl ou Microperl - Coder/utiliser des scripts Perl</font></h3>
   1.185 +<p>
   1.186 +Sur SliTaz vous pouvez coder et utiliser le puissant langage de scripts Perl
   1.187 +via le binaire <code>perl</code> ou <code>microperl</code>. Microperl est une
   1.188 +version très allégée de Perl compilée à partir des sources officielles de Perl,
   1.189 +les scripts fonctionnant avec microperl sont complètement compatible avec la
   1.190 +version complète de Perl. C'est justement une des forces de Perl, il est portable
   1.191 +et fonctionne sur toutes les systèmes d'exploitations. Perl est un langage
   1.192 +interprété cela veut dire que le code n'a pas besoin d'être compilé et qu'il
   1.193 +peut être utilisé directement. A noter que sur SliTaz, <code>perl</code>
   1.194 +et/ou <code>microperl</code> se sont pas installé par défaut sur le LiveCD, vous
   1.195 +pouvez soit reconstruire votre propore ISO en incluant Perl ou installer via
   1.196 +le gestionnaire de paquets. A noter que le paquet Microperl fait mois d'1 Mb
   1.197 +et ne fournit aucun modules, juste le minimum :
   1.198 +</p>
   1.199 +<pre>
   1.200 + # tazpkg install perl
   1.201 + Ou :
   1.202 + # tazpkg install microperl
   1.203 +</pre>
   1.204 +
   1.205 +<h4>Hello world!</h4>
   1.206 +<p>
   1.207 +Le but de ce &micro;script est d'afficher <em>Hello World</em>. Vous pouvez
   1.208 +commencer par créer le fichier et le rendre exécutable depuis la ligne de
   1.209 +commandes et l'éditer ensuite graphiquement avec l'IDE Geany. A noter que nous
   1.210 +nommons le scripts <code>hello.pl</code> mais que vous pouvez nommer un
   1.211 +script Perl comme bon vous semble, avec ou sans l'extension <code>.pl</code> :
   1.212 +</p>
   1.213 +<pre>
   1.214 + $ touch hello.pl
   1.215 + $ chmod +x hello.pl
   1.216 + $ geany hello.pl &amp;
   1.217 +</pre>
   1.218 +<p>
   1.219 +La première ligne d'un scripts Perl commence par définir le chemin vers
   1.220 +l'interprétateur Perl, généralement <code>/usr/bin/perl</code> et pour
   1.221 +afficher du texte il suffit d'utiliser la commande <code>print</code>.
   1.222 +Code à copier/coller. A noter que le langage Perl est sensible à la casse et
   1.223 +qu'une instruction devrait toujours se terminer par un point-virgule :
   1.224 +</p>
   1.225 +<pre class="script">
   1.226 +#!/usr/bin/perl
   1.227 +#
   1.228 +
   1.229 +print "Hello World!\n";
   1.230 +
   1.231 +</pre>
   1.232 +<p>
   1.233 +Pour exécuter et tester le script :
   1.234 +</p>
   1.235 +<pre>
   1.236 + $ ./hello.pl
   1.237 +</pre>
   1.238 +
   1.239 +<h4>Scripts CGI et Perl</h4>
   1.240 +<p>
   1.241 +Les scripts CGI ont pour but d'afficher des pages web générées dynamiquement.
   1.242 +Le langage Perl assoicié au serveur web LightTPD vous permet d'utiliser
   1.243 +des scripts CGI via votre espace public ou via des hôtes virtuels. Perl est
   1.244 +tout à fait adapté au web 2.0 et permet de générer rapidement des pages xHTML.
   1.245 +Sur Slitaz, vous devez avoir installé Perl ou Microperl et
   1.246 +<a href="web-server.html#cgi-perl">configuré le serveur Web LightTPD</a> avant
   1.247 +de pouvoir utiliser des scripts CGI codé en Perl. A noter que par défaut vous
   1.248 +pouvez utiliser des scripts SHell (.sh) et les placer dans /cgi-bin/).
   1.249 +</p>
   1.250 +<p>
   1.251 +Une fois le server bien configuré, vous pouvez directement placer des scripts
   1.252 +CGI dans votre répertoire <code>$HOME/Public/cgi-bin</code> en utilisant
   1.253 +l'extension <code>.pl</code> ou <code>.cgi</code> et les visualiser en local
   1.254 +ou à distance. Exemple de script CGI utilisant Perl :
   1.255 +</p>
   1.256 +<pre class="script">
   1.257 +#!/usr/bin/perl
   1.258 +#
   1.259 +print "content-type : text/html\n\n";
   1.260 +
   1.261 +print "Hello World!\n";
   1.262 +
   1.263 +</pre>
   1.264 +
   1.265 +<a name="python"></a>
   1.266 +<h3><font color="#6c0023">Python</font></h3>
   1.267 +<p>
   1.268 +Le langage de programmation Python est disponible sous forme de paquet
   1.269 +facilement installable. Un fois Python installé vous pouvez créer vos propre
   1.270 +scripts/programmes et utiliser des applications CGI via le serveur Web LightTPD
   1.271 +en prenant soin de <a href="web-server.html#cgi-python">configurer le serveur</a>
   1.272 +correctement. A noter que le dépôt Mercurial officiel de SliTaz fourni une 
   1.273 +interface Web CGI/Python, c'est une solution adaptée à la production, robuste
   1.274 +et fiable. Pour installer le paquet <code>python</code> avec Tazpkg :
   1.275 +</p>
   1.276 +<pre>
   1.277 + # tazpkg get-install python
   1.278 +</pre>
   1.279 +
   1.280 +<a name="ruby"></a>
   1.281 +<h3><font color="#6c0023">Ruby</font></h3>
   1.282 +<p>
   1.283 +Ruby est un langage de programmation interprété et orienté objet. Ruby
   1.284 +est fourni avec irb, un interpréteur de commandes interactif pour tester
   1.285 +en profondeur le fonctionnement du langage. Il existe même une version 
   1.286 +web d'irb pour tester Ruby dans un navigateur. Ruby fourni aussi un
   1.287 +gestionnaire de paquet nommé <code>gem</code> et un framework pour créer
   1.288 +des applications Web nommé <code>rails</code>. Pour installer Ruby sur
   1.289 +SliTaz:
   1.290 +</p>
   1.291 +<pre>
   1.292 + $ tazpkg get-install ruby
   1.293 +</pre>
   1.294 +<p>
   1.295 +Le site oficell fourni toute la documentation utile à l'apprentissage du
   1.296 +langage facilement et efficacement:
   1.297 +<a href="http://www.ruby-lang.org/">www.ruby-lang.org</a>
   1.298 +</p>
   1.299 +
   1.300 +<a name="toolchain"></a>
   1.301 +<h3><font color="#6c0023">Toolchain - Bibliothèques, compilateur C et outils associés</font></h3>
   1.302 +<p>
   1.303 +Pour compiler des logiciels depuis les sources ou son propre code, vous avez
   1.304 +au minimum, besoin de la chaîne d'outils de base (<em>toolchain</em>),
   1.305 +composée des outils Binutils, de la bibliothèque Glibc , du compilateur
   1.306 +GCC, des <em>headers</em> du noyau et de l'utilitaire Make. Cette chaîne
   1.307 +d'outils peut être installée via le gestionnaire de paquets Tazpkg et une
   1.308 +seule commande. A noter que cette <em>toolchain</em> est utilisée par les
   1.309 +développeurs de SliTaz pour compiler le système entier depuis les sources.
   1.310 +Pour installer les paquets via l'installation d'un meta paquet créant les
   1.311 +dépendances qu'il faut :
   1.312 +</p>
   1.313 +<pre>
   1.314 + # tazpkg get-install slitaz-toolchain
   1.315 +</pre>
   1.316 +<p>
   1.317 +L'installation de la toolchain permet de compiler beaucoup d'applications
   1.318 +de base et en mode texte. A noter que beaucoup de paquets compileront sans
   1.319 +problème en utilisant le SHell Ash de Busybox, mais d'autres paquets ne
   1.320 +compileront pas sans Bash. GNU bash est disponnible sous forme de paquet
   1.321 +ainsi que divers outils de développement de base tels que Flex, M4, Bison,
   1.322 +ou encore Pkg-config. Si vous cherchez pkg-config par exemple :
   1.323 +</p>
   1.324 +<pre>
   1.325 + $ tazpkg search pkg-config
   1.326 +</pre>
   1.327 +<p>
   1.328 +Si vous désirez compiler des applications utilsant les bibliothèques Ncurses,
   1.329 +vous devez installer le paquet <code>ncurses-dev</code> complet (par défaut
   1.330 +il n'y a que le paquet minimum installé). A noter que le paquet ncurses fournit
   1.331 +aussi divers petits programmes tels que <code>tic</code> ou <code>tack</code> :
   1.332 +</p>
   1.333 +<pre>
   1.334 + $ tazpkg search ncurses
   1.335 +</pre>
   1.336 +
   1.337 +<!-- End of content -->
   1.338 +</div>
   1.339 +
   1.340 +<!-- Footer. -->
   1.341 +<div id="footer">
   1.342 +	<div class="footer-right"></div>
   1.343 +	<a href="#top">Haut de la page</a> | 
   1.344 +	<a href="index.html">Table des matières</a>
   1.345 +</div>
   1.346 +
   1.347 +<div id="copy">
   1.348 +    Copyright &copy; 2009 <a href="http://www.slitaz.org/">SliTaz</a> -
   1.349 +    <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
   1.350 +    Documentation publiées sous
   1.351 +    <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
   1.352 +    et codée en <a href="http://validator.w3.org/">xHTML 1.0 valide</a>.
   1.353 +</div>
   1.354 +
   1.355 +</body>
   1.356 +</html>