The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "32 bit chroot environment for Wine/pt-br"
(Created page with "No Funtoo 1.4, programas em 32 bits não podem ser executadas diretamente, incluindo o Wine 32-bits. Porém, o Wine 32-bits é nescessário para rodar programas de antigos de...") |
(Created page with "no final do seu arquivo /home/<username>/gentoo/etc/profile.") |
||
(26 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
No Funtoo 1.4, programas em 32 bits não podem ser | 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: <b>X redirection</b> | |||
{{console|body= | {{console|body= | ||
Line 12: | Line 12: | ||
$##i## wget <stage3_URL>}} | $##i## 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. | |||
{{console|body= | {{console|body= | ||
Line 27: | Line 27: | ||
\##r####b##(chroot)##bl#####i## eselect profile list}} | \##r####b##(chroot)##bl#####i## 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. | |||
{{console|body= | {{console|body= | ||
\##r####b##(chroot)##bl#####i## eselect profile set 5 }} | \##r####b##(chroot)##bl#####i## 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. | |||
{{console|body= | {{console|body= | ||
\##r####b##(chroot)##bl#####i## emerge -avuDN @world }} | \##r####b##(chroot)##bl#####i## emerge -avuDN @world }} | ||
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: | |||
{{console|body= | {{console|body= | ||
$##i## xauth list }} | $##i## xauth list }} | ||
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 }} | ||
... | ...onde estiver <hostname> é onde vai o nome da sua máquina. | ||
<b>NB: | <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> | ||
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 }} | ||
deve mostrar o mesmo cookie que o seu sistema principal. | |||
Depois inicie a variavel DISPLAY no chroot: | |||
{{console|body= | {{console|body= | ||
$##i## echo $DISPLAY }} | $##i## echo $DISPLAY }} | ||
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" }} | ||
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. | |||
{{console|body= | {{console|body= | ||
\##r####b##(chroot)##bl#####i## xcalc }} | \##r####b##(chroot)##bl#####i## 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) | |||
{{console|body= | {{console|body= | ||
\##r####b##(chroot)##bl#####i## emerge wine }} | \##r####b##(chroot)##bl#####i## 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: | |||
{{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}} | ||
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 | |||
<b>export PS1="(chroot) $PS1"</b> | <b>export PS1="(chroot) $PS1"</b> | ||
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.