Wine en Windows 10. Funciona.

Wine — un programa para ejecutar aplicaciones de Windows en computadoras con Unix.

Ejecutar Wine en Windows ha sido un sueño para los fanáticos, que siguen el llamado del corazón 'Hacemos lo que debemos, porque no tenemos que hacerlo', al menos desde 2004, cuando alguien trató de compilar Wine en Cygwin y rompió el registro del sistema anfitrión.

Justificación: '¿Pero qué hay de las antiguas aplicaciones que no funcionan correctamente en las últimas versiones de Windows?'. Pero nosotros entendemos que la verdadera razón es 'He sufrido por mi arte, ahora es su turno'.

A finales de 2008, me asaltó una obsesión — y yo (parece que fui yo) creé una página WineOnWindows en la wiki de Wine. En resumen: esto era totalmente imposible, ya que todo funcionaba a través de Cygwin, MinGW o Windows Services para Unix. La página actual no es mucho más exitosa.

Windows 10 presentó el Subsistema de Windows para Linux, y Ubuntu se carga cómodamente desde la Microsoft Store. Como resultado, nuestra idea absurda se realiza casi por sí sola, excepto que hay que establecer manualmente la variable de entorno DISPLAY.

Hasta ahora, esto es increíblemente inútil. Wine solo funciona con aplicaciones de Windows de 64 bits, es decir, ni siquiera con todas las aplicaciones que vienen con Windows 10.

(El proyecto original comenzó después de que alguien no pudo ejecutar Encarta 97 en Windows 10. Así, como cualquier verdadera solución geek, en realidad no resuelve el problema original del usuario).

Pero quiero enfatizar una vez más: ahora funciona de manera trivial. No soy un genio loco que ha realizado un proyecto fantástico, solo parece que fui el primero en anunciar públicamente este hecho.

Cómo hacer esta cosa absurda

1. Tienes Windows 10 de 64 bits, ¿verdad? Esa es la única versión con WSL.

2. Instala WSL. Panel de control -> Aplicaciones -> Programas y características -> Activar o desactivar características de Windows. Marca 'Subsistema de Windows para Linux'. Reinicia Windows.

3. Ve a la Microsoft Store, instala Ubuntu (principalmente para su ejecución y creación de WSL). Instalé Ubuntu 18.04 LTS. Abre Ubuntu y verás la terminal bash.

4. Instala lo siguiente desde la línea de comandos de bash:

sudo dpkg --add-architecture i386
sudo apt update; sudo apt upgrade
sudo apt install wine-stable

Puedes instalar una versión más actual de Wine, si quieres perder el tiempo (no olvides las dos nuevas bibliotecas necesarias para wine-devel >=4.5 que aún no están en Ubuntu!). Avísame si esto funciona.

5. Agrega a tu .bashrc la siguiente línea:

export DISPLAY=:0.0

Probablemente querrás ejecutar esto también en la ventana bash actual.

6. Instala VcXsrv, una versión bien empaquetada de xorg, compilada para Windows; solo descarga la última versión del archivo ejecutable y ejecútalo. Inicia el X Server desde el botón 'Inicio' y XLaunch. Te guiará a través de las opciones predeterminadas; déjalas como están. Por si acaso, marqué 'Desactivar el control de acceso'. Guarda la configuración.

6a. Si quieres verificar que el X-server está configurado correctamente, instala sudo apt install x11-apps y ejecute xeyes para un breve viaje de regreso a los 80 y 90.

7. El propio wine no funciona porque los binarios de 32 bits no se ejecutan en WSL. En nuestra Windows 10 de 64 bits aparece un error /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error. Al parecer, esto se corrigió en WSL 2.

¡Y mientras tanto, arranquemos el Bloc de notas en Wine!

wine64 /usr/lib/x86_64-linux-gnu/wine/fakedlls/notepad.exe

Wine en Windows 10. Funciona.

POR HACER: soporte de 32 bits. Tendremos que esperar el lanzamiento de WSL 2. Es interesante si los programas antiguos Win16 funcionarán; teóricamente, deberían iniciar en Wine, incluso si ya no funcionan en Windows.

Aplicaciones de 32 bits a través de qemu

Gracias al comentarista anónimo, que sugirió cómo abordar la ejecución de aplicaciones de 32 bits.

sudo apt install qemu-user-static
sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic 'x7fELFx01x01x01x03x00x00x00x00x00x00x00x00x03x00x03x00x01x00x00x00' --mask 'xffxffxffxffxffxffxffxfcxffxffxffxffxffxffxffxffxf8xffxffxffxffxffxffxff'
sudo service binfmt-support start

Y ahora podemos hacer:

fun@DESKTOP-7F6DU8P:~$ wine --version
wine-3.0 (Ubuntu 3.0-1ubuntu1)

Sin embargo, Encarta 97 aún no funciona:

fun@DESKTOP-7F6DU8P:/mnt/e$ wine SETUP.EXE
wine: Exception de página no manejada al intentar acceder a 0xffffffff en la dirección 0x11df:0x00002c11 (hilo 0011), iniciando depurador...
0011:err:seh:start_debugger No se pudo iniciar el depurador ("winedbg --auto 15 108") (2)
Lee la Guía para desarrolladores de Wine sobre cómo configurar winedbg u otro depurador.

Para los que están en el tema: file indica SETUP.EXE: ejecutable de MS-DOS, NE para MS Windows 3.x, así que necesitamos bajar a programas raros de 16 bits.

Encarta 97 se instala y funciona perfectamente en Wine 4.13 en Linux... pero en 4.13 en Windows 10 todavía no está:

fun@DESKTOP-7F6DU8P:~$ wine /mnt/e/SETUP.EXE
Xlib: extensión "MIT-SHM" faltante en la pantalla ":0.0".
Xlib: extensión "MIT-SHM" faltante en la pantalla ":0.0".
0009:err:process:__wine_kernel_init espera del evento de inicio agotada
001d:err:process:__wine_kernel_init espera del evento de inicio agotada
wine: fallo de página no manejado en acceso de lectura a 0xffffffff en la dirección 0x11cf:0x00002c11 (hilo 001e), iniciando depurador...001e:err:seh:start_debugger No se pudo iniciar el depurador ("winedbg --auto 28 152") (2)
Lea la Guía de Desarrolladores de Wine sobre cómo configurar winedbg o otro depurador
001d:err:ntdll:RtlpWaitForCriticalSection sección 0x7e6273e0 "syslevel.c: Win16Mutex" espera agotada en el hilo 001d, bloqueado por 001e, reintentando (60 seg)
Xlib: extensión "MIT-SHM" faltante en la pantalla ":0.0".
No se pudo cargar wine-gecko. El renderizado HTML estará deshabilitado.
001e:err:seh:raise_exception Código de excepción no manejado c0000005 flags 0 addr 0x7b4a6abc
error del cliente wine:1e: escribir: Descriptor de archivo no válido

Por supuesto, está generando diferentes mensajes de error en múltiples ejecuciones…

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster