rev |
line source |
paul@142
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
paul@142
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
claudinei@292
|
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt">
|
paul@142
|
4 <head>
|
claudinei@292
|
5 <title>Manual SliTaz (pt) - Ambiente Chroot</title>
|
paul@142
|
6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
|
claudinei@292
|
7 <meta name="description" content="slitaz Portuguese handbook" />
|
paul@142
|
8 <meta name="expires" content="never" />
|
paul@142
|
9 <meta name="modified" content="2008-07-26 21:45:00" />
|
paul@142
|
10 <meta name="publisher" content="www.slitaz.org" />
|
paul@142
|
11 <meta name="author" content="Christophe Lincoln" />
|
paul@142
|
12 <link rel="shortcut icon" href="favicon.ico" />
|
paul@142
|
13 <link rel="stylesheet" type="text/css" href="book.css" />
|
paul@142
|
14 </head>
|
paul@142
|
15 <body bgcolor="#ffffff">
|
paul@142
|
16
|
paul@142
|
17 <!-- Header and quick navigation -->
|
paul@142
|
18 <div id="header">
|
paul@142
|
19 <div id="quicknav" align="right">
|
paul@142
|
20 <a name="top"></a>
|
claudinei@292
|
21 <a href="secure-server.html">SHell Securo (SSH)</a> |
|
claudinei@292
|
22 <a href="index.html">Conteúdos</a>
|
paul@142
|
23 </div>
|
claudinei@292
|
24 <h1><font color="#3e1220">Manual SliTaz (en)</font></h1>
|
paul@142
|
25 </div>
|
paul@142
|
26
|
paul@142
|
27 <!-- Content. -->
|
paul@142
|
28 <div id="content">
|
paul@142
|
29 <div class="content-right"></div>
|
paul@142
|
30
|
claudinei@292
|
31 <h2><font color="#df8f06">Ambiente Chroot</font></h2>
|
paul@142
|
32
|
paul@142
|
33 <p>
|
claudinei@292
|
34 Este documento descreve os passos necessários para criar um ambiente chroot,
|
claudinei@292
|
35 para mudar a raiz do sistema de forma que você possa trabalhar. Isto torna
|
claudinei@292
|
36 possível compilar, testar e desenvolver SliTaz sem qualquer risco para o sistema
|
claudinei@292
|
37 anfitrião no qual você está trabalhando. O sistema anfitrião pode ser o próprio
|
claudinei@292
|
38 SliTaz instalado em um disco rígido ou qualquer outro sistema GNU/Linux como
|
claudinei@292
|
39 Debian, Fedora, PCLinuxOS e assim por diante. Você também pode criar um ambiente
|
claudinei@292
|
40 chroot em modo LiveCD associado a uma mídia USB. A única condição prévia é
|
claudinei@292
|
41 ter uma imagem ISO do SliTaz disponível e um pouco de tempo. Note que todos os
|
claudinei@292
|
42 comandos são levados executados como administrador de sistema (<em>root</em>).
|
paul@142
|
43 </p>
|
claudinei@292
|
44 <h3>Preparando o ambiente</h3>
|
paul@142
|
45 <p>
|
claudinei@292
|
46 Para começar, nós temos que extrair os conteúdos da imagem ISO no diretório que
|
claudinei@292
|
47 servirá como nosso chroot. O diretório pode ser criado em qualquer lugar que
|
claudinei@292
|
48 você escolher, nós usaremos o diretório <code>/home/slitaz/chroot-env</code>.
|
claudinei@292
|
49 Para extrair os conteúdos de uma imagem ISO, nós temos que montá-la em <em>loop</em>
|
claudinei@292
|
50 em um diretório e então temos que copiar o sistema de arquivos raiz comprimido
|
claudinei@292
|
51 (<code>rootfs.gz</code>) no diretório chroot. Assumindo que a ISO está no
|
claudinei@292
|
52 diretório atual:
|
paul@142
|
53 </p>
|
paul@142
|
54 <pre> # mkdir /tmp/loop
|
paul@142
|
55 # mount -o loop slitaz-cooking.iso /tmp/loop
|
paul@142
|
56 # mkdir -p /home/slitaz/chroot-env
|
paul@142
|
57 # cp /tmp/loop/boot/rootfs.gz \
|
paul@142
|
58 /home/slitaz/chroot-env
|
paul@142
|
59 # umount /tmp/loop
|
paul@142
|
60 </pre>
|
paul@142
|
61 <p>
|
claudinei@292
|
62 Agora que nós temos uma cópia do sistema de arquivos comprimido, precisamos
|
claudinei@292
|
63 extrai-lo e descomprimi-lo (este é um arquivo <code>cpio</code> comprimido com
|
claudinei@292
|
64 gzip ou lzma). Para completar esta fase, nós podemos remover o <code>rootfs</code>
|
claudinei@292
|
65 que já não é necessário:
|
paul@142
|
66 </p>
|
paul@142
|
67 <pre> # cd /home/slitaz/chroot-env
|
paul@142
|
68 # (zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so) | cpio -id
|
paul@142
|
69 # rm rootfs rootfs.gz
|
paul@142
|
70 </pre>
|
paul@142
|
71 <p>
|
claudinei@292
|
72 Se descomprimir o arquivo rootfs comprimido com lzma falhar você pode usar o
|
claudinei@292
|
73 método seguinte:
|
paul@142
|
74 </p>
|
paul@142
|
75 <pre> # unlzma rootfs.gz -S .gz
|
paul@142
|
76 # cat rootfs | cpio -id
|
paul@142
|
77 </pre>
|
paul@142
|
78
|
claudinei@292
|
79 <h3>Usando o ambiente</h3>
|
paul@142
|
80 <p>
|
claudinei@292
|
81 Para começar a usar o ambiente chroot, você só precisa montar alguns sistemas
|
claudinei@292
|
82 de arquivos virtuais e usar o comando <code>chroot</code>. Para simplificar as
|
claudinei@292
|
83 coisas, podemos escrever um script pequeno que automatiza o processo. Exemplo
|
claudinei@292
|
84 usando o diretório chroot <code>/home/slitaz/chroot-env</code> e criando o
|
claudinei@292
|
85 script <code>chroot_in_env.sh</code> em <code>/home/slitaz</code>. Em qualquer
|
claudinei@292
|
86 sistema que não seja o SliTaz você pode descomentar as linhas que se referem
|
claudinei@292
|
87 aos diretórios <code>/dev</code> e <code>/tmp</code> - <em>Note</em> que você
|
claudinei@292
|
88 pode copiar e colar o texto seguinte:
|
paul@142
|
89 </p>
|
paul@142
|
90 <pre> # cat > /home/slitaz/chroot_in_env.sh << "EOF"
|
paul@142
|
91 </pre>
|
paul@142
|
92 <pre class="script">#!/bin/sh
|
paul@142
|
93 # Chroot in SliTaz to hack.
|
paul@142
|
94 #
|
paul@142
|
95 ROOTFS="/home/slitaz/chroot-env"
|
paul@142
|
96
|
paul@142
|
97 # Mount virtual Kernel file systems and chroot.
|
paul@142
|
98 #
|
paul@142
|
99 #mount --bind /dev $ROOTFS/dev
|
paul@142
|
100 #mount --bind /tmp $ROOTFS/tmp
|
paul@142
|
101 mount -t proc proc $ROOTFS/proc
|
paul@142
|
102 mount -t sysfs sysfs $ROOTFS/sys
|
paul@142
|
103 mount -t devpts devpts $ROOTFS/dev/pts
|
paul@142
|
104 mount -t tmpfs shm $ROOTFS/dev/shm
|
paul@142
|
105
|
paul@142
|
106 echo "Chrooting into $ROOTFS... "
|
paul@142
|
107 chroot $ROOTFS /bin/sh --login
|
paul@142
|
108
|
paul@142
|
109 # Unmount virtual Kernel file systems on exit.
|
paul@142
|
110 #
|
paul@142
|
111 umount $ROOTFS/dev/shm
|
paul@142
|
112 umount $ROOTFS/dev/pts
|
paul@142
|
113 umount $ROOTFS/sys
|
paul@142
|
114 umount $ROOTFS/proc
|
paul@142
|
115 #umount $ROOTFS/tmp
|
paul@142
|
116 #umount $ROOTFS/dev
|
paul@142
|
117
|
paul@142
|
118 echo "Exiting $ROOTFS chroot environment... "
|
paul@142
|
119
|
paul@142
|
120 EOF
|
paul@142
|
121 </pre>
|
paul@142
|
122 <p>
|
claudinei@292
|
123 Para terminar e testar o ambiente, você só precisa tornar o script executável
|
claudinei@292
|
124 e executá-lo:
|
paul@142
|
125 </p>
|
paul@142
|
126 <pre> # chmod +x /home/slitaz/chroot_in_env.sh
|
paul@142
|
127 # sh /home/slitaz/chroot_in_env.sh
|
paul@142
|
128 </pre>
|
claudinei@292
|
129 <h4>Ativar a internet </h4>
|
paul@142
|
130 <p>
|
claudinei@292
|
131 Para ter a internet pronta para baixar e instalar alguns pacotes de
|
claudinei@292
|
132 desenvolvimento, apenas inicie o cliente DHCP na interface correta. Exemplo
|
claudinei@292
|
133 usando <code>eth1</code>:
|
paul@142
|
134 </p>
|
paul@142
|
135 <pre> /# udhcpc -i eth1
|
paul@142
|
136 </pre>
|
claudinei@292
|
137 <h4>Instalando pacotes</h4>
|
paul@142
|
138 <p>
|
claudinei@292
|
139 Se a internet estiver funcionando, apenas recarregue a lista de pacotes e use o
|
claudinei@292
|
140 comando <code>tazpkg get-install</code> para instalar. Se uma conexão não for
|
claudinei@292
|
141 possível, você pode baixar os pacotes de outro sistema, copiando-os para o
|
claudinei@292
|
142 ambiente chrooted e instalando-os com o comando <code>tazpkg install</code>.
|
claudinei@292
|
143 Para instalar as ferramentas básicas de compilação:
|
paul@142
|
144 </p>
|
paul@142
|
145 <pre> /# tazpkg recharge
|
paul@142
|
146 /# tazpkg get-install slitaz-toolchain
|
paul@142
|
147 </pre>
|
paul@142
|
148 <p>
|
claudinei@292
|
149 Estando o ambiente configurado, você pode compilar aplicações a partir
|
claudinei@292
|
150 do código-fonte para criar pacotes, scripts de teste etc.
|
claudinei@292
|
151 O <a href="../cookbook/">Cookbook</a> (Livro de receitas) deve ajudá-lo nesta
|
claudinei@292
|
152 parte:
|
paul@142
|
153 </p>
|
claudinei@292
|
154 <h4>Encerrando o ambiente </h4>
|
paul@142
|
155 <p>
|
claudinei@292
|
156 Para encerrar o ambiente chroot, apenas digite <code>exit</code>, o script
|
claudinei@292
|
157 <code>chroot_in_env.sh</code> terminará, desmontando os sistemas de arquivos
|
claudinei@292
|
158 virtuais do Kernel Linux:
|
paul@142
|
159 </p>
|
paul@142
|
160 <pre> /# exit
|
paul@142
|
161 #
|
paul@142
|
162 </pre>
|
paul@142
|
163
|
paul@142
|
164 <!-- End of content -->
|
paul@142
|
165 </div>
|
paul@142
|
166
|
paul@142
|
167 <!-- Footer. -->
|
paul@142
|
168 <div id="footer">
|
paul@142
|
169 <div class="footer-right"></div>
|
claudinei@292
|
170 <a href="#top">Topo da Página</a> |
|
claudinei@292
|
171 <a href="index.html">Conteúdo</a>
|
paul@142
|
172 </div>
|
paul@142
|
173
|
paul@142
|
174 <div id="copy">
|
claudinei@292
|
175 Copyright © 2008 <a href="http://www.slitaz.org/pt/">SliTaz</a> -
|
paul@142
|
176 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
|
paul@142
|
177 Documentation is under
|
paul@142
|
178 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
|
paul@142
|
179 and code is <a href="http://validator.w3.org/">valid xHTML 1.0</a>.
|
paul@142
|
180 </div>
|
paul@142
|
181
|
paul@142
|
182 </body>
|
paul@142
|
183 </html>
|
paul@142
|
184
|