slitaz-doc-wiki-data annotate pages/fr/handbook/chroot.txt @ rev 4

Add pages/fr folder.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Feb 26 12:13:35 2011 +0000 (2011-02-26)
parents
children 7f77649ceb97
rev   line source
slaxemulator@4 1 ====== Environnement chrooté ======
slaxemulator@4 2
slaxemulator@4 3 Ce document décrit les étapes à réaliser pour créer un environnement chrooté afin de changer la racine du système pour travailler. Cela permet de compiler, tester et développer SliTaz sans risques pour le système hôte depuis lequel on travaille. Ce système hôte peut être SliTaz installée en dur ou tout autre système GNU/Linux tel que Debian, Fedora, PCLinuxOS, etc. On peut aussi créer un environnement chrooté en mode LiveCD associé à un média USB. Les seuls prérequis sont d'avoir une image ISO de SliTaz à disposition et un peu de temps. A noter que toutes les opérations sont réalisées en tant qu'administrateur (//root//).
slaxemulator@4 4
slaxemulator@4 5 ===== Préparer l'environnement =====
slaxemulator@4 6
slaxemulator@4 7 Pour commencer, il faut extraire le contenu de l'image ISO dans le répertoire qui va servir au chroot. Le répertoire de chroot peut se créer à l'endroit que l'on veut, nous utilisons un répertoire ///home/slitaz/chroot-env//. Pour extraire le contenu d'une image ISO, il faut la monter en //loop// sur un répertoire, pour ensuite copier le système de fichiers racine compressé (//rootfs.gz//) dans le répertoire de chroot. En supposant que l'ISO est dans le répertoire courant :
slaxemulator@4 8
slaxemulator@4 9 <code>
slaxemulator@4 10 # mkdir /tmp/loop
slaxemulator@4 11 # mount -o loop slitaz-3.0.iso /tmp/loop
slaxemulator@4 12 # mkdir -p /home/slitaz/chroot-env
slaxemulator@4 13 # cp /tmp/loop/boot/rootfs.gz \
slaxemulator@4 14 /home/slitaz/chroot-env
slaxemulator@4 15 # umount /tmp/loop
slaxemulator@4 16 </code>
slaxemulator@4 17
slaxemulator@4 18 Maintenant qu'on a une copie du système de fichiers compressé, il faut le décompresser et le dés-archiver (c'est une archive ''cpio'' compressée avec lzma ou gzip). Pour finir cette étape de préparation et continuer, on peut retirer le //rootfs// qui n'est plus utilisé :
slaxemulator@4 19
slaxemulator@4 20 <code>
slaxemulator@4 21 # cd /home/slitaz/chroot-env
slaxemulator@4 22 # (zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so) | cpio -id
slaxemulator@4 23 # rm rootfs rootfs.gz
slaxemulator@4 24 </code>
slaxemulator@4 25
slaxemulator@4 26 Si le dés-archivage du rootfs compressé avec LZMA échoue en utilisant la première méthode vous pouvez utiliser:
slaxemulator@4 27
slaxemulator@4 28 <code>
slaxemulator@4 29 # unlzma rootfs.gz -S .gz
slaxemulator@4 30 # cat rootfs | cpio -id
slaxemulator@4 31 </code>
slaxemulator@4 32
slaxemulator@4 33 ===== Utiliser l'environnement =====
slaxemulator@4 34
slaxemulator@4 35 Pour utiliser l'environnement chrooté, il suffit de monter quelques systèmes de fichier virtuels et d'utiliser la commande ''chroot''. Pour se simplifier la vie on peut rapidement créer un petit script automatisant le chroot. Exemple en utilisant le répertoire de chroot ///home/slitaz/chroot-env// et en créant un script nommé //chroot_in_env.sh// dans ///home/slitaz//. A noter que le contenu du script n'a pas besoin d'être tapé mais simplement copié/coller dans le terminal et que sur un autre système que SliTaz vous pouvez dé-commenter les lignes montant/démontant ///dev// et ///tmp// :
slaxemulator@4 36 <code> # cat > /home/slitaz/chroot_in_env.sh << "EOF"
slaxemulator@4 37
slaxemulator@4 38 #!/bin/sh
slaxemulator@4 39 # Chroot in SliTaz to hack.
slaxemulator@4 40 #
slaxemulator@4 41 ROOTFS="/home/slitaz/chroot-env"
slaxemulator@4 42
slaxemulator@4 43 # Mount virtual Kernel file systems and chroot.
slaxemulator@4 44 #
slaxemulator@4 45 #mount --bind /dev $ROOTFS/dev
slaxemulator@4 46 #mount --bind /tmp $ROOTFS/tmp
slaxemulator@4 47 mount -t proc proc $ROOTFS/proc
slaxemulator@4 48 mount -t sysfs sysfs $ROOTFS/sys
slaxemulator@4 49 mount -t devpts devpts $ROOTFS/dev/pts
slaxemulator@4 50 mount -t tmpfs shm $ROOTFS/dev/shm
slaxemulator@4 51
slaxemulator@4 52 echo "Chrooting into $ROOTFS... "
slaxemulator@4 53 chroot $ROOTFS /bin/sh --login
slaxemulator@4 54
slaxemulator@4 55 # Unmount virtual Kernel file systems on exit.
slaxemulator@4 56 #
slaxemulator@4 57 umount $ROOTFS/dev/shm
slaxemulator@4 58 umount $ROOTFS/dev/pts
slaxemulator@4 59 umount $ROOTFS/sys
slaxemulator@4 60 umount $ROOTFS/proc
slaxemulator@4 61 #umount $ROOTFS/tmp
slaxemulator@4 62 #umount $ROOTFS/dev
slaxemulator@4 63
slaxemulator@4 64 echo "Exiting $ROOTFS chroot environment... "
slaxemulator@4 65
slaxemulator@4 66 EOF
slaxemulator@4 67
slaxemulator@4 68 </code>
slaxemulator@4 69
slaxemulator@4 70 Pour finir et tester l'environnement, il suffit de rendre le script exécutable et le lancer :
slaxemulator@4 71
slaxemulator@4 72 <code>
slaxemulator@4 73 # chmod +x /home/slitaz/chroot_in_env.sh
slaxemulator@4 74 # sh /home/slitaz/chroot_in_env.sh
slaxemulator@4 75 </code>
slaxemulator@4 76
slaxemulator@4 77 === Activer le réseau ===
slaxemulator@4 78
slaxemulator@4 79 Pour avoir le réseau afin de télécharger, naviguer en mode texte et installer des paquets de développement, il suffit de lancer le client DHCP sur la bonne interface, exemple avec //eth1// :
slaxemulator@4 80
slaxemulator@4 81 <code> # udhcpc -i eth1 </code>
slaxemulator@4 82
slaxemulator@4 83 === Installer des paquets ===
slaxemulator@4 84
slaxemulator@4 85 Si le réseau est fonctionnel, il suffit de recharger la liste des paquets et utiliser ''tazpkg get-install'' pour installer de nouveaux paquets. Si la connexion n'est pas possible, on peut télécharger les paquets du miroir depuis un autre système, les copier dans l'environnement chrooté et les installer via la commande ''tazpkg install''. Pour installer la base des outils de compilation :
slaxemulator@4 86
slaxemulator@4 87 <code> # tazpkg recharge
slaxemulator@4 88 # tazpkg get-install slitaz-toolchain </code>
slaxemulator@4 89
slaxemulator@4 90 Une fois l'environnement configuré, on peut compiler des applications depuis les sources pour en créer des paquets, tester des scripts et autre. Le chapitre [[en:handbook:development|développement]] du Handbook et le [[fr:cookbook:start|Cookbook] devraient aider à aller plus loin.
slaxemulator@4 91
slaxemulator@4 92 === Sortir de l'environnement ===
slaxemulator@4 93
slaxemulator@4 94 Pour sortir de l'environnement chrooté il suffit de taper ''exit'', le script //chroot_in_env.sh// va finir son rôle en démontant le systèmes de fichiers virtuels propre au noyau Linux :
slaxemulator@4 95
slaxemulator@4 96 <code>
slaxemulator@4 97 # exit
slaxemulator@4 98 #
slaxemulator@4 99 </code>