— 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 .
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 im Wine-Wiki. Kurz gesagt: Es war insgesamt unmöglich, da alles über Cygwin, MinGW oder Windows Services für Unix funktionierte. 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-stableSie können eine aktuellere Version von Wine installieren, wenn Sie möchten. (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.0Wahrscheinlich möchten Sie dies auch im aktuellen Bash-Fenster ausführen.
6. , 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. Offenbar wurde dies /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format errorin WSL 2 behoben. .
wine64 /usr/lib/x86_64-linux-gnu/wine/fakedlls/notepad.exe
ZU TUN:

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 . 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 , 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
