website diff doc/handbook-stable/chroot-env.html @ rev 347

fr/about: Add evnets.html page for events report
author Christophe Lincoln <pankso@slitaz.org>
date Sun Mar 29 16:43:48 2009 +0200 (2009-03-29)
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/doc/handbook-stable/chroot-env.html	Sun Mar 29 16:43:48 2009 +0200
     1.3 @@ -0,0 +1,196 @@
     1.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     1.5 +    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     1.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
     1.7 +<head>
     1.8 +    <title>SliTaz Handbook - Chroot env</title>
     1.9 +    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    1.10 +    <meta name="description" content="SliTaz chroot environnement chrooté développer tester" />
    1.11 +    <meta name="expires" content="never" />
    1.12 +    <meta name="modified" content="2007-12-03 12:30:00" />
    1.13 +    <meta name="publisher" content="www.slitaz.org" />
    1.14 +    <meta name="author" content="Christophe Lincoln"/>
    1.15 +    <link rel="shortcut icon" href="favicon.ico" />
    1.16 +    <link rel="stylesheet" type="text/css" href="book.css" />
    1.17 +</head>
    1.18 +<body bgcolor="#ffffff">
    1.19 +
    1.20 +<!-- Header and quick navigation -->
    1.21 +<div id="header">
    1.22 +<div align="right" id="quicknav">
    1.23 +    <a name="top"></a>
    1.24 +    <a href="hacking-livecd.html">Hacking LiveCD</a> |
    1.25 +    <a href="index.html">Table des matières</a>
    1.26 +</div>
    1.27 +<h1><font color="#3E1220">SliTaz Handbook</font></h1>
    1.28 +</div>
    1.29 +
    1.30 +<!-- Content. -->
    1.31 +<div id="content">
    1.32 +<div class="content-right"></div>
    1.33 +
    1.34 +<h2><font color="#DF8F06">Chroot environment</font></h2>
    1.35 +
    1.36 +<p>
    1.37 +Ce document décrit les étapes à réaliser pour créer un environnement chrooté,
    1.38 +afin de changer la racine du système pour travailler. Cela permet de compiler,
    1.39 +tester et développer SliTaz sans risques pour le système hôte depuis lequel
    1.40 +on travaille. Ce système hôte peut être SliTaz installée en dur ou tout autre
    1.41 +système GNU/Linux tel que Debian, Fedora, PCLinuxOS, etc. On peut aussi créer
    1.42 +un environnement chrooté en mode LiveCD associé à un media USB. Les seuls
    1.43 +prérequis sont d'avoir une image ISO de SliTaz à disposition et un peu de
    1.44 +temps. A noter que toutes les opérations sont réalisées en tant
    1.45 +qu'administrateur (<em>root</em>).
    1.46 +</p>
    1.47 +<h3><font color="#6c0023">Préparer l'environnement</font></h3>
    1.48 +<p>
    1.49 +Pour commencer, il faut extraire le contenu de l'image ISO dans le répertoire
    1.50 +qui va servir au chroot. Le répertoire de chroot peut se créer à l'endroit que
    1.51 +l'on veut, nous utilisons un répertoire <code>/home/slitaz/chroot-env</code>.
    1.52 +Pour extraire le contenu d'une image ISO, il faut la monter en <em>loop</em>
    1.53 +sur un répertoire, pour ensuite copier le système de fichiers racine
    1.54 +compressé (<code>rootfs.gz</code>) dans le répertoire de chroot. En
    1.55 +supposant que l'ISO est dans le répertoire courant :
    1.56 +</p>
    1.57 +<pre>
    1.58 + # mkdir /tmp/loop
    1.59 + # mount -o loop slitaz-cooking.iso /tmp/loop
    1.60 + # mkdir -p /home/slitaz/chroot-env
    1.61 + # cp /tmp/loop/boot/rootfs.gz \
    1.62 +   /home/slitaz/chroot-env
    1.63 + # umount /tmp/loop
    1.64 +</pre>
    1.65 +<p>
    1.66 +Maintenant qu'on a une copie du système de fichiers compressé, il faut le
    1.67 +décompresser et le désarchiver (c'est une archive <code>cpio</code> compressée
    1.68 +avec lzma ou gzip). Pour finir cette étape de préparation et continuer, on 
    1.69 +peut retirer le <code>rootfs</code> qui n'est plus utilisé :
    1.70 +</p>
    1.71 +<pre>
    1.72 + # cd /home/slitaz/chroot-env
    1.73 + # (zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so) | cpio -id
    1.74 + # rm rootfs rootfs.gz
    1.75 +</pre>
    1.76 +<p>
    1.77 +Si le désarchivage du rootfs compressé avec LZMA échoue  en utilisant la 
    1.78 +première méthode vous pouvez utiliser:
    1.79 +</p>
    1.80 +<pre>
    1.81 + # unlzma rootfs.gz -S .gz 
    1.82 + # cat rootfs | cpio -id
    1.83 +</pre>
    1.84 +
    1.85 +<h3><font color="#6c0023">Utiliser l'environnement</font></h3>
    1.86 +<p>
    1.87 +Pour utiliser l'environnemnt chrooté, il suffit de monter quelques systèmes
    1.88 +de fichier virtuels et d'utiliser la commande <code>chroot</code>. Pour se
    1.89 +simplifier la vie on peut rapidement créer un petit script automatisant
    1.90 +le chroot. Exemple en utilisant le répertoire de chroot
    1.91 +<code>/home/slitaz/chroot-env</code> et en créant un script nommé
    1.92 +<code>chroot_in_env.sh</code> dans <code>/home/slitaz</code>. A noter que
    1.93 +le contenu du script n'a pas besoin d'être tapé mais simplement copié/coller
    1.94 +dans le terminal et que sur un autre système que SliTaz vous pouvez
    1.95 +décommenter les lignes montant/démontant <code>/dev</code> et
    1.96 +<code>/tmp</code> :
    1.97 +</p>
    1.98 +<pre>
    1.99 + # cat &gt; /home/slitaz/chroot_in_env.sh &lt;&lt; "EOF"
   1.100 +</pre>
   1.101 +<pre class="script">
   1.102 +#!/bin/sh
   1.103 +# Chroot in SliTaz to hack.
   1.104 +#
   1.105 +ROOTFS="/home/slitaz/chroot-env"
   1.106 +
   1.107 +# Mount virtual Kernel file systems and chroot.
   1.108 +#
   1.109 +#mount --bind /dev $ROOTFS/dev
   1.110 +#mount --bind /tmp $ROOTFS/tmp
   1.111 +mount -t proc proc $ROOTFS/proc
   1.112 +mount -t sysfs sysfs $ROOTFS/sys
   1.113 +mount -t devpts devpts $ROOTFS/dev/pts
   1.114 +mount -t tmpfs shm $ROOTFS/dev/shm
   1.115 +
   1.116 +echo "Chrooting in $ROOTFS... "
   1.117 +chroot $ROOTFS /bin/sh --login
   1.118 +
   1.119 +# Unmount virtual Kernel file systems on exit.
   1.120 +#
   1.121 +umount $ROOTFS/dev/shm
   1.122 +umount $ROOTFS/dev/pts
   1.123 +umount $ROOTFS/sys
   1.124 +umount $ROOTFS/proc
   1.125 +#umount $ROOTFS/tmp
   1.126 +#umount $ROOTFS/dev
   1.127 +
   1.128 +echo "Exiting of $ROOTFS chroot environment... "
   1.129 +
   1.130 +EOF
   1.131 +</pre>
   1.132 +<p>
   1.133 +Pour finir et tester l'environnement, il suffit de rendre le script exécutable
   1.134 +et le lancer :
   1.135 +</p>
   1.136 +<pre>
   1.137 + # chmod +x /home/slitaz/chroot_in_env.sh
   1.138 + # sh /home/slitaz/chroot_in_env.sh
   1.139 +</pre>
   1.140 +<h4>Activer le réseau</h4>
   1.141 +<p>
   1.142 +Pour avoir le réseau afin de télécharger, naviguer en mode texte et installer
   1.143 +des paquets de développement, il suffit de lancer le client DHCP sur la bonne
   1.144 +interface, exemple avec <code>eth1</code> :
   1.145 +</p>
   1.146 +<pre>
   1.147 + /# udhcpc -i eth1
   1.148 +</pre>
   1.149 +<h4>Installer des paquets</h4>
   1.150 +<p>
   1.151 +Si le réseau est fonctionnel, il suffit de recharger la liste des paquets et
   1.152 +utiliser <code>tazpkg get-install</code> pour installer de nouveaux paquets.
   1.153 +Si la connexion n'est pas possible, on peut télécharger les paquets du miroir
   1.154 +depuis un autre système, les copier dans l'environnement chrooté et les
   1.155 +installer via la commande <code>tazpkg install</code>. Pour installer la base
   1.156 +des outils de compilation :
   1.157 +</p>
   1.158 +<pre>
   1.159 + /# tazpkg recharge
   1.160 + /# tazpkg get-install slitaz-toolchain
   1.161 +</pre>
   1.162 +<p>
   1.163 +Une fois l'environnement configuré, on peut complier des applications
   1.164 +depuis les sources pour en créer des paquets, tester des scripts et autre.
   1.165 +Le chapitre <a href="development.html">développement</a> du Handbook et le
   1.166 +<a href="http://www.slitaz.org/doc/cookbook/">Cookbook</a> devraient aider à
   1.167 +aller plus loin.
   1.168 +</p>
   1.169 +<h4>Sortir de l'environnement</h4>
   1.170 +<p>
   1.171 +Pour sortir de l'environnement chrooté il suffit de taper <code>exit</code>,
   1.172 +le script <code>chroot_in_env.sh</code> va finir son rôle en démontant
   1.173 +le systèmes de fichiers virtuels propre au Kernel Linux :
   1.174 +</p>
   1.175 +<pre>
   1.176 + /# exit
   1.177 + #
   1.178 +</pre>
   1.179 +
   1.180 +<!-- End of content -->
   1.181 +</div>
   1.182 +
   1.183 +<!-- Footer. -->
   1.184 +<div id="footer">
   1.185 +	<div class="footer-right"></div>
   1.186 +	<a href="#top">Haut de la page</a> | 
   1.187 +	<a href="index.html">Table des matières</a>
   1.188 +</div>
   1.189 +
   1.190 +<div id="copy">
   1.191 +    Copyright © 2007 <a href="http://www.slitaz.org/">SliTaz</a> -
   1.192 +    <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
   1.193 +    Documentation publiées sous
   1.194 +    <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
   1.195 +    et codée en <a href="http://validator.w3.org/">xHTML 1.0 valide</a>.
   1.196 +</div>
   1.197 +
   1.198 +</body>
   1.199 +</html>