Wine auf Windows 10. Es funktioniert.

Wine — ein Programm zum Ausführen von Windows-Anwendungen auf Unix-basierten Computern.

Die Ausführung von Wine unter Windows war ein Traum für Fans, die dem Ruf des Herzens folgen: „Wir tun, was wir müssen, weil wir es nicht müssen“, mindestens seit 2004, als jemand versuchte, Wine in Cygwin zu kompilieren und das Hostsystem-Registry zerstörte..

Die Rechtfertigung: „Und was ist mit alten Anwendungen, die in den neuesten Windows-Versionen nicht richtig funktionieren?“. Aber wir verstehen, dass der wahre Grund „Ich habe lange für meine Kunst gelitten, jetzt seid ihr dran“ ist.

Ende 2008 wurde ich von einem obsessiven Gedanken geplagt – und ich (es scheint, es war ich) erstellte eine Seite WineOnWindows im Wine-Wiki. Kurz gesagt: Es war insgesamt unmöglich, da alles über Cygwin, MinGW oder Windows Services für Unix funktionierte. Die aktuelle Seite ist nicht viel erfolgreicher.

Windows 10 hat das Windows-Subsystem für Linux eingeführt, und Ubuntu lässt sich bequem über den Microsoft Store herunterladen. Infolgedessen wird unsere törichte Idee beinahe von selbst umgesetzt, abgesehen davon, dass die Umgebungsvariable DISPLAY manuell gesetzt werden muss.

Bisher ist das einfach unglaublich nutzlos. Wine funktioniert nur mit 64-Bit-Anwendungen von Windows, also nicht einmal mit allen Anwendungen, die mit Windows 10 selbst geliefert werden.

(Das ursprüngliche Projekt begann, nachdem jemand Encarta 97 unter Windows 10 nicht zum Laufen bringen konnte. So wie jede echte Nerd-Lösung löst es tatsächlich nicht das ursprüngliche Benutzerproblem.)

Aber ich möchte noch einmal betonen: jetzt funktioniert es ganz einfach. Ich bin kein verrückter Genie, das ein fantastisches Projekt realisiert hat – ich scheine einfach der Erste zu sein, der dieses Faktum öffentlich erklärt hat.

Wie man diese dumme Sache macht

1. Sie haben 64-Bit-Windows 10, richtig? Das ist die einzige Version mit WSL.

2. Installieren Sie WSL. Systemsteuerung -> Programme -> Programme und Funktionen -> Windows-Features aktivieren oder deaktivieren. Setzen Sie ein Häkchen bei 'Windows-Subsystem für Linux'. Starten Sie Windows neu.

3. Gehen Sie zum Microsoft Store, installieren Sie Ubuntu (hauptsächlich um es zu starten und WSL zu erstellen). Ich habe Ubuntu 18.04 LTS installiert. Öffnen Sie Ubuntu, und Sie sehen das Bash-Terminal.

4. Installieren Sie Folgendes über die Bash-Eingabeaufforderung:

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

Sie können eine aktuellere Version von Wine installieren, wenn Sie möchten. ein bisschen herumprobieren. (Vergessen Sie nicht die beiden neuen Bibliotheken, die für wine-devel >=4.5 erforderlich sind und die noch nicht in Ubuntu enthalten sind!). Lassen Sie mich wissen, ob das funktioniert.

5. Fügen Sie in Ihrer .bashrc die folgende Zeile hinzu:

export DISPLAY=:0.0

Wahrscheinlich möchten Sie dies auch im aktuellen Bash-Fenster ausführen.

6. Installieren Sie VcXsrv, eine schön verpackte Version von Xorg, die für Windows kompiliert wurde – einfach die neueste Version der ausführbaren Datei herunterladen und starten. Starten Sie den X-Server über die Schaltfläche 'Start' und XLaunch. Es führt Sie durch die Standardoptionen – lassen Sie die meisten von ihnen unverändert. Ich habe zur Sicherheit das Kontrollkästchen 'Zugriffskontrolle deaktivieren' aktiviert. Speichern Sie die Konfiguration.

6a. Wenn Sie überprüfen möchten, ob der X-Server richtig konfiguriert ist, installieren Sie sudo apt install x11-apps und führen Sie xeyes für eine kurze Reise zurück in die 80er und 90er Jahre aus.

7. Wine funktioniert nicht, weil 32-Bit-Binärdateien nicht in WSL ausgeführt werden. Auf unserem 64-Bit-Windows 10 erscheint die Fehlermeldung.Offenbar wurde dies /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format errorin WSL 2 behoben. Bis dahin starten wir den Notepad in Wine!.

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

ZU TUN:

Wine auf Windows 10. Es funktioniert.

32-Bit-Unterstützung. Wir müssen auf die Veröffentlichung von WSL 2 warten. 32-Bit Unterstützung. Bitte haben Sie einen Moment Geduld der Veröffentlichung von WSL 2. Es bleibt interessant, ob alte Win16-Programme funktionieren — theoretisch sollten sie unter Wine starten, auch wenn sie in Windows selbst nicht mehr laufen.

32-Bit-Anwendungen über qemu

Danke anonymem Kommentator, der einen Vorschlag gemacht hat, wie man 32-Bit-Anwendungen starten kann.

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

Und jetzt können wir Folgendes tun:

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

Allerdings funktioniert Encarta 97 trotzdem nicht:

fun@DESKTOP-7F6DU8P:/mnt/e$ wine SETUP.EXE
wine: Unhandled page fault on read access to 0xffffffff at address 0x11df:0x00002c11 (thread 0011), starting debugger...
0011:err:seh:start_debugger Couldn't start debugger ("winedbg --auto 15 108") (2)
Lesen Sie das Wine-Entwicklerhandbuch, um zu erfahren, wie man winedbg oder einen anderen Debugger einrichtet.

Für die, die sich auskennen: datei sagen SETUP.EXE: MS-DOS ausführbare Datei, NE für MS Windows 3.x, also müssen wir uns mit den seltenen 16-Bit-Programmen beschäftigen.

Encarta 97 wird einwandfrei unter Wine 4.13 auf Linux installiert und funktioniert … aber unter 4.13 auf Windows 10 gibt es immer noch keine Unterstützung:

fun@DESKTOP-7F6DU8P:~$ wine /mnt/e/SETUP.EXE
Xlib: Erweiterung "MIT-SHM" auf Anzeige ":0.0" fehlt.
Xlib: Erweiterung "MIT-SHM" auf Anzeige ":0.0" fehlt.
0009:err:process:__wine_kernel_init Boot-Ereignis-Wartezeit überschritten
001d:err:process:__wine_kernel_init Boot-Ereignis-Wartezeit überschritten
wine: Unbehandelter Seitenfehler beim Lesezugriff auf 0xffffffff an Adresse 0x11cf:0x00002c11 (Thread 001e), Debugger wird gestartet...001e:err:seh:start_debugger Debugger konnte nicht gestartet werden ("winedbg --auto 28 152") (2)
Lesen Sie das Wine-Entwicklerhandbuch, um zu erfahren, wie Sie winedbg oder einen anderen Debugger einrichten
001d:err:ntdll:RtlpWaitForCriticalSection Abschnitt 0x7e6273e0 "syslevel.c: Win16Mutex" wartezeit überschritten im Thread 001d, blockiert durch 001e, wird erneut probiert (60 Sek.)
Xlib: Erweiterung "MIT-SHM" auf Anzeige ":0.0" fehlt.
Konnte wine-gecko nicht laden. HTML-Darstellung wird deaktiviert.
001e:err:seh:raise_exception Unbehandelt Ausnahmecode c0000005 Flags 0 Adresse 0x7b4a6abc
wine-Client-Fehler:1e: Schreiben: Ungültiger Dateideskriptor

Natürlich gibt er aus verschiedene Fehlermeldungen in mehreren Starts…

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster