O Wine é um programa para executar aplicativos do Windows em computadores executando o Unix.
O lançamento do Wine no Windows foi um sonho tornado realidade para os fãs que seguem o chamado do coração "Fazemos o que devemos, porque não somos obrigados a fazê-lo", pelo menos desde 2004, quando alguém tentou compilar o Wine no Cygwin e
quebrou o registro do host sistemaJustificação: "Mas e as aplicações antigas que não funcionam corretamente no Windows recente?" Mas entendemos que a
verdadeira razão é "sofri por muito tempo pela minha arte, agora é a sua vez".
No final de 2008, fui superada por uma obsessão - e eu (ao que parece, fui eu) criei a página
WineOnWindows no wiki do Wine.
Resumindo: isso não era possível, pois tudo funcionava através do Cygwin, MinGW ou Windows Services for Unix.
A página atual não
tem muito mais sucesso.
O Windows 10 introduziu o subsistema Windows para Linux e o Ubuntu é convenientemente baixado da Microsoft Store. Como resultado, nossa idéia estúpida é realizada quase por si só, a menos que você precise definir manualmente a variável de ambiente DISPLAY.
Até agora, é incrivelmente inútil. O Wine só funciona com aplicativos Windows de 64 bits, ou seja, nem mesmo com todos os aplicativos fornecidos com o próprio Windows 10.
(O projeto inicial foi iniciado depois que alguém não conseguiu executar o Encarta 97 no Windows 10. Portanto, como qualquer solução nerd de verdade, ele realmente não resolve o problema original do usuário).
Mas quero enfatizar mais uma vez:
agora funciona trivialmente . Não sou um gênio louco que realizou um projeto fantástico - apenas pareço ser o primeiro a anunciar publicamente esse fato.
Como fazer essa coisa estúpida
1. Você tem o Windows 10 de 64 bits, certo? Esta é a única versão com WSL.
2. Instale o WSL. Painel de controle -> Aplicativos -> Programas e Recursos -> Ativar ou desativar os Recursos do Windows. Marque a caixa "Windows Subsystem for Linux". Reinicie o Windows.
3. Vá para a Microsoft Store, instale o Ubuntu (basicamente, o WSL foi criado para iniciá-lo). Eu instalei o Ubuntu 18.04 LTS. Abra o Ubuntu e você verá o terminal bash.
4. Instale o seguinte na linha de comando bash:
sudo dpkg --add-architecture i386 sudo apt update; sudo apt upgrade sudo apt install wine-stable
Você pode instalar uma versão mais atual do Wine se quiser
brincar (não se esqueça das duas novas bibliotecas necessárias para o wine-devel> = 4.5 e que ainda não estão incluídas no Ubuntu!). Deixe-me saber se isso funciona.
5. Adicione a seguinte linha ao seu
.bashrc
:
export DISPLAY=:0.0
Você provavelmente também deseja executar isso na janela atual do bash.
6. Instale o VcXsrv , uma versão lindamente compilada do xorg compilada para Windows - basta pegar o último executável e executá-lo. Inicie o X Server através do botão Iniciar e do XLaunch. Ele o guiará pelos padrões - deixe a maioria deles como estão. Apenas no caso, verifiquei o "Desativar controle de acesso". Salve a configuração.
6a Se você deseja verificar se o servidor X está configurado corretamente, instale o
sudo apt install x11-apps
e execute
xeyes
para uma breve viagem de volta aos anos 80-90.
7. O wine
si não funciona, porque
os binários de 32 bits não iniciam na WSL . No Windows 10 de 64 bits, o erro
/usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error
. Aparentemente, isso foi
corrigido no WSL 2 .
Enquanto isso, execute o Notepad no Wine!
wine64 /usr/lib/x86_64-linux-gnu/wine/fakedlls/notepad.exe
A FAZER: suporte de 32 bits. Teremos que aguardar o
lançamento do WSL 2 . Gostaria de saber se os antigos programas Win16 funcionarão - em teoria, eles devem rodar no Wine, mesmo que não funcionem mais no próprio Windows.
Aplicativos de 32 bits através do qemu
Obrigado a
um comentarista anônimo que sugeriu como abordar o lançamento de aplicativos de 32 bits.
sudo apt install qemu-user-static
sudo update-binfmts - instala i386 / usr / bin / qemu-i386-static --magic '\ x7fELF \ x01 \ x01 \ x01 \ x03 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x03 \ x00 \ x03 \ x00 \ x01 \ x00 \ x00 \ x00 '--mask' \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xfc \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xf8 \ xff \ xff \ xff \ xff \ xff \ xff \ xff '
serviço sudo binfmt-support start
E agora podemos fazer:
fun @ DESKTOP-7F6DU8P: ~ $ wine --version
wine-3.0 (Ubuntu 3.0-1ubuntu1)
No entanto, o Encarta 97 ainda não funciona:
fun @ DESKTOP-7F6DU8P: / mnt / e $ wine SETUP.EXE
vinho: falha de página não tratada no acesso de leitura a 0xffffffff no endereço 0x11df: 0x00002c11 (thread 0011), iniciando o depurador ...
0011: err: seh: start_debugger Não foi possível iniciar o depurador ("winedbg --auto 15 108") (2)
Leia o Wine Developers Guide sobre como configurar o winedbg ou outro depurador
Para aqueles que estão no tópico:
file
diz
SETUP.EXE: MS-DOS executable, NE for MS Windows 3.x
, portanto, precisamos ir até os raros programas de 16 bits.
O Encarta 97 é instalado e funciona perfeitamente no Wine 4.13 no Linux ... mas ainda não no 4.13 no Windows 10:
fun @ DESKTOP-7F6DU8P: ~ $ wine /mnt/e/SETUP.EXE
Xlib: extensão "MIT-SHM" ausente no visor ": 0.0".
Xlib: extensão "MIT-SHM" ausente no visor ": 0.0".
0009: err: process: __ espera de evento de inicialização wine_kernel_init expirou
001d: err: process: __ tempo de espera do evento de inicialização wine_kernel_init expirou
vinho: falha de página não tratada no acesso de leitura a 0xffffffff no endereço 0x11cf: 0x00002c11 (thread 001e), iniciando o depurador ... 001e: err: seh: start_debugger Não foi possível iniciar o depurador ("winedbg --auto 28 152") (2)
Leia o Wine Developers Guide sobre como configurar o winedbg ou outro depurador
001d: err: ntdll: seção RtlpWaitForCriticalSection 0x7e6273e0 "syslevel.c: Win16Mutex" espera expirada no encadeamento 001d, bloqueado por 001e, repetindo (60 s)
Xlib: extensão "MIT-SHM" ausente no visor ": 0.0".
Não foi possível carregar a lagartixa. A renderização HTML será desativada.
001e: err: seh: raise_exception Código de exceção não tratada c0000005 sinalizadores 0 endereço 0x7b4a6abc
erro do cliente wine: 1e: write: descritor de arquivo incorreto
Obviamente, ele produz
diferentes mensagens de erro em várias partidas ...