The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Chroot em um ambiente 32-bits para rodar o Wine
No Funtoo 1.4, programas em 32 bits não podem ser executados diretamente, incluindo o Wine 32-bits. Porém, o Wine 32-bits é nescessário para rodar programas de antigos de Windows. Existem varios métodos para usar aplicações x86 em um sistem 64-bits puro como o Funtoo 1.4. Você pode usar containers como o LXD para criar uma instancia. Aqui será mostrado outro método, que eu testei e é funcional.
A idéia é instalar uma distribuição Linux 32-bits num ambiente logado em com o comando chroot, e redirecionar ele para uma saida gráfica para o sistema principal. Você pode usar a distribuição da sua escolha, mas nesse exemplo eu usarei o Gentoo 32-bits que tem uma instalação similar à que nós usamos no Funtoo.
Você pode colocar a pasta onde realizará a instalação do ambiente em qualquer lugar que você quiser, mas é uma boa idéia colocar no seu diretório home padrão. Faça download do tarbal do stage3 do Gentoo em http://distfiles.gentoo.org/releases/x86/autobuilds/current-stage3-i686/ e descompacte na pasta escolida.
Como alternativa você pode usar o stage3 do Funtoo 1.4 x86, ou um stage3 generico em https://www.funtoo.org/Generic_32 ou um stage da arquitetura i686 em https://www.funtoo.org/I686 e siga as intruções de instalação padrão no guia de instalação do Funtoo e volte na parte do: X redirection
user $ mkdir ~/gentoo user $ cd ~/gentoo user $ wget <stage3_URL>
Entre como root por enquanto, se não o stage3 não será descompactado corretamente. Então siga os procedimentos de instalação de acordo com o manual de instalação do Gentoo.
user $ sudo su root # tar xpf <stage3> root # cp /etc/resolv.conf /home/<username>/gentoo/etc root # mount -t proc none proc root # mount --rbind /sys sys root # mount --rbind /dev dev root # env -i HOME=/root TERM=$TERM /bin/chroot . bash -l root # export PS1="(chroot) $PS1" (chroot)# emerge-webrsync (chroot)# emerge --sync (chroot)# eselect profile list
e selecione o perfil de desktop. No meu caso foi o número 5, default/linux/x86/17.0/desktop (stable). O perfil de desktop já vem com o Xorg que será nescessário depois para o Wine.
(chroot)# eselect profile set 5
Edite o arquivo /etc/make.conf de acordo com o seu gosto e para configurar corretamente o processo de compilação. Adicione a opção MAKEOPTS="-jn" onde n é a quantidade de threads que você deseja alocar para o processo de compilação, isso vai agilizar o processo para que você não fique horas compilando. É importante ler o manual do Gentoo para entender mais sobre o assunto.
(chroot)# emerge -avuDN @world
Depois de finalizar, inicio o X redirection
como chroot , isso ira mostrar a imagem no seu sistema principal.
Agora no ambiente principal em outro terminal:
user $ xauth list
vai mostrar para você o cookie "mágico" na tela do seu ambiente principal. Coloque no seu arquivo .Xauthority como chroot.
user $ sudo xauth extract <path_to_chroot>/root/.Xauthority <hostname>/unix:0
...onde estiver <hostname> é onde vai o nome da sua máquina.
NB: Quando você sai do seu sistema principal e entra novamente, o cookie muda, então você tem que refazer a linha a cima, se não o X redirection vai parar de funcionar
Volte para o chroot e verifique se o cookie está iniciado corretamente:
(chroot)# xauth list
deve mostrar o mesmo cookie que o seu sistema principal.
Depois inicie a variavel DISPLAY no chroot:
user $ echo $DISPLAY
deve mostrar ":0.0"
(chroot)# export DISPLAY=":0.0"
Você pode adicionar a linha acima no arquivo /etc/profile no Gentoo e isso irá iniciar esse comando toda vez que você entra como chroot.
Verefique se isso funcionou. No chroot execute xcalc (você precisa instalar o xcalc primeiro), e isso deve mostrar no seu sistema principal.
(chroot)# xcalc
Caso não ocorre erros, baixe o Wine no sistema chroot e configure ele. Você deve instalar e configurar o Wine 32-bits agora, pronto para rodar os binários 32-bits de Windows (configuração minus, incluindo bibliotecas que estão faltando e etc - mas essas coisas estão fora do escopo desse artigo)
(chroot)# emerge wine
Final size of the chroot Gentoo on my disk was close to 4.5GB. Of course you can use the chroot x86 Gentoo/Funtoo for other things that require a 32-bit environment, not only Wine.
And a final trick. Once you have everything setup, if you know how to use shell scripts you can automate the process of setting the cookie and entering the chroot. For instance I use a script that I put in ~/gentoo:
/home/<username>/gentoo/chr.sh
rm /home/<username>/gentoo/root/.Xauthority
xauth extract /home/<username>/root/.Xauthority <hostname>/unix:0
mount -t proc none proc
mount --rbind /sys sys
mount --rbind /dev dev
env -i HOME=/root TERM=$TERM /bin/chroot . bash -l
Replace <username> with your user name, and <hostname> with your machine's name. By executing that script as root from the ~/gentoo directory it automatically sets the cookie and enters the chroot.
To get the (chroot)# prompt, you can add the line
export PS1="(chroot) $PS1"
at the end of your /home/<username>/gentoo/etc/profile file.