Executando programas 32 bits no Debian Etch amd64
Este artigo descreve como criar uma gaiola de 32 bits para executar programas 32 bits no Debian Etch AMD64
Introdução
Como o surgimento dos processadores de 64 bits pode ser considerado recente muitos programas 32 bits ainda não possuem versões para a plataforma de 64 bits. O objetivo desse artigo é descrever como construir uma gaiola de 32 bits dentro de um sistema de 64 para executar programas 32 bits.
Construindo a gaiola de 32 bits
Para construir a gaiola de 32 bits vamos instalar os pacotes necessários:
# aptitude install debootstrap a32-libs a32-libs-gtk dchroot
Agora construiremos a gaiola:
# debootsrap --arch i386 /opt/chroot/etch-ia32 http://ftp.br.debian.org/debian
O penúltimo parâmetro é o diretório onde a gaiola será construída e o último é o repositório para obter os pacotes para a gaiola. Agora devemos alterar o arquivo /etc/ld.so.conf para permitir que o sistema de 64 use as bibliotecas da gaiola, acrescentaremos as seguintes linhas ao arquivo:
# chroot i386 system libs
/var/chroot/sid-ia32/lib
/var/chroot/sid-ia32/usr/lib
/var/chroot/sid-ia32/usr/X11R6/lib
/var/chroot/sid-ia32/usr/local/lib
/var/chroot/sid-ia32/lib
/var/chroot/sid-ia32/usr/lib
/var/chroot/sid-ia32/usr/X11R6/lib
/var/chroot/sid-ia32/usr/local/lib
Criamos um link para o linker da gaiola de 32 bits
ln -s /opt/chroot/etch-ia32/lib/ld-2.3.2.so /lib/ld-linux.so.2
Agora atualizaremos o cache linker das bibliotecas com o comando:
ldconfig
Agora vamos alterar o arquivo /etc/fstab para que alguns aplicativos da gaiola trabalhem normalmente, adicionaremos as seguintes linhas:
# ia32 chroot
/home /opt/chroot/etch-ia32/home none bind 0 0
/tmp /opt/chroot/etch-ia32/tmp none bind 0 0
proc /opt/chroot/etch-ia32/proc proc defaults 0 0
/home /opt/chroot/etch-ia32/home none bind 0 0
/tmp /opt/chroot/etch-ia32/tmp none bind 0 0
proc /opt/chroot/etch-ia32/proc proc defaults 0 0
E em seguida montamos esses diretórios:
# mount /opt/chroot/etch-ia32/home
# mount /opt/chroot/etch-ia32/tmp
# mount /opt/chroot/etch-ia32/proc
# mount /opt/chroot/etch-ia32/tmp
# mount /opt/chroot/etch-ia32/proc
Temos que fazer com que a gaiola enxergue os arquivos de configuração do sistema também, para isso vamos copiar esses arquivos para dentro da gaiola (alguns tutoriais dizem que pode-se criar links simbólicos, mas eu não testei):
# cp /etc/passwd /opt/chroot/etch-ia21/etc/
# cp /etc/shadow /opt/chroot/etch-ia21/etc/
# cp /etc/group /opt/chroot/etch-ia21/etc/
# cp /etc/resolv.conf /opt/chroot/etch-ia21/etc/
# cp /etc/networks /opt/chroot/etch-ia21/etc/
# cp /etc/shadow /opt/chroot/etch-ia21/etc/
# cp /etc/group /opt/chroot/etch-ia21/etc/
# cp /etc/resolv.conf /opt/chroot/etch-ia21/etc/
# cp /etc/networks /opt/chroot/etch-ia21/etc/
Agora podemos entrar dentro da gaiola:
# chroot /opt/chroot/etch-ia32
Atenção os passos que serão descritos agora serão executados dentro da gaiola após o comando anterior. Altere o o arquivo /etc/apt/source.list para instalação de pacotes dentro da gaiola:
deb http://ftp.br.debian.org/debian stable main contrib non-free
Instale os pacotes básicos para execução de outros programas dentro da gaiola:
aptitude install libX11-6 locales
Vamos instalar também o iceweasel e o plugin java que não apresenta versão de 64 bits:
aptitude install iceweasel-l10n-pt-br sun-java6-plugin
Saímos da gaiola:
exit
Agora estamos de volta no sistema de 64 bits fora da gaiola. Vamos configurar o dchroot para que qualquer usuário possa usar os programas da gaiola, alteraremos o arquivos /etc/dchroot.conf e acrescentamos as seguintes linhas:
#ia32 dchroot
ia32 /opt/chroot/etch-ia32
ia32 /opt/chroot/etch-ia32
Depois disso, podemos executar programas de dentro da gaiola com o dchroot, por exemplo para executarmos o iceweasel que instalamos dentro da gaiola usamos o seguinte comando:
dchroot -c ia32 -d iceweasel
Agora podemos usar o plugin java em um sistema amd64.
Comentários