website annotate fr/doc/handbook/development.html @ rev 665

Update copyright year
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu Oct 21 09:53:47 2010 +0200 (2010-10-21)
parents 803de7c72d06
children 0ae6cfc85e03
rev   line source
pankso@371 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
pankso@371 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
pankso@371 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
pankso@371 4 <head>
pankso@371 5 <title>SliTaz Handbook - Developpement</title>
pankso@371 6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
pankso@371 7 <meta name="description" content="developpement sur Slitaz Geany scripts dialog toolchain gcc make" />
pankso@371 8 <meta name="expires" content="never" />
pankso@371 9 <meta name="modified" content="2009-03-22 19:30:00" />
pankso@371 10 <meta name="publisher" content="www.slitaz.org" />
pankso@371 11 <meta name="author" content="Christophe Lincoln"/>
pankso@371 12 <link rel="shortcut icon" href="favicon.ico" />
pankso@371 13 <link rel="stylesheet" type="text/css" href="book.css" />
pankso@371 14 </head>
pankso@371 15 <body bgcolor="#ffffff">
pankso@371 16
pankso@371 17 <!-- Header and quick navigation -->
pankso@371 18 <div id="header">
pankso@371 19 <div align="right" id="quicknav">
pankso@371 20 <a name="top"></a>
pankso@371 21 <a href="secure-shell.html">SHell sécurisé</a> |
pankso@371 22 <a href="index.html">Table des matières</a>
pankso@371 23 </div>
pankso@371 24 <h1><font color="#3E1220">SliTaz Handbook</font></h1>
pankso@371 25 </div>
pankso@371 26
pankso@371 27 <!-- Content. -->
pankso@371 28 <div id="content">
pankso@371 29 <div class="content-right"></div>
pankso@371 30
pankso@371 31 <h2><font color="#DF8F06">Développement</font></h2>
pankso@371 32
pankso@371 33 <ul>
pascal@548 34 <li><a href="development.html#about">&Agrave; propos du développement</a> - Sur SliTaz
pankso@371 35 et de SliTaz.</li>
pascal@548 36 <li><a href="development.html#shell-scripts">Scripts SHell</a> - #!/bin/sh</li>
pascal@548 37 <li><a href="development.html#dialog">Dialog</a> - Création d'interface graphique
pankso@371 38 basée sur la console.</li>
pascal@548 39 <li><a href="development.html#geany">Geany</a> - IDE ou Environnement de Développement
pankso@371 40 Intégré.</li>
pascal@548 41 <li><a href="development.html#perl">Perl ou Microperl</a> - Coder et utiliser des scripts
pankso@371 42 Perl et/ou CGI propulsés par microperl.</li>
pascal@548 43 <li><a href="development.html#python">Python</a> - Le langage Python</li>
pascal@548 44 <li><a href="development.html#ruby">Ruby</a> - Le langage Ruby</li>
pascal@548 45 <li><a href="development.html#toolchain">Toolchain</a> - Bibliothèques, compilateur C
pankso@371 46 et outils associés.</li>
pankso@371 47 </ul>
pankso@371 48
pankso@371 49 <a name="about"></a>
pankso@371 50 <h3><font color="#6c0023">&Agrave; propos du dévelopement</font></h3>
pankso@371 51 <p>
pankso@371 52 SliTaz fournit quelques outils de développement, conception de sites web,
pankso@371 53 édition avancée de scripts, et de code source avec l'IDE 'geany'. Création
pankso@371 54 d'interface graphique à vos scripts SHell avec 'dialog'.
pankso@371 55 </p>
pankso@371 56 <p>
pankso@371 57 Si vous cherchez des informations sur le développement de SliTaz,
pankso@412 58 le <a href="http://www.slitaz.org/doc/fr/cookbook/">cookbook</a> (livre de
pankso@371 59 cuisine) vous décrira toutes les étapes de construction du système. Sur le
pankso@412 60 site web de SliTaz, la partie <a href="http://www.slitaz.org/fr/devel/">devel</a>
pankso@371 61 vous donnera des informations générales au sujet des développeurs et des
pankso@371 62 possibilités de participation.
pankso@371 63 </p>
pankso@371 64 <a name="shell-scripts"></a>
pankso@371 65 <h3><font color="#6c0023">Scripts SHell</font></h3>
pankso@371 66 <p>
pankso@371 67 L'écriture de scripts SHell est la manière la plus simple pour commencer à
pankso@371 68 coder, ils permettent d'avoir rapidement un résultat et les seuls prérequis
pankso@371 69 sont de savoir ouvrir un terminal et utiliser un éditeur de texte tels
pankso@371 70 que Nano, LeafPad ou Geany. Les scripts SHell permettent de faire énomérement
pankso@371 71 de choses sur un système GNU/Linux, initialiser le système, faire des
pankso@371 72 sauvegardes, exécuter des tâches répétitives, afficher des informations sur
pankso@371 73 l'état du système, créer ou modifier des fichier, etc. Dans un script SHell,
pankso@371 74 vous pouvez aussi utiliser des variables, des fonctions ou encore des appels
pankso@371 75 pour inclure un fichier. A noter que vous pouvez nommer vos scripts comme bon
pankso@371 76 vous semble et que l'utilisation de l'extension <code>.sh</code> est largement
pankso@371 77 utilisée.
pankso@371 78 </p>
pankso@371 79 <h4>Créer un script SHell</h4>
pankso@371 80 <p>
pankso@371 81 Avant de commencer un nouveau script SHell, vous devez faire attention
pankso@371 82 à l'interprétateur utilisé. La plus part du temps les scripts SHell
pankso@371 83 utilisent <code>/bin/sh</code>, cela permet d'être plus portable.
pankso@371 84 Il y a aussi des scripts qui appelent <code>/bin/bash</code>, mais cela
pankso@371 85 implique que Bash soit installé sur le système. Pour qu'un script SHell
pankso@371 86 fonctionne il doit être exécutable par l'utilisateur courant, le changement
pankso@371 87 des permissions sur un fichier peut se faire en ligne de commande via
pankso@371 88 l'outils <code>chmod</code>. Pour créer un <code>script.sh</code> et le
pankso@371 89 rendre exécutable :
pankso@371 90 </p>
pankso@371 91 <pre>
pankso@371 92 $ touch script.sh
pankso@371 93 $ chmod +x script.sh
pankso@371 94 </pre>
pankso@371 95 <p>
pankso@371 96 Maintenant que vous avez un nouveau fichier exécutable, vous allez pouvoir
pankso@371 97 l'éditer. Vous pouvez continuer en restant dans le terminal et en utilisant
pankso@371 98 l'éditeur Nano (Ctrl+X pour enregistrer) ou en ouvrant l'IDE Geany sur le
pankso@371 99 fichier :
pankso@371 100 </p>
pankso@371 101 <pre>
pankso@371 102 $ nano script.sh
pankso@371 103 Ou :
pankso@371 104 $ geany script.sh &amp;
pankso@371 105 </pre>
pankso@371 106 <p>
pankso@371 107 Voici un &micro;script qui contient une variable <code>NAME</code> et qui en
pankso@371 108 affiche la valeur avec la commande <code>echo</code> :
pankso@371 109 </p>
pankso@371 110 <pre class="script">
pankso@371 111 #!/bin/sh
pankso@371 112
pankso@371 113 NAME="kayam"
pankso@371 114
pankso@371 115 echo "$NAME est sympa."
pankso@371 116
pankso@371 117 </pre>
pankso@371 118 <p>
pankso@371 119 Une fois que vous avez créé/modifié votre <code>script.sh</code>, il suffit
pankso@371 120 d'enregistrer et d'exécuter le script pour voir le résultat :
pankso@371 121 </p>
pankso@371 122 <pre>
pankso@371 123 $ ./script.sh
pankso@371 124 </pre>
pankso@371 125 <p>
pankso@371 126 Voilà pour cette brève introduction au scripts SHell. Pour aller plus loin, le
pankso@371 127 web regorge d'informations à ce sujet et regarder ce qu'on fait les autres
pankso@371 128 peut aussi aider.
pankso@371 129 </p>
pankso@371 130 <a name="dialog"></a>
pankso@371 131 <h3><font color="#6c0023">Dialog</font></h3>
pankso@371 132 <p>
pankso@371 133 Dialog permet de créer des interfaces graphique basées sur la console, telles
pankso@371 134 que 'tazkmap'. Le fichier de configuration de dialog est /etc/dialogrc, et/ou
pankso@371 135 ~/.dialogrc pour chaque utilisateur. Voici un simple exemple d'utilisation de
pankso@371 136 dialog via une console ou un terminal :
pankso@371 137 </p>
pankso@371 138 <pre>
pankso@371 139 $ dialog --title "Hello $USER" \
pankso@371 140 --msgbox "Message propulsé par dialog." 5 54
pankso@371 141 </pre>
pankso@371 142 <p>
pankso@371 143 Vous trouverez pleins d'exemples de scripts dans le répertoire /sample des
pankso@371 144 sources de dialog, que vous pouvez télécharger depuis:
pankso@371 145 <a href="http://invisible-island.net/dialog/dialog.html"
pankso@371 146 >invisible-island.net/dialog/dialog.html</a>. Download des sources avec
pankso@371 147 'wget' et décompression :
pankso@371 148 </p>
pankso@371 149 <pre>
pankso@371 150 $ wget ftp://invisible-island.net/dialog/dialog.tar.gz
pankso@371 151 $ tar xzf dialog.tar.gz
pankso@371 152 </pre>
pankso@371 153 <a name="geany"></a>
pankso@371 154 <h3><font color="#6c0023">Geany IDE</font></h3>
pankso@371 155 <p>
pankso@371 156 Geany est un IDE ou Environnement de Dévelopement Intégré, il est simple,
pankso@371 157 léger, et rapide, proposant la coloration syntaxique, les onglets,
pankso@371 158 pliage/dépliage du code, la complétion automatique, de l'aide à l'écriture.
pankso@371 159 Vous avez une liste des symboles, fonctions, méthodes, variables très utiles,
pankso@371 160 avec une petite flèche de signalisation. Et encore, sélecteur de couleurs
pankso@371 161 intégré, fenêtre de messages, lancement du script courant via le bouton
pankso@371 162 Exécuter, etc. C'est avec lui que nous avons créé cette page,
pankso@371 163 la documentation, et presque tout le site web (un peu avec Nano aussi).
pankso@371 164 </p>
pankso@371 165 <h4>Lancer Geany</h4>
pankso@371 166 <p>
pankso@371 167 Vous trouverez Geany dans le menu de JWM --&gt; Development --&gt; Geany.
pankso@371 168 Un fois lancé pour la première fois, vous pouvez ajuster vos préférences
pankso@371 169 via --&gt; Editer --&gt; Préférences. Vous pouvez aussi lancer Geany via un
pankso@371 170 terminal X et la commande :
pankso@371 171 </p>
pankso@371 172 <pre>
pankso@371 173 $ geany &amp;
pankso@371 174 </pre>
pankso@371 175 <p>
pankso@371 176 Note : Lors de la compilation des sources, le scripts <code>./configure</code>
pankso@371 177 propose l'option : <code>--enable-the-force</code>... Que l'on peut utiliser
pankso@371 178 si l'on penser avoir la force et être Luc Skywalker!
pankso@371 179 </p>
pankso@371 180 <a name="perl"></a>
pankso@371 181 <h3><font color="#6c0023">Perl ou Microperl - Coder/utiliser des scripts Perl</font></h3>
pankso@371 182 <p>
pankso@371 183 Sur SliTaz vous pouvez coder et utiliser le puissant langage de scripts Perl
pankso@371 184 via le binaire <code>perl</code> ou <code>microperl</code>. Microperl est une
pankso@371 185 version très allégée de Perl compilée à partir des sources officielles de Perl,
pankso@371 186 les scripts fonctionnant avec microperl sont complètement compatible avec la
pankso@371 187 version complète de Perl. C'est justement une des forces de Perl, il est portable
pankso@371 188 et fonctionne sur toutes les systèmes d'exploitations. Perl est un langage
pankso@371 189 interprété cela veut dire que le code n'a pas besoin d'être compilé et qu'il
pankso@371 190 peut être utilisé directement. A noter que sur SliTaz, <code>perl</code>
pankso@371 191 et/ou <code>microperl</code> se sont pas installé par défaut sur le LiveCD, vous
pankso@371 192 pouvez soit reconstruire votre propore ISO en incluant Perl ou installer via
pankso@371 193 le gestionnaire de paquets. A noter que le paquet Microperl fait mois d'1 Mb
pankso@371 194 et ne fournit aucun modules, juste le minimum :
pankso@371 195 </p>
pankso@371 196 <pre>
pankso@371 197 # tazpkg install perl
pankso@371 198 Ou :
pankso@371 199 # tazpkg install microperl
pankso@371 200 </pre>
pankso@371 201
pankso@371 202 <h4>Hello world!</h4>
pankso@371 203 <p>
pankso@371 204 Le but de ce &micro;script est d'afficher <em>Hello World</em>. Vous pouvez
pankso@371 205 commencer par créer le fichier et le rendre exécutable depuis la ligne de
pankso@371 206 commandes et l'éditer ensuite graphiquement avec l'IDE Geany. A noter que nous
pankso@371 207 nommons le scripts <code>hello.pl</code> mais que vous pouvez nommer un
pankso@371 208 script Perl comme bon vous semble, avec ou sans l'extension <code>.pl</code> :
pankso@371 209 </p>
pankso@371 210 <pre>
pankso@371 211 $ touch hello.pl
pankso@371 212 $ chmod +x hello.pl
pankso@371 213 $ geany hello.pl &amp;
pankso@371 214 </pre>
pankso@371 215 <p>
pankso@371 216 La première ligne d'un scripts Perl commence par définir le chemin vers
pankso@371 217 l'interprétateur Perl, généralement <code>/usr/bin/perl</code> et pour
pankso@371 218 afficher du texte il suffit d'utiliser la commande <code>print</code>.
pankso@371 219 Code à copier/coller. A noter que le langage Perl est sensible à la casse et
pankso@371 220 qu'une instruction devrait toujours se terminer par un point-virgule :
pankso@371 221 </p>
pankso@371 222 <pre class="script">
pankso@371 223 #!/usr/bin/perl
pankso@371 224 #
pankso@371 225
pankso@371 226 print "Hello World!\n";
pankso@371 227
pankso@371 228 </pre>
pankso@371 229 <p>
pankso@371 230 Pour exécuter et tester le script :
pankso@371 231 </p>
pankso@371 232 <pre>
pankso@371 233 $ ./hello.pl
pankso@371 234 </pre>
pankso@371 235
pankso@371 236 <h4>Scripts CGI et Perl</h4>
pankso@371 237 <p>
pankso@371 238 Les scripts CGI ont pour but d'afficher des pages web générées dynamiquement.
pankso@371 239 Le langage Perl assoicié au serveur web LightTPD vous permet d'utiliser
pankso@371 240 des scripts CGI via votre espace public ou via des hôtes virtuels. Perl est
pankso@371 241 tout à fait adapté au web 2.0 et permet de générer rapidement des pages xHTML.
pankso@371 242 Sur Slitaz, vous devez avoir installé Perl ou Microperl et
pankso@371 243 <a href="web-server.html#cgi-perl">configuré le serveur Web LightTPD</a> avant
pankso@371 244 de pouvoir utiliser des scripts CGI codé en Perl. A noter que par défaut vous
pankso@371 245 pouvez utiliser des scripts SHell (.sh) et les placer dans /cgi-bin/).
pankso@371 246 </p>
pankso@371 247 <p>
pankso@371 248 Une fois le server bien configuré, vous pouvez directement placer des scripts
pankso@371 249 CGI dans votre répertoire <code>$HOME/Public/cgi-bin</code> en utilisant
pankso@371 250 l'extension <code>.pl</code> ou <code>.cgi</code> et les visualiser en local
pankso@371 251 ou à distance. Exemple de script CGI utilisant Perl :
pankso@371 252 </p>
pankso@371 253 <pre class="script">
pankso@371 254 #!/usr/bin/perl
pankso@371 255 #
pankso@371 256 print "content-type : text/html\n\n";
pankso@371 257
pankso@371 258 print "Hello World!\n";
pankso@371 259
pankso@371 260 </pre>
pankso@371 261
pankso@371 262 <a name="python"></a>
pankso@371 263 <h3><font color="#6c0023">Python</font></h3>
pankso@371 264 <p>
pankso@371 265 Le langage de programmation Python est disponible sous forme de paquet
pankso@371 266 facilement installable. Un fois Python installé vous pouvez créer vos propre
pankso@371 267 scripts/programmes et utiliser des applications CGI via le serveur Web LightTPD
pankso@371 268 en prenant soin de <a href="web-server.html#cgi-python">configurer le serveur</a>
pankso@371 269 correctement. A noter que le dépôt Mercurial officiel de SliTaz fourni une
pankso@371 270 interface Web CGI/Python, c'est une solution adaptée à la production, robuste
pankso@371 271 et fiable. Pour installer le paquet <code>python</code> avec Tazpkg :
pankso@371 272 </p>
pankso@371 273 <pre>
pankso@371 274 # tazpkg get-install python
pankso@371 275 </pre>
pankso@371 276
pankso@371 277 <a name="ruby"></a>
pankso@371 278 <h3><font color="#6c0023">Ruby</font></h3>
pankso@371 279 <p>
pankso@371 280 Ruby est un langage de programmation interprété et orienté objet. Ruby
pankso@371 281 est fourni avec irb, un interpréteur de commandes interactif pour tester
pankso@371 282 en profondeur le fonctionnement du langage. Il existe même une version
pankso@371 283 web d'irb pour tester Ruby dans un navigateur. Ruby fourni aussi un
pankso@371 284 gestionnaire de paquet nommé <code>gem</code> et un framework pour créer
pankso@371 285 des applications Web nommé <code>rails</code>. Pour installer Ruby sur
pankso@371 286 SliTaz:
pankso@371 287 </p>
pankso@371 288 <pre>
pankso@371 289 $ tazpkg get-install ruby
pankso@371 290 </pre>
pankso@371 291 <p>
pankso@371 292 Le site oficell fourni toute la documentation utile à l'apprentissage du
pankso@371 293 langage facilement et efficacement:
pankso@371 294 <a href="http://www.ruby-lang.org/">www.ruby-lang.org</a>
pankso@371 295 </p>
pankso@371 296
pankso@371 297 <a name="toolchain"></a>
pankso@371 298 <h3><font color="#6c0023">Toolchain - Bibliothèques, compilateur C et outils associés</font></h3>
pankso@371 299 <p>
pankso@371 300 Pour compiler des logiciels depuis les sources ou son propre code, vous avez
pankso@371 301 au minimum, besoin de la chaîne d'outils de base (<em>toolchain</em>),
pankso@371 302 composée des outils Binutils, de la bibliothèque Glibc , du compilateur
pankso@371 303 GCC, des <em>headers</em> du noyau et de l'utilitaire Make. Cette chaîne
pankso@371 304 d'outils peut être installée via le gestionnaire de paquets Tazpkg et une
pankso@371 305 seule commande. A noter que cette <em>toolchain</em> est utilisée par les
pankso@371 306 développeurs de SliTaz pour compiler le système entier depuis les sources.
pankso@371 307 Pour installer les paquets via l'installation d'un meta paquet créant les
pankso@371 308 dépendances qu'il faut :
pankso@371 309 </p>
pankso@371 310 <pre>
pankso@371 311 # tazpkg get-install slitaz-toolchain
pankso@371 312 </pre>
pankso@371 313 <p>
pankso@371 314 L'installation de la toolchain permet de compiler beaucoup d'applications
pankso@371 315 de base et en mode texte. A noter que beaucoup de paquets compileront sans
pankso@371 316 problème en utilisant le SHell Ash de Busybox, mais d'autres paquets ne
pankso@371 317 compileront pas sans Bash. GNU bash est disponnible sous forme de paquet
pankso@371 318 ainsi que divers outils de développement de base tels que Flex, M4, Bison,
pankso@371 319 ou encore Pkg-config. Si vous cherchez pkg-config par exemple :
pankso@371 320 </p>
pankso@371 321 <pre>
pankso@371 322 $ tazpkg search pkg-config
pankso@371 323 </pre>
pankso@371 324 <p>
pankso@371 325 Si vous désirez compiler des applications utilsant les bibliothèques Ncurses,
pankso@371 326 vous devez installer le paquet <code>ncurses-dev</code> complet (par défaut
pankso@371 327 il n'y a que le paquet minimum installé). A noter que le paquet ncurses fournit
pankso@371 328 aussi divers petits programmes tels que <code>tic</code> ou <code>tack</code> :
pankso@371 329 </p>
pankso@371 330 <pre>
pankso@371 331 $ tazpkg search ncurses
pankso@371 332 </pre>
pankso@371 333
pankso@371 334 <!-- End of content -->
pankso@371 335 </div>
pankso@371 336
pankso@371 337 <!-- Footer. -->
pankso@371 338 <div id="footer">
pankso@371 339 <div class="footer-right"></div>
pascal@548 340 <a href="development.html#top">Haut de la page</a> |
pankso@371 341 <a href="index.html">Table des matières</a>
pankso@371 342 </div>
pankso@371 343
pankso@371 344 <div id="copy">
pascal@665 345 Copyright &copy; 2010 <a href="http://www.slitaz.org/">SliTaz</a> -
pankso@371 346 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
pankso@371 347 Documentation publiées sous
pankso@371 348 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
pankso@371 349 et codée en <a href="http://validator.w3.org/">xHTML 1.0 valide</a>.
pankso@371 350 </div>
pankso@371 351
pankso@371 352 </body>
pankso@371 353 </html>