slitaz-doc-wiki-data view pages/pt/handbook/chroot.txt @ rev 3

Add pages/pt folder.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Feb 26 12:12:42 2011 +0000 (2011-02-26)
parents
children
line source
1 ====== Ambiente Chroot ======
3 Este documento descreve os passos necessários para criar um ambiente chroot, para mudar a raiz do sistema de forma que você possa trabalhar. Isto torna possível compilar, testar e desenvolver SliTaz sem qualquer risco para o sistema anfitrião no qual você está trabalhando. O sistema anfitrião pode ser o próprio SliTaz instalado em um disco rígido ou qualquer outro sistema GNU/Linux como Debian, Fedora, PCLinuxOS e assim por diante. Você também pode criar um ambiente chroot em modo LiveCD associado a uma mídia USB. A única condição prévia é ter uma imagem ISO do SliTaz disponível e um pouco de tempo. Note que todos os comandos são executados como administrador de sistema (root).
5 ===== Preparando o ambiente =====
7 Para começar, nós temos que extrair os conteúdos da imagem ISO no diretório que servirá como nosso chroot. O diretório pode ser criado em qualquer lugar que você escolher, nós usaremos o diretório ///home/slitaz/chroot-env//. Para extrair os conteúdos de uma imagem ISO, nós temos que montá-la em loop em um diretório e então temos que copiar o sistema de arquivos raiz comprimido (rootfs.gz) no diretório chroot. Assumindo que a ISO está no diretório atual:
9 <code># mkdir /tmp/loop
10 # mount -o loop slitaz-cooking.iso /tmp/loop
11 # mkdir -p /home/slitaz/chroot-env
12 # cp /tmp/loop/boot/rootfs.gz \
13 /home/slitaz/chroot-env
14 # umount /tmp/loop
15 </code>
17 Agora que nós temos uma cópia do sistema de arquivos comprimido, precisamos extrai-lo e descomprimi-lo (este é um arquivo //cpio// comprimido com //gzip// ou //lzma//). Para completar esta fase, nós podemos remover o rootfs que já não é necessário:
19 <code># cd /home/slitaz/chroot-env
20 # (zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so) | cpio -id
21 # rm rootfs rootfs.gz
22 </code>
24 Se descomprimir o arquivo //rootfs// comprimido com //lzma// falhar você pode usar o método seguinte:
26 <code># unlzma rootfs.gz -S .gz
27 # cat rootfs | cpio -id
28 </code>
30 ===== Usando o ambiente =====
32 Para começar a usar o ambiente chroot, você só precisa montar alguns sistemas de arquivos virtuais e usar o comando //chroot//. Para simplificar as coisas, podemos escrever um script pequeno que automatiza o processo. Exemplo usando o diretório chroot ///home/slitaz/chroot-env// e criando o script //chroot_in_env.sh// em ///home/slitaz//. Em qualquer sistema que não seja o SliTaz você pode descomentar as linhas que se referem aos diretórios ///dev// e ///tmp// - Note que você pode copiar e colar o texto seguinte:
34 <code># cat > /home/slitaz/chroot_in_env.sh << "EOF"
35 #!/bin/sh
36 # Chroot in SliTaz to hack.
37 #
38 ROOTFS="/home/slitaz/chroot-env"
40 # Mount virtual Kernel file systems and chroot.
41 #
42 #mount --bind /dev $ROOTFS/dev
43 #mount --bind /tmp $ROOTFS/tmp
44 mount -t proc proc $ROOTFS/proc
45 mount -t sysfs sysfs $ROOTFS/sys
46 mount -t devpts devpts $ROOTFS/dev/pts
47 mount -t tmpfs shm $ROOTFS/dev/shm
49 echo "Chrooting into $ROOTFS... "
50 chroot $ROOTFS /bin/sh --login
52 # Unmount virtual Kernel file systems on exit.
53 #
54 umount $ROOTFS/dev/shm
55 umount $ROOTFS/dev/pts
56 umount $ROOTFS/sys
57 umount $ROOTFS/proc
58 #umount $ROOTFS/tmp
59 #umount $ROOTFS/dev
61 echo "Exiting $ROOTFS chroot environment... "
63 EOF
64 </code>
66 Para terminar e testar o ambiente, você só precisa tornar o script executável e executá-lo:
68 <code># chmod +x /home/slitaz/chroot_in_env.sh
69 # sh /home/slitaz/chroot_in_env.sh
70 </code>
72 ==== Ativar a internet ====
74 Para ter a internet pronta para baixar e instalar alguns pacotes de desenvolvimento, apenas inicie o cliente DHCP na interface correta. Exemplo usando eth1:
76 <code># udhcpc -i eth1</code>
78 ==== Instalando pacotes ====
80 Se a internet estiver funcionando, apenas recarregue a lista de pacotes e use o comando //tazpkg get-install// para instalar. Se uma conexão não for possível, você pode baixar os pacotes de outro sistema, copiando-os para o ambiente chroot e instalando-os com o comando //tazpkg install//. Para instalar as ferramentas básicas de compilação:
82 <code># tazpkg recharge
83 # tazpkg get-install slitaz-toolchain
84 </code>
86 Estando o ambiente configurado, você pode compilar aplicações a partir do código-fonte para criar pacotes, scripts de teste etc. O Cookbook (Livro de receitas) deve ajudá-lo nesta parte:
88 ==== Encerrando o ambiente ====
90 Para encerrar o ambiente chroot, apenas digite //exit//, o script //chroot_in_env.sh// terminará, desmontando os sistemas de arquivos virtuais do Kernel Linux:
92 <code># exit
93 #
94 </code>