website view fr/doc/handbook/development.html @ rev 1344

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