slitaz-doc-wiki-data view pages/fr/scratchbook/base-apps.txt @ rev 142

Updated en:handbook:start to 4.0
author Christian Mesh meshca@clarkson.edu
date Mon Mar 19 22:02:10 2012 +0000 (2012-03-19)
parents
children
line source
1 ====== Applications de base ======
3 Installation et configuration des bibliothèques et des applications de base.
5 ===== À propos =====
7 Ce chapitre décrit l'installation des bibliothèque et des applications de base en mode texte, fournies avec SliTaz.
9 ==== Affecter une variable d'environnement ($fs) ====
11 Une variable d'environnement permet de ne pas spécifier tout le chemin vers le répertoire, mais simplement $NomDeVariable. Nous allons affecter un variable '$fs' pour indiquer le chemin vers le système de fichier racine 'rootfs'. Pour cela vous pouvez vous placer dans le répertoire de travail de SliTaz, et tapez:
13 # export fs=$PWD/rootfs
15 Pour vérifier:
17 # echo $fs
19 ===== bc-1.06 - Calculatrice en mode texte =====
21 L'application bc ([[http://www.gnu.org/software/bc/|www.gnu.org/software/bc/]]) fourni une petite calculette, lors de la compilation l'utilitaire dc est aussi construit mais SliTaz ne l'installe pas. A noter que dc est aussi disponible avec Busybox. Pour la copie de dc, il faut supprimer le liens de dc vers BusyBox si il existe. Nous utilisons un répertoire _pkg (package) pour l'installation. Un petit nettoyage des exécutables avec strip et copie des utilitaires:
23 # cd src
24 # wget http://ftp.gnu.org/pub/gnu/bc/bc-1.06.tar.gz
25 # tar xzfv bc-1.06.tar.gz
26 # cd bc-1.06
27 # ./configure --prefix=/usr --infodir=/usr/share/info \\
28 --mandir=/usr/share/man
29 # make
30 # make DESTDIR=$PWD/_pkg install
31 # strip -vs _pkg/usr/bin/*
32 # cp -avi _pkg/usr/bin/bc $fs/usr/bin
34 ==== libs ====
36 Un petit ldd sur bc devrait donner:
37 <file>
38 libc.so.6 => /lib/libc.so.6 (0x40029000)
39 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
40 </file>
41 ===== zlib-1.2.3 - Bibliothèques de compression =====
43 Le paquet zlib ([[http://www.zlib.net/|http://www.zlib.net/]]) fourni des fonctions de compression et de décompression, utilisées entre autre, par le serveur SSH dropbear et le serveur X:
45 # cd ..
46 # wget http://www.gzip.org/zlib/zlib-1.2.3.tar.bz2
47 # tar xjfv zlib-1.2.3.tar.bz2
48 # cd zlib-1.2.3
49 # ./configure --shared --prefix=/usr
50 # make
51 # strip -vs libz.so*
52 # cp -av libz.so* $fs/usr/lib
54 ===== pcre-7.4 - Expressions régulières compatible perl =====
56 Le paquet pcre ([[http://www.pcre.org/|http://www.pcre.org/]]) fourni les bibliothèques des fonctions d'expressions régulières compatible Perl PCRE, utilisées entre autre par le serveur web LightTPD:
58 # cd ..
59 # wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.4.tar.gz
60 # tar xzfv pcre-7.4.tar.gz
61 # cd pcre-7.4
62 # ./configure --prefix=/usr
63 # make
64 # make DESTDIR=$PWD/_pkg install
65 # strip -vs _pkg/usr/bin/*
66 # strip -vs _pkg/usr/lib/*
67 # cp -av _pkg/usr/bin/* $fs/usr/bin
68 # cp -av _pkg/usr/lib/*.so* $fs/usr/lib
70 ===== e2fsprogs-1.39 - Utilitaires de gestion des systèmes de fichiers =====
72 Le paquet e2fsprogs ([[http://e2fsprogs.sourceforge.net/|http://e2fsprogs.sourceforge.net/]]) fournit les utilitaires pour la manipulation des systèmes de fichiers ext3 et ext2. Nous n'allons pas tout prendre, car cela nous fait gagner de la place. A noter que nous utilisons fsck de Busybox:
74 # cd ..
75 # wget http://puzzle.dl.sourceforge.net/sourceforge/e2fsprogs/e2fsprogs-1.39.tar.gz
76 # tar xzf e2fsprogs-1.39.tar.gz
77 # cd e2fsprogs-1.39
78 # ./configure --prefix=/usr --with-root-prefix="" \\
79 --enable-elf-shlibs --disable-evms --sysconfdir=/etc \\
80 --infodir=/usr/share/info --mandir=/usr/share/man
81 # make
82 # make DESTDIR=$PWD/_pkg install
83 # strip -vs _pkg/sbin/*
84 # strip -vs _pkg/lib/*
85 # strip -vs _pkg/usr/bin/*
86 # strip -vs _pkg/usr/sbin/*
87 # strip -vs _pkg/usr/lib/*
89 Installation des utilitaires, des fichiers de configuration, et des bibliothèques dans le rootfs de SliTaz. Attention si vous avez décidé d'utiliser fsck, il ne faut pas écraser un lien Busybox:
91 # cp -i _pkg/sbin/{badblocks,blkid,dumpe2fs,e2fsck,e2image} $fs/sbin
92 # cp -i _pkg/sbin/{e2label,findfs,logsave,mke2fs,mkfs.*} $fs/sbin
93 # cp -i _pkg/sbin/{resize2fs,tune2fs} $fs/sbin
94 # cp -a _pkg/lib/* $fs/lib
95 # rm -rf $fs/lib/libss*
96 # cp -a _pkg/etc/* $fs/etc
97 # cp -a _pkg/usr/bin/* $fs/usr/bin
98 # cp -a _pkg/usr/sbin/* $fs/usr/sbin
99 # cp -ad _pkg/usr/lib/*.so $fs/usr/lib
100 # rm -rf $fs/usr/lib/libss*
102 Vous pouvez aussi copier le fichier de la locale pour le français:
104 # mkdir $fs/usr/share/locale
105 # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale
107 ===== dropbear-0.50 - Client et serveur SSH légé =====
109 Dropbear ([[http://matt.ucc.asn.au/dropbear/dropbear.html|http://matt.ucc.asn.au/dropbear/dropbear.html]]) est un petit client et serveur sécurisé, supportant le protocole SSH 2. Dropbear est compatible avec openSSH, et utilise ~/.ssh/authorized_keys pour la gestion des clés public. Dropbear fournit aussi une version de scp, qu'il faut compiler avec 'manke scp':
111 # cd ..
112 # wget http://matt.ucc.asn.au/dropbear/releases/dropbear-0.50.tar.gz
113 # tar xzf dropbear-0.50.tar.gz
114 # cd dropbear-0.50
115 # ./configure --prefix=/usr
116 # make
117 # make scp
118 # make DESTDIR=$PWD/_pkg install
119 # strip -v scp
120 # strip -v _pkg/usr/bin/*
121 # strip -v _pkg/usr/sbin/*
123 Installation du client, et des outils associés dans /usr/bin, et installation du serveur dans /usr/sbin:
125 # cp scp $fs/usr/bin
126 # cp -a _pkg/usr/bin/* $fs/usr/bin
127 # cp -a _pkg/usr/sbin/* $fs/usr/sbin
129 ==== libs ====
130 <file>
131 libutil.so.1 => /lib/libutil.so.1 (0x40025000)
132 libz.so.1 => /usr/lib/libz.so.1 (0x40028000)
133 libcrypt.so.1 => /lib/libcrypt.so.1 (0x4003b000)
134 libc.so.6 => /lib/libc.so.6 (0x40068000)
135 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
136 </file>
137 Copie de la bibliothèque libutil.so.1 dans $fs/lib, si ce n'est pas déjà le cas. Les autres bibliothèques devraient être présentes, suite à la construction du système de base:
139 # cp -a /lib/libutil* $fs/lib
141 ==== Configurer Dropbear ====
143 Les fichiers de configuration utilisateur sont dans ~/.ssh, contenant authorized_keys et known_hosts. Les répertoire ~/.ssh et le fichier known_hosts, sont créés automatiquement la première fois que l'utilisateur lance dbclient. Les fichiers de configuration système du serveur Dropbear sont par défaut dans /etc/dropbear:
145 # mkdir $fs/etc/dropbear
147 Pour que le serveur fonctionnent, il faut générer les clés sécurisées avant de démarrer le serveur sur SliTaz. Vous pouvez utiliser dropbearkey avec les commandes ci-dessous:
149 # dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
150 # dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
152 Sur SliTaz vous pouvez démarrer le serveur SSH avec la commande :
154 # /etc/init.d/dropbear start
156 ===== lighttpd-1.4.18 - Serveur web HTTP =====
158 LightTPD ([[http://www.lighttpd.net/|www.lighttpd.net]]) est un serveur web puissant, léger, et sécurisé. Le projet est très actif, et la configuration du serveur et simple. Il supporte les hôtes virtuels, les scripts CGI, et il permet une gestion intelligente de la charge CPU.
160 # cd ..
161 # wget http://www.lighttpd.net/download/lighttpd-1.4.18.tar.gz
162 # tar xzf lighttpd-1.4.18.tar.gz
163 # cd lighttpd-1.4.18
164 # ./configure -enable-shared --disable-ipv6 --prefix=/usr \\
165 --libdir=/usr/lib/lighttpd --mandir=/usr/share/man
166 # make
167 # make DESTDIR=$PWD/_pkg install
168 # strip -vs _pkg/usr/bin/*
169 # strip -vs _pkg/usr/sbin/*
170 # strip -vs _pkg/usr/lib/lighttpd/*
172 Installation du serveur, et des bibliothèques générées. Nous allons ensuite supprimer copier seulement quelques modules (9) :
174 # cp _pkg/usr/bin/* $fs/usr/bin
175 # cp _pkg/usr/sbin/* $fs/usr/sbin
176 # mkdir $fs/usr/lib/lighttpd
177 Modules :
178 # cp _pkg/usr/lib/lighttpd/mod_access.so $fs/usr/lib/lighttpd
179 # cp _pkg/usr/lib/lighttpd/mod_accesslog.so $fs/usr/lib/lighttpd
180 # cp _pkg/usr/lib/lighttpd/mod_alias.so $fs/usr/lib/lighttpd
181 # cp _pkg/usr/lib/lighttpd/mod_auth.so $fs/usr/lib/lighttpd
182 # cp _pkg/usr/lib/lighttpd/mod_cgi.so $fs/usr/lib/lighttpd
183 # cp _pkg/usr/lib/lighttpd/mod_compress.so $fs/usr/lib/lighttpd
184 # cp _pkg/usr/lib/lighttpd/mod_rewrite.so $fs/usr/lib/lighttpd
185 # cp _pkg/usr/lib/lighttpd/mod_status.so $fs/usr/lib/lighttpd
186 # cp _pkg/usr/lib/lighttpd/mod_userdir.so $fs/usr/lib/lighttpd
188 ==== libs ====
190 Il ne devrait vous manquer que libdl.so.2, que nous allons copier:
192 # cp -a /lib/libdl* $fs/lib
194 ==== /var/www - Racine des documents du serveur ====
196 Le répertoire /var/www est le répertoire racine des documents servis par défaut. Vous y avez accès via l'url http://localhost/. Ce répertoire peut contenir une page "index.html" s'affichant automatiquement lors d'une requête. Nous allons créer le répertoire /var/www, à vous de voir ce que vous voulez y mettre :
198 # mkdir -p $fs/var/www
200 ==== lighttpd.conf - Fichier de configuration de LightTPD ===
202 Le fichier de configuration principale de LightTPD se trouve dans /etc/lighttpd, et se nomme lighttpd.conf. Le fichier de configuration fournit par SliTaz est auto documenté, il suffit de le parcourir. Vous trouverez d'autres exemples sur le site web de LightTPD. Vous trouverez aussi un exemple de configuration dans /doc de l'archive de LightTPD:
204 # cp -a ../slitaz-tools-1.1/etc/lighttpd $fs/etc
206 Création du répertoire contenant les fichiers de log:
208 # mkdir $fs/var/log/lighttpd
210 ==== Utilisateur et groupe www ====
212 Nous allons ajouter un utilisateur et un groupe pour le serveur web, cela ajoute de la sécurité, et il n'y a aucune raison pour qu'il tourne sous root. L'utilisateur par défaut sur SliTaz est 'www', mais vous pouvez changer cela dans le fichier de configuration lighttpd.conf. L'application adduser de Busybox ayant des limitations nous ajoutons l'utilisateur 'www' manuellement. Nous changeons aussi les permissions sur le répertoire des logs du serveur web:
214 # echo "www:x:80:80:www:/var/www:/bin/sh" >> $fs/etc/passwd
215 # echo "www:*:13509:0:99999:7:::" >> $fs/etc/shadow
216 # echo "www:*:13509:0:99999:7:::" >> $fs/etc/shadow-
217 # chroot $fs /bin/ash
218 /# addgroup -g 80 www
219 /# chown www.www /var/log/lighttpd
220 # exit
222 Pour démarrer le serveur web vous pouvez utiliser le script /etc/init.d/lighttpd fourni dans SliTaz tools, en tapant la commande "/etc/init.d/lighttpd start". Vous pouvez aussi automatiser son lancement au boot avec un lien de /etc/init.d/lighttpd pointant vers /etc/rc.d/60lighttpd.
224 ===== iptables-1.3.7 - Netfilter, pare-feu Linux =====
226 Netfilter ([[http://www.netfilter.org/|www.netfilter.org]]) est le module qui fournit au noyau Linux les fonctions de pare-feu, de partage de connexions internet (NAT) et d'historisation du trafic réseau. La commande iptables permet de configurer Netfilter, iptables-restore et iptables-save permettent de sauvegarder/restaurer la configuration Netfilter:
228 # cd ..
229 # wget http://www.netfilter.org/projects/iptables/files/iptables-1.3.7.tar.bz2
230 # tar xjf iptables-1.3.7.tar.bz2
231 # cd iptables-1.3.7
232 # make KERNEL_DIR=../linux-2.6.20 BINDIR=/sbin \\
233 LIBDIR=/lib MANDIR=/usr/share/man
234 # make KERNEL_DIR=../linux-2.6.20 BINDIR=/sbin \\
235 LIBDIR=/lib MANDIR=/usr/share/man \\
236 DESTDIR=$PWD/_pkg install
237 # strip _pkg/sbin/*
238 # strip _pkg/lib/iptables/*
240 Installation des applications iptables*, et des bibliothèques suffisantes pour un firewall basique:
242 # cp -a _pkg/sbin/iptables* $fs/sbin
243 # mkdir $fs/lib/iptables
244 # cp -a _pkg/lib/iptables/{libipt_standard.so,libipt_conntrack.so} \\
245 $fs/lib/iptables
246 # cp -a _pkg/lib/iptables/{libipt_tcp.so,libipt_udp.so} $fs/lib/iptables
248 Pour satifaire les dépendances d'iptables, il faut copier la bibliothèque libnsl*:
250 # cp -va /lib/libnsl* $fs/lib/tls
251 # strip $fs/lib/libnsl*
253 ===== sqlite-3.5.1 - Petit moteur de base de données SQL =====
255 Ce paquet fourni "sqlite3" et les bibliothèques "sqlite3.so*" ([[http://www.sqlite.org/|www.sqlite.org]]). SQLite est intégré directement aux programmes en utilisant des fichiers de bases de données, il est performant et rapide:
257 # cd ..
258 # wget http://www.sqlite.org/sqlite-3.5.1.tar.gz
259 # tar xzf sqlite-3.5.1.tar.gz
260 # cd sqlite-3.5.1
261 # ./configure --prefix=/usr --disable-tcl
262 # make
263 # make DESTDIR=$PWD/_pkg install
264 # strip _pkg/usr/lib/*.so*
265 # strip _pkg/usr/bin/*
267 Installation des bibliothèques et de l'utilitaire "sqlite3" dans le rootfs de SliTaz:
269 # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
270 # cp -a _pkg/usr/bin/* $fs/usr/bin
272 ===== cdrkit-1.1.5 - Outils de manipulation de cdrom et images ISO =====
274 cdrkit ([[http://www.cdrkit.org/|www.cdrkit.org]]) fournit des outils de manipulation de cdrom. SliTaz installe par défaut wodim pour la gravure et genisoimage pour la création d'image ISO (c'est le paquet cdrkit-base-1.1.5). La compilation est un peu particulière (cmake), mais ne devrait pas poser trop de problèmes:
276 # cd ..
277 # wget http://cdrkit.org/releases/cdrkit-1.1.5.tar.gz
278 # tar xzf cdrkit-1.1.5.tar.gz
279 # cd cdrkit-1.1.5
280 # make
281 # make install PREFIX=$PWD/_pkg/usr
282 # strip -v _pkg/usr/bin/*
283 # strip -v _pkg/usr/sbin/*
284 # cp _pkg/usr/bin/genisoimage $fs/usr/bin
285 # cp _pkg/usr/bin/wodim $fs/usr/bin
287 Copie de la bibliothèque libcap.so.1 requise par wodim:
289 # cp -a /lib/libcap.so* $fs/lib
291 ===== cpio-2.8 - Archiveur ====
293 cpio ([[http://www.gnu.org/software/cpio/|http://www.gnu.org/software/cpio/]]) fournit des outils de manipulation des archives au format cpio. Ce format d'archive est utilisé pour les paquets SliTaz et l'image initramfs du cdrom. À noter que Busybox fournit aussi une version de cpio qui permet seulemnt de désarchiver:
295 # cd ..
296 # wget ftp://sunsite.cnlab-switch.ch/mirror/gnu/cpio/cpio-2.8.tar.gz
297 # tar xzf cpio-2.8.tar.gz
298 # cd cpio-2.8
299 # ./configure --prefix=/usr --bindir=/bin \\
300 --libexecdir=/usr/bin --mandir=/usr/share/man \\
301 --infodir=/usr/share/info
302 # make
303 # make DESTDIR=$PWD/_pkg install
304 # strip -v _pkg/bin/*
305 # strip -v _pkg/usr/bin/*
307 Installation de "cpio" dans /bin et de "rmt" dans /usr/bin. Vous pouvez aussi installer les fichiers de localisation pour le français:
309 # cp -a _pkg/bin/* $fs/bin
310 # cp -a _pkg/usr/bin/* $fs/usr/bin
311 # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale
313 ===== microperl-5.8.8 - Un tout petit Perl ====
315 Microperl est une micro implémentation de Perl permettant d'utiliser la plus part des fonctions de base fournies par le puissant langage qu'est Perl. Vous trouverez plus d'infos dans l'archine source et le fichier "README.micro". Nous appliquons un petit "sed" sur le fichier de configuration, pour que microperl cherche les modules dans "/usr/lib/perl5". Nous créons aussi un lien pour que les scripts "#/usr/bin/perl" fonctionnent :
317 # wget http://ftp.funet.fi/pub/CPAN/src/perl-5.8.8.tar.gz
318 # tar xzf perl-5.8.8.tar.gz
319 # cd perl-5.8.8
320 # sed -i s/'usr\\/local'/'usr'/ uconfig.sh
321 # sed -i s/'perl5\\/5.9'/'perl5'/ uconfig.sh
322 # sed -i s/'unknown'/'i486-pc-linux-gnu'/ uconfig.sh
323 # make -f Makefile.micro regen_uconfig
324 # make -f Makefile.micro
325 # strip microperl
326 # cp microperl $fs/usr/bin
327 # chroot $fs /bin/ash
328 /# cd /usr/bin
329 /# ln -s microperl perl
330 /# exit
332 ===== module-init-tools-3.2 - Outils de manipulation des modules du noyau =====
334 Les [[http://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/|module-init-tools]] de kernel.org, modprobe, insmod, rmmod, lsmod, que BusyBox fournit aussi. Nous avons fait le choix de les utiliser car nous pouvons compiler modutils/modprobe pour qu'il supportte les modules compressés (.gz), afin de gagner de la place. Pour cela il faut utiliser l'option --enable-zlib. Ensuite c'est le nettoyage, et la copie des binaires. Nous ne prenons pas tout ce qui a été créé, seulement ce dont nous avons besoin, depmod, insmod, modinfo, modprobe, rmmod dans /sbin, et lsmod dans /bin.
336 # cd ..
337 # wget http://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2
338 # tar xjf module-init-tools-3.2.tar.bz2
339 # cd module-init-tools-3.2
340 # ./configure --enable-zlib --prefix=/usr --sbindir=/sbin --bindir=/bin \\
341 --sysconfdir=/etc --infodir=/usr/share/info --mandir=/usr/share/man
342 # make
343 # make DESTDIR=$PWD/_pkg install
344 # strip -v _pkg/sbin/{depmod,insmod,modinfo,modprobe,rmmod}
345 # strip -v _pkg/bin/lsmod
346 # cp -i _pkg/sbin/{depmod,insmod,modinfo,modprobe,rmmod} $fs/sbin
347 # cp -i _pkg/bin/lsmod $fs/bin
348 # cd ..
350 ===== Copie des modules du kernel =====
352 Copie des fichier depuis linux-2.6.20/_pkg.
354 # cp -a linux-2.6.20/_pkg/lib/* $fs/lib
356 ==== Compression des modules du kernel ====
358 Compression des modules, cette opération permet de ganger 50% de place environ, nous commençons par nous déplacer dans le rootfs , puis nous cherchons tous les fichiers portant l'extension ".ko" pour les compresser. Vous pouvez aussi faire cela avec le script 'gzmodtaz.sh' contenu dans SliTaz tools:
360 # cd $fs
362 Avec 'gztazmod.sh':
364 # cp -v ../src/slitaz-tools-1.1/utils/gztazmod.sh sbin
365 # ./sbin/gztazmod.sh lib/modules/2.6.20-slitaz
367 Ou à la main:
369 # cd lib/modules/2.6.20-slitaz
370 # find . -name "*.ko" -exec gzip '{}' \\;
371 # sed 's/\\.ko/.ko.gz/g' modules.dep > tmp.dep
372 # rm modules.dep
373 # mv tmp.dep modules.dep
375 ===== Génération de l'initramfs, et d'une image ISO =====
377 Pour créer une nouvelle image ISO vous pouvez utiliser 'mktaziso' contenu dans [[http://www.slitaz.org/get/tools.html|SliTaz tools]]. Ou vous pouvez créer un nouvelle image initramfs, et la copier dans /boot de la racine de cd-rom (rootcd), et pour finir créer un image ISO avec genisoimage:
379 # cd $fs
380 # find . -print | cpio -o -H newc | gzip -9 > ../rootfs.gz
381 # cd ..
382 # cp rootfs.gz rootcd/boot
383 # genisoimage -R -o slitaz-test.iso -b boot/isolinux/isolinux.bin \\
384 -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \\
385 -V "SliTaz" -input-charset iso8859-1 -boot-info-table rootcd
387 Test iso image:
389 # qemu -cdrom slitaz-test.iso
391 ==== Suite ====
393 Le prochain chapitre se nomme [[base-ncurses|Base ncurses.]] Il décrit l'installation et la configuration des bibliothèques et d'applications ncurses.