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

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