website annotate doc/handbook/chroot-env.html @ rev 231

en: Typos (again)
author Paul Issott <paul@slitaz.org>
date Sun Dec 28 20:52:19 2008 +0000 (2008-12-28)
parents
children a33277122930
rev   line source
pankso@4 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
pankso@4 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
pankso@4 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
pankso@4 4 <head>
pankso@4 5 <title>SliTaz Handbook - Chroot env</title>
pankso@4 6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
pankso@4 7 <meta name="description" content="SliTaz chroot environnement chrooté développer tester" />
pankso@4 8 <meta name="expires" content="never" />
pankso@4 9 <meta name="modified" content="2007-12-03 12:30:00" />
pankso@4 10 <meta name="publisher" content="www.slitaz.org" />
pankso@4 11 <meta name="author" content="Christophe Lincoln"/>
pankso@4 12 <link rel="shortcut icon" href="favicon.ico" />
pankso@4 13 <link rel="stylesheet" type="text/css" href="book.css" />
pankso@4 14 </head>
pankso@4 15 <body bgcolor="#ffffff">
pankso@4 16
pankso@4 17 <!-- Header and quick navigation -->
pankso@4 18 <div id="header">
pankso@4 19 <div align="right" id="quicknav">
pankso@4 20 <a name="top"></a>
pankso@4 21 <a href="hacking-livecd.html">Hacking LiveCD</a> |
pankso@4 22 <a href="index.html">Table des matières</a>
pankso@4 23 </div>
pankso@4 24 <h1><font color="#3E1220">SliTaz Handbook</font></h1>
pankso@4 25 </div>
pankso@4 26
pankso@4 27 <!-- Content. -->
pankso@4 28 <div id="content">
pankso@4 29 <div class="content-right"></div>
pankso@4 30
pankso@4 31 <h2><font color="#DF8F06">Chroot environment</font></h2>
pankso@4 32
pankso@4 33 <p>
pankso@4 34 Ce document décrit les étapes à réaliser pour créer un environnement chrooté,
pankso@4 35 afin de changer la racine du système pour travailler. Cela permet de compiler,
pankso@4 36 tester et développer SliTaz sans risques pour le système hôte depuis lequel
pankso@4 37 on travaille. Ce système hôte peut être SliTaz installée en dur ou tout autre
pankso@4 38 système GNU/Linux tel que Debian, Fedora, PCLinuxOS, etc. On peut aussi créer
pankso@4 39 un environnement chrooté en mode LiveCD associé à un media USB. Les seuls
pankso@4 40 prérequis sont d'avoir une image ISO de SliTaz à disposition et un peu de
pankso@4 41 temps. A noter que toutes les opérations sont réalisées en tant
pankso@4 42 qu'administrateur (<em>root</em>).
pankso@4 43 </p>
pankso@4 44 <h3><font color="#6c0023">Préparer l'environnement</font></h3>
pankso@4 45 <p>
pankso@4 46 Pour commencer, il faut extraire le contenu de l'image ISO dans le répertoire
pankso@4 47 qui va servir au chroot. Le répertoire de chroot peut se créer à l'endroit que
pankso@4 48 l'on veut, nous utilisons un répertoire <code>/home/slitaz/chroot-env</code>.
pankso@4 49 Pour extraire le contenu d'une image ISO, il faut la monter en <em>loop</em>
pankso@4 50 sur un répertoire, pour ensuite copier le système de fichiers racine
pankso@4 51 compressé (<code>rootfs.gz</code>) dans le répertoire de chroot. En
pankso@4 52 supposant que l'ISO est dans le répertoire courant :
pankso@4 53 </p>
pankso@4 54 <pre>
pankso@4 55 # mkdir /tmp/loop
pankso@4 56 # mount -o loop slitaz-cooking.iso /tmp/loop
pankso@4 57 # mkdir -p /home/slitaz/chroot-env
pankso@4 58 # cp /tmp/loop/boot/rootfs.gz \
pankso@4 59 /home/slitaz/chroot-env
pankso@4 60 # umount /tmp/loop
pankso@4 61 </pre>
pankso@4 62 <p>
pankso@4 63 Maintenant qu'on a une copie du système de fichiers compressé, il faut le
pankso@4 64 décompresser et le désarchiver (c'est une archive <code>cpio</code> compressée
pankso@4 65 avec lzma ou gzip). Pour finir cette étape de préparation et continuer, on
pankso@4 66 peut retirer le <code>rootfs</code> qui n'est plus utilisé :
pankso@4 67 </p>
pankso@4 68 <pre>
pankso@4 69 # cd /home/slitaz/chroot-env
pankso@4 70 # (zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so) | cpio -id
pankso@4 71 # rm rootfs rootfs.gz
pankso@4 72 </pre>
pankso@4 73 <p>
pankso@4 74 Si le désarchivage du rootfs compressé avec LZMA échoue en utilisant la
pankso@4 75 première méthode vous pouvez utiliser:
pankso@4 76 </p>
pankso@4 77 <pre>
pankso@4 78 # unlzma rootfs.gz -S .gz
pankso@4 79 # cat rootfs | cpio -id
pankso@4 80 </pre>
pankso@4 81
pankso@4 82 <h3><font color="#6c0023">Utiliser l'environnement</font></h3>
pankso@4 83 <p>
pankso@4 84 Pour utiliser l'environnemnt chrooté, il suffit de monter quelques systèmes
pankso@4 85 de fichier virtuels et d'utiliser la commande <code>chroot</code>. Pour se
pankso@4 86 simplifier la vie on peut rapidement créer un petit script automatisant
pankso@4 87 le chroot. Exemple en utilisant le répertoire de chroot
pankso@4 88 <code>/home/slitaz/chroot-env</code> et en créant un script nommé
pankso@4 89 <code>chroot_in_env.sh</code> dans <code>/home/slitaz</code>. A noter que
pankso@4 90 le contenu du script n'a pas besoin d'être tapé mais simplement copié/coller
pankso@4 91 dans le terminal et que sur un autre système que SliTaz vous pouvez
pankso@4 92 décommenter les lignes montant/démontant <code>/dev</code> et
pankso@4 93 <code>/tmp</code> :
pankso@4 94 </p>
pankso@4 95 <pre>
pankso@4 96 # cat &gt; /home/slitaz/chroot_in_env.sh &lt;&lt; "EOF"
pankso@4 97 </pre>
pankso@4 98 <pre class="script">
pankso@4 99 #!/bin/sh
pankso@4 100 # Chroot in SliTaz to hack.
pankso@4 101 #
pankso@4 102 ROOTFS="/home/slitaz/chroot-env"
pankso@4 103
pankso@4 104 # Mount virtual Kernel file systems and chroot.
pankso@4 105 #
pankso@4 106 #mount --bind /dev $ROOTFS/dev
pankso@4 107 #mount --bind /tmp $ROOTFS/tmp
pankso@4 108 mount -t proc proc $ROOTFS/proc
pankso@4 109 mount -t sysfs sysfs $ROOTFS/sys
pankso@4 110 mount -t devpts devpts $ROOTFS/dev/pts
pankso@4 111 mount -t tmpfs shm $ROOTFS/dev/shm
pankso@4 112
pankso@4 113 echo "Chrooting in $ROOTFS... "
pankso@4 114 chroot $ROOTFS /bin/sh --login
pankso@4 115
pankso@4 116 # Unmount virtual Kernel file systems on exit.
pankso@4 117 #
pankso@4 118 umount $ROOTFS/dev/shm
pankso@4 119 umount $ROOTFS/dev/pts
pankso@4 120 umount $ROOTFS/sys
pankso@4 121 umount $ROOTFS/proc
pankso@4 122 #umount $ROOTFS/tmp
pankso@4 123 #umount $ROOTFS/dev
pankso@4 124
pankso@4 125 echo "Exiting of $ROOTFS chroot environment... "
pankso@4 126
pankso@4 127 EOF
pankso@4 128 </pre>
pankso@4 129 <p>
pankso@4 130 Pour finir et tester l'environnement, il suffit de rendre le script exécutable
pankso@4 131 et le lancer :
pankso@4 132 </p>
pankso@4 133 <pre>
pankso@4 134 # chmod +x /home/slitaz/chroot_in_env.sh
pankso@4 135 # sh /home/slitaz/chroot_in_env.sh
pankso@4 136 </pre>
pankso@4 137 <h4>Activer le réseau</h4>
pankso@4 138 <p>
pankso@4 139 Pour avoir le réseau afin de télécharger, naviguer en mode texte et installer
pankso@4 140 des paquets de développement, il suffit de lancer le client DHCP sur la bonne
pankso@4 141 interface, exemple avec <code>eth1</code> :
pankso@4 142 </p>
pankso@4 143 <pre>
pankso@4 144 /# udhcpc -i eth1
pankso@4 145 </pre>
pankso@4 146 <h4>Installer des paquets</h4>
pankso@4 147 <p>
pankso@4 148 Si le réseau est fonctionnel, il suffit de recharger la liste des paquets et
pankso@4 149 utiliser <code>tazpkg get-install</code> pour installer de nouveaux paquets.
pankso@4 150 Si la connexion n'est pas possible, on peut télécharger les paquets du miroir
pankso@4 151 depuis un autre système, les copier dans l'environnement chrooté et les
pankso@4 152 installer via la commande <code>tazpkg install</code>. Pour installer la base
pankso@4 153 des outils de compilation :
pankso@4 154 </p>
pankso@4 155 <pre>
pankso@4 156 /# tazpkg recharge
pankso@4 157 /# tazpkg get-install slitaz-toolchain
pankso@4 158 </pre>
pankso@4 159 <p>
pankso@4 160 Une fois l'environnement configuré, on peut complier des applications
pankso@4 161 depuis les sources pour en créer des paquets, tester des scripts et autre.
pankso@4 162 Le chapitre <a href="development.html">développement</a> du Handbook et le
pankso@4 163 <a href="http://www.slitaz.org/doc/cookbook/">Cookbook</a> devraient aider à
pankso@4 164 aller plus loin.
pankso@4 165 </p>
pankso@4 166 <h4>Sortir de l'environnement</h4>
pankso@4 167 <p>
pankso@4 168 Pour sortir de l'environnement chrooté il suffit de taper <code>exit</code>,
pankso@4 169 le script <code>chroot_in_env.sh</code> va finir son rôle en démontant
pankso@4 170 le systèmes de fichiers virtuels propre au Kernel Linux :
pankso@4 171 </p>
pankso@4 172 <pre>
pankso@4 173 /# exit
pankso@4 174 #
pankso@4 175 </pre>
pankso@4 176
pankso@4 177 <!-- End of content -->
pankso@4 178 </div>
pankso@4 179
pankso@4 180 <!-- Footer. -->
pankso@4 181 <div id="footer">
pankso@4 182 <div class="footer-right"></div>
pankso@4 183 <a href="#top">Haut de la page</a> |
pankso@4 184 <a href="index.html">Table des matières</a>
pankso@4 185 </div>
pankso@4 186
pankso@4 187 <div id="copy">
pankso@4 188 Copyright © 2007 <a href="http://www.slitaz.org/">SliTaz</a> -
pankso@4 189 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
pankso@4 190 Documentation publiées sous
pankso@4 191 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
pankso@4 192 et codée en <a href="http://validator.w3.org/">xHTML 1.0 valide</a>.
pankso@4 193 </div>
pankso@4 194
pankso@4 195 </body>
pankso@4 196 </html>