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

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