PrincipalOrkutDownloadsRegras

Login






Esqueceu sua senha?
Sem conta? Crie uma
Principal arrow Tutoriais arrow Tut Configuração arrow Ubuntu 64: criando um chroot para aplicações 32 bits
Ubuntu 64: criando um chroot para aplicações 32 bits PDF Imprimir E-mail
(2 votes)
Por Percival   
10 de abril de 2008

Introdução

Quem tem um computador AMD64 e tentou usar uma distro apropriada para 64 bits já se deparou com um pequeno problema. Alguns pacotes ainda não foram portados para esta arquitetura, sem contar os jogos. Como exemplo vou citar o WINE, e outra coisa simples: flash para o Firefox.

O sistema operacional em 64 bits é otimizado para aproveitar o total uso do seu AMD64 e, apesar de a diferença não ser brutal para um desktop, ela existe e é visível. Mas como aproveitar 100% da minha máquina se algumas aplicações AINDA não foram portadas para a minha arquitetura? Claro que eu posso usar um sistema operacional em 32 bits sem problemas, mas e aí?

Não vou levar em consideração que os pacotes podem ser compilados em um sistema a partir do zero. Vou analisar como um usuário desktop pode criar um chroot do Debian Etch dentro de um sistema Ubuntu 64. Escolhi o Debian Etch para o sistema não ficar "homogêneo" demais, mas ao final do artigo o leitor poderá perceber que se pode escolher outra distribuição a seu gosto.

Mãos à obra então.

 

Instalando o chroot

Vou partir do pressuposto que você já tenha o Ubuntu64 instalado em seu HD e que o mesmo esteja com os repositórios próprios ativados, além de uma conexão estabelecida com a web.

Abra um terminal e dê início à instalação:

$ sudo apt-get install dchroot debootstrap



Crie um diretório para o chroot ser instalado (sugestão de nome, pode ser outro, basta mudar as configurações adiante):

$ sudo mkdir /chroot



Vamos editar agora o arquivo dchroot.conf

$ sudo gedit /etc/dchroot.conf



Adicione uma linha assim no final do arquivo:

debian_sarge /chroot

Agora instalaremos o sistema básico do Debian. Esta etapa é um pouco demorada mesmo e pode parecer que nada está acontecendo, pois poucas são as saídas de progresso. Aqui demorou cerca de 15-20 minutos.

$ sudo debootstrap --arch i386 sarge /chroot/ http://ftp.debian.org/debian/

 

 

Instalando o Debian Etch

Vamos adicionar repositórios ao sources.list do Debian (não se esqueçam de que ele está no /chroot). Vejam como:

$ sudo gedit /chroot/etc/apt/sources.list



Adicionem as seguintes linhas:

 

## Debian Etch
deb http://http.us.debian.org/debian/ etch main contrib non-free
deb http://non-us.debian.org/debian-non-US/ stable/non-US main contrib non-free

## Security Updates
deb http://security.debian.org/ stable/updates main contrib non-free

 


Salvem e saiam do editor. Vamos entrar no Debian agora:

$ sudo chroot /chroot



Agora, já dentro do Debian, vamos atualizar o APT.

# apt-get update



Saia do chroot, comandando:

# exit

 

Arrumando a casa

Para facilitar e muito a vida de vocês, vamos fazer com que o Debian use o mesmo diretório HOME que o Ubuntu, as mesmas senhas, etc... Execute estes comandos para "sincronizar" Ubuntu e Debian. Isto é feito no ambiente Ubuntu, por isso pedi para executar o exit no capítulo anterior.

$ sudo cp /etc/passwd /chroot/etc/
$ sudo cp /etc/shadow /chroot/etc/
$ sudo cp /etc/group /chroot/etc/
$ sudo cp /etc/sudoers /chroot/etc/
$ sudo cp /etc/hosts /chroot/etc/



Agora vamos linkar alguns diretórios do Ubuntu para o Debian:

$ sudo gedit /etc/fstab



Copie estas linhas para o arquivo:

 

/home /chroot/home none bind 0 0
/tmp /chroot/tmp none bind 0 0
/dev /chroot/dev none bind 0 0
/proc /chroot/proc proc defaults 0 0
/media/cdrom0 /chroot/media/cdrom0 none bind 0 0

 


Crie um ponto de montagem para o CD-ROM no Debian:

$ sudo mkdir /chroot/media/cdrom0



E vamos montar tudo isto:

$ sudo mount -a



Note que se você tem uma partição listada no Ubuntu, ela NÃO irá aparecer no Debian, a menos que você a indique como feito no procedimento acima. Vou exemplificar para ficar mais claro. Vamos supor que você tenha uma partição onde guarda seus mp3s, montada em /mnt/mp3 (do Ubuntu). Se ela já estiver indicada no fstab do Ubuntu, basta dar um bind para a mesma no Debian. Veja só, apenas adicione esta linha:

/mnt/mp3 /chroot/mnt/mp3 none bind 0 0


Crie o ponto de montagem no chroot:

$ sudo mkdir /chroot/mnt/mp3



E monte-a:

$ sudo mount -a



ADVERTÊNCIA: Caso você tenha, um dia, a feliz idéia de sumir com a pasta /chroot, não se esqueça de desmontar todas as partições, retirar estes binds para as mesmas do fstab e só depois apagar o diretório. Não se esqueçam: dói muito não fazer isto e ver tarde demais que apagou todos os dados de outro diretório. Experiência própria. 8^)



Próxima etapa: completando o ambiente Debian.

  

Instalando o desktop Debian

É muito interessante você seguir este capítulo, apesar de não ser extremamente necessário. Vamos instalar um ambiente desktop Debian quase que completo. Isso vai ocupar espaço em disco, e não é pouco, mas o resultado final é bem melhor.

Quem não quiser, pule esta etapa e instale apenas o que quiser do Debian.

$ sudo chroot /chroot
# apt-get install gnome gnome-core



E vá tomar um cafezinho. Ele vai baixar o Gnome e suas dependências, mas antes de instalar ocorrerá um erro informando sobre o grupo Debian-exim. Basta comandar:

# addgroup --force-badname Debian-exim



E repetir o:

# apt-get install gnome gnome-core locales



Que os pacotes começarão a ser instalados sem problemas. No final, não se esqueça de configurar os locales para o pt_br:

# dpkg-reconfigure locales

 

Linkando aplicações do chroot para o Ubuntu

Vamos supor que você tenha o Totem instalado em seu Ubuntu e quer instalar o Totem no Debian também, porque ele poderá ter alguns codecs multimídia a mais que não existem ainda para o sistema 64 bits.

Vamos criar um link para o executável Totem do Debian, para rodar direto do desktop Ubuntu, mas com o nome de Totem32 (que iremos atribuir ao mesmo).

Mas, no exemplo abaixo, o aplicativo em questão é o Synaptic, mão-na-roda para instalar os pacotes do Debian.

Abra um terminal do Ubuntu e comande:

$ sudo gedit /usr/local/bin/do_dchroot


E adicione as seguintes linhas:

#!/bin/sh
/usr/bin/dchroot -d "`echo {xtypo_code}#!/bin/sh
/usr/bin/dchroot -d "`echo $0 | sed 's|^.*/||'` $*"{/xtypo_code} | sed 's|^.*/||'` $*"

 

Salve e feche. Altere as permissões do arquivo:

$ sudo chmod 755 /usr/local/bin/do_dchroot



Agora, quando quiser acessar um terminal Debian Sarge, estando no Ubuntu, basta comandar:

$ dchroot -d



E para voltar ao terminal Ubuntu:

# exit



Criemos então um link para o Synaptic. Primeiro, instale-o. Abra um terminal Ubuntu:

$ dchroot -d
$ sudo apt-get install synaptic
$ sudo ln -s /usr/sbin/synaptic /usr/sbin/synaptic32



Volte ao terminal Ubuntu:

$ exit /{xtypo_code}

E comande:

{xtypo_code}$ sudo ln -s /usr/local/bin/do_dchroot /usr/local/bin/synaptic32



Pronto... agora, de dentro do desktop Ubuntu, basta comandar:

$ synaptic32



E o Synaptic do Debian entrará em ação. Para fazer qualquer aplicação rodar desta forma, basta seguir os passos acima, lembrando apenas de alterar o path do executável (nem toda aplicação fica em /usr/sbin).
 

Existe outro modo, bem mais simples. Apenas crie um lançador no seu Ubuntu com o comando:

$ dchroot -d "comando_do_Debian"



Por exemplo tomemos o Synaptic de novo. Para rodar do Ubuntu, basta:

$ dchroot -d "synaptic"



E é só em relação a este assunto.

 

Jogos no chroot... e a minha NVidia?

Mesmo tendo linkado o /dev para o chroot, você pode perceber que, no caso da placa NVidia, a aceleração não está funcionando. Verifique no Ubuntu com um:

$ glxinfo | grep direct



Se o resultado for "Yes", quer dizer que está configurada (se for "No", corra atrás disso, porque eu não ensinar como fazê-lo aqui). Agora tente no Debian:

$ dchroot -d
$ glxinfo | grep direct



O resultado será "No"... vamos instalar o pacote da NVidia no Debian também. Mas existe um problema: o pacote do Ubuntu nvidia-glx é diferente do Debian e não encontrei repositório do Debian com este pacote. Usaremos o do Ubuntu mesmo. Abra um terminal:

$ sudo gedit /chroot/etc/apt/sources.list



E adicione os repositórios:

 

deb http://br.archive.ubuntu.com/ubuntu gutsy main restricted

deb-src http://br.archive.ubuntu.com/ubuntu gutsy main restricted

deb http://br.archive.ubuntu.com/ubuntu gutsy-updates main restricted
deb-src http://br.archive.ubuntu.com/ubuntu gutsy-updates main restricted

deb http://br.archive.ubuntu.com/ubuntu gutsy universe
deb-src http://br.archive.ubuntu.com/ubuntu gutsy universe

deb http://br.archive.ubuntu.com/ubuntu gutsy-backports main restricted universe multiverse
deb-src http://br.archive.ubuntu.com/ubuntu gutsy-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu gutsy-security main restricted
deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted

deb http://security.ubuntu.com/ubuntu gutsy-security universe
deb-src http://security.ubuntu.com/ubuntu gutsy-security universe

 


Entre no chroot:

$ dchroot -d
$ sudo apt-get update



E instale o pacote de mesma versão que o Ubuntu:

$ sudo apt-get install nvidia-glx



Pode conferir que sua placa estará funcionando agora. Não se esqueça de apagar estes últimos repositórios do seu sources.list e realizar um apt-get update. Não precisará mais deles.

 

 

Considerações finais 

Com muito pouco tempo você estará acostumado com seus dois sistemas rodando ao mesmo tempo. Apesar de não ser o ideal e estar bem longe dele por sinal, é uma alternativa bastante considerável de como poder usufruir de um Sistema Operacional 64 bits em seu AMD64, até todos os pacotes terem sido devidamente portados.

Muitas possibilidades podem surgir, como por exemplo, instalar um Firefox no Debian, que poderá contar com animações Flash (indisponíveis em 64 bits no momento da elaboração deste artigo), linká-la no dchroot -d e rodá-lo normalmente.

Você pode também criar um lançador no painel do Gnome com o comando "dchroot -d" e mandá-lo abrir em um terminal. Assim, cada vez que clicar no lançador, se abrirá um terminal do chroot, direto. Pode até colocar um linux-logo em cada terminal, como eu fiz neste screenshot:


O Wine ainda não roda no Ubuntu 64bits, assim como o Cedega, sendo esta uma boa alternativa. Outro screenshot:


Inúmeras possibilidades...

Espero que gostem, testem e dêem mais alguma dica pertinente ao assunto no espaço reservado aos comentários, a fim de contribuir com o artigo e com o site.

 

Um abraço,

 

Percival 

( gnu_xiitas @ irc.frenode.net ) 

 

 

Comentários
Pesquisar
Somente usuários registrados podem escrever comentários!

3.21 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."





Reddit!Del.icio.us!Google!Yahoo!
 
< Anterior   Próximo >