Difference between revisions of "32 bit chroot environment for Wine/pt-br"

From Funtoo
Jump to navigation Jump to search
(Created page with "Agora no ambiente principal em outro terminal:")
(Created page with "no final do seu arquivo /home/<username>/gentoo/etc/profile.")
 
(16 intermediate revisions by the same user not shown)
Line 5: Line 5:
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.
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: <b>redirecionamento X</b>
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: <b>X redirection</b>


{{console|body=
{{console|body=
Line 37: Line 37:
\##r####b##(chroot)##bl#####i## emerge -avuDN @world }}
\##r####b##(chroot)##bl#####i## emerge -avuDN @world }}


Depois de finalizar, va para a parte: <b>{{c|X redirection}}</b> como chroot , isso ira mostrar a imagem no seu sistema principal.
Depois de finalizar, inicio o <b>{{c|X redirection}}</b> como chroot , isso ira mostrar a imagem no seu sistema principal.


Agora no ambiente principal em outro terminal:  
Agora no ambiente principal em outro terminal:  
Line 44: Line 44:
$##i## xauth list }}
$##i## xauth list }}


will show you the "magic" cookie of your host display. Put it into .Xauthority on the chroot:
vai mostrar para você o cookie "mágico" na tela do seu ambiente principal. Coloque no seu arquivo .Xauthority como chroot.


{{console|body=
{{console|body=
$##i## sudo xauth extract <path_to_chroot>/root/.Xauthority <hostname>/unix:0 }}
$##i## sudo xauth extract <path_to_chroot>/root/.Xauthority <hostname>/unix:0 }}


...where <hostname> is the name of your host machine.
...onde estiver <hostname> é onde vai o nome da sua máquina.


<b>NB: when you log out of your host then log back in, the cookie changes so you will have to redo the line above, or X redirection will stop working.</b>  
<b>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</b>  




Back to the chroot, and verify that the cookie is set correctly:  
Volte para o chroot e verifique se o cookie está iniciado corretamente:  


{{console|body=
{{console|body=
\##r####b##(chroot)##bl#####i## xauth list }}
\##r####b##(chroot)##bl#####i## xauth list }}


should show the same cookie as on the host.
deve mostrar o mesmo cookie que o seu sistema principal.


Next set the DISPLAY variable in chroot:
Depois inicie a variavel DISPLAY no chroot:


{{console|body=
{{console|body=
$##i## echo $DISPLAY }}
$##i## echo $DISPLAY }}


should show ":0.0"  
deve mostrar ":0.0"  


{{console|body=
{{console|body=
\##r####b##(chroot)##bl#####i## export DISPLAY=":0.0" }}
\##r####b##(chroot)##bl#####i## export DISPLAY=":0.0" }}


You can add the above line to /etc/profile in Gentoo so it gets automatically set every time you enter the chroot.
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.


Verify that it works. In chroot run xcalc (you may have to install xcalc first), and it should display on the host.  
Verefique se isso funcionou. No chroot execute xcalc (você precisa instalar o xcalc primeiro), e isso deve mostrar no seu sistema principal.  


{{console|body=
{{console|body=
\##r####b##(chroot)##bl#####i## xcalc }}
\##r####b##(chroot)##bl#####i## xcalc }}


If no errors, emerge wine in the chroot and configure it. You should have a 32-bit wine now, ready to run 32-bit Windows binaries (minus configuring, figuring out missing libs etc - but this is beyond the scope of this writeup)  
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)  


{{console|body=
{{console|body=
\##r####b##(chroot)##bl#####i## emerge wine }}
\##r####b##(chroot)##bl#####i## 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.
O tamanho final do meu ambiente chroot foi de aproximadamente 4.5GB. Claro que você pode usar o ambiente chroot x86 do Gentoo/Funtoo para outras coisas que nescessitam de um ambiente 32-bits, não apenas para usar o 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:
E agora uma dica final. Depois que você tiver tudo pronto, se você souber como usar shell scripts você pode automatizar os processos para iniciar o coockie e entrar no ambiente chroot. Na minha instancia eu usei um script que eu coloquei na minha pasta ~/gentoo:


{{file|name=/home/<username>/gentoo/chr.sh|body=
{{file|name=/home/<username>/gentoo/chr.sh|body=
Line 96: Line 96:
env -i HOME=/root TERM=$TERM /bin/chroot . bash -l}}
env -i HOME=/root TERM=$TERM /bin/chroot . bash -l}}


Replace <username> with your user name, and <hostname> with your machine's name.  
Troque <username> com o seu nome de usuário, e o <hostname> com o nome da sua máquina.
By executing that script as root from the ~/gentoo directory it automatically sets the cookie and enters the chroot.  
Executando esse script como root pela pasta ~/gentoo, isso vai iniciar o coockie automaticamente e entrar em chroot.  


To get the (chroot)# prompt, you can add the line
Para conseguir o (chroot)# no seu prompt, você pode adicionar essa linha


<b>export PS1="(chroot) $PS1"</b>
<b>export PS1="(chroot) $PS1"</b>


at the end of your /home/<username>/gentoo/etc/profile file.
no final do seu arquivo /home/<username>/gentoo/etc/profile.
[[Category:HOWTO]]
[[Category:HOWTO]]
[[Category:Official Documentation]]
[[Category:Official Documentation]]

Latest revision as of 02:12, October 17, 2021

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

O tamanho final do meu ambiente chroot foi de aproximadamente 4.5GB. Claro que você pode usar o ambiente chroot x86 do Gentoo/Funtoo para outras coisas que nescessitam de um ambiente 32-bits, não apenas para usar o Wine.


E agora uma dica final. Depois que você tiver tudo pronto, se você souber como usar shell scripts você pode automatizar os processos para iniciar o coockie e entrar no ambiente chroot. Na minha instancia eu usei um script que eu coloquei na minha pasta ~/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

Troque <username> com o seu nome de usuário, e o <hostname> com o nome da sua máquina. Executando esse script como root pela pasta ~/gentoo, isso vai iniciar o coockie automaticamente e entrar em chroot.

Para conseguir o (chroot)# no seu prompt, você pode adicionar essa linha

export PS1="(chroot) $PS1"

no final do seu arquivo /home/<username>/gentoo/etc/profile.