Wein unter Windows 10. Es funktioniert

Wine ist ein Programm zum Ausführen von Windows-Anwendungen auf Computern unter Unix.

Das Starten 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 tun müssen“, zumindest seit 2004, als jemand versuchte, Wine in Cygwin zu kompilieren und die Host-Registrierung zu brechen System .

Begründung: "Aber was ist mit alten Anwendungen, die in neueren Windows-Versionen nicht ordnungsgemäß funktionieren?" Aber wir verstehen, dass der wahre Grund ist: "Ich habe lange unter meiner Kunst gelitten, jetzt sind Sie dran."

Ende 2008 war ich von einer Besessenheit überwältigt - und ich (anscheinend war ich es) habe die WineOnWindows- Seite im Wine-Wiki erstellt. Kurz gesagt: Dies war überhaupt nicht möglich, da alles über Cygwin, MinGW oder Windows Services für Unix funktionierte. Die aktuelle Seite ist nicht viel erfolgreicher.

Windows 10 führte das Windows-Subsystem für Linux ein, und Ubuntu kann bequem aus dem Microsoft Store heruntergeladen werden. Infolgedessen wird unsere dumme Idee fast von selbst verwirklicht, es sei denn, Sie müssen die Umgebungsvariable DISPLAY manuell festlegen.

Bis jetzt ist es atemberaubend nutzlos. Wine funktioniert nur mit 64-Bit-Windows-Anwendungen, dh nicht einmal mit allen Anwendungen, die mit Windows 10 selbst geliefert werden.

(Das ursprüngliche Projekt wurde gestartet, nachdem jemand Encarta 97 unter Windows 10 nicht ausführen konnte. Daher löst es wie jede echte geekige Lösung das ursprüngliche Problem des Benutzers nicht wirklich.)

Aber ich möchte noch einmal betonen: Jetzt funktioniert es trivial . Ich bin kein verrücktes Genie, das ein fantastisches Projekt realisiert hat - ich scheine nur der erste zu sein, der diese Tatsache öffentlich bekannt gibt.

Wie man diese dumme Sache macht


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

2. Installieren Sie WSL. Systemsteuerung -> Anwendungen -> Programme und Funktionen -> Windows-Funktionen ein- oder ausschalten. Aktivieren Sie das Kontrollkästchen "Windows-Subsystem für Linux". Starten Sie Windows neu.

3. Gehen Sie zum Microsoft Store und installieren Sie Ubuntu (im Grunde wurde WSL erstellt, um es zu starten). Ich habe Ubuntu 18.04 LTS installiert. Öffnen Sie Ubuntu und Sie sehen das Bash-Terminal.

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

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 herumalbern möchten (vergessen Sie nicht die beiden neuen Bibliotheken, die für wine-devel> = 4.5 benötigt werden und die noch nicht in Ubuntu enthalten sind!). Lassen Sie mich wissen, ob dies funktioniert.

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

 export DISPLAY=:0.0 

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

6. Installieren Sie VcXsrv , eine wunderschön verpackte Version von xorg, die für Windows kompiliert wurde. Nehmen Sie einfach die neueste Version der ausführbaren Datei und führen Sie sie aus. Starten Sie X Server über die Schaltfläche Start und XLaunch. Er wird Sie durch die Standardeinstellungen führen - lassen Sie die meisten so, wie sie sind. Für alle Fälle habe ich die Option "Zugriffskontrolle deaktivieren" aktiviert. Speichern Sie die Konfiguration.

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

7. wine selbst funktioniert nicht, da 32-Bit-Binärdateien nicht in der WSL gestartet werden . Unter unserem 64-Bit-Windows 10 wird der Fehler /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error . Anscheinend wurde dies in WSL 2 behoben .

Führen Sie in der Zwischenzeit Notepad in Wine aus!

  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. Ich frage mich, ob die alten Win16-Programme funktionieren werden - theoretisch sollten sie in Wine ausgeführt werden, auch wenn sie in Windows selbst nicht mehr funktionieren.

32-Bit-Anwendungen über qemu


Vielen Dank an einen anonymen Kommentator, der vorgeschlagen hat, wie der Start von 32-Bit-Anwendungen angegangen werden soll.

  sudo apt installiere qemu-user-static
 sudo update-binfmts --installiere 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 '--maske' \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xfc \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xf8 \ xff \ xff \ xff \ xff \ xff \ xff \ xff '
 sudo service binfmt-support start 


Und jetzt können wir tun:

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

Encarta 97 funktioniert jedoch immer noch nicht:

  fun @ DESKTOP-7F6DU8P: / mnt / e $ wine SETUP.EXE
 Wein: Nicht behandelter Seitenfehler beim Lesezugriff auf 0xffffffff unter der Adresse 0x11df: 0x00002c11 (Thread 0011), Debugger wird gestartet ...
 0011: err: seh: start_debugger Debugger konnte nicht gestartet werden ("winedbg --auto 15 108") (2)
 Lesen Sie im Wine Developers Guide, wie Sie winedbg oder einen anderen Debugger einrichten 

Für diejenigen im Thema: file sagt SETUP.EXE: MS-DOS executable, NE for MS Windows 3.x , also müssen wir zu den seltenen 16-Bit-Programmen gehen.

Encarta 97 installiert und funktioniert einwandfrei in Wine 4.13 unter Linux ... aber immer noch nicht in 4.13 unter Windows 10:

  fun @ DESKTOP-7F6DU8P: ~ $ wine /mnt/e/SETUP.EXE
 Xlib: Erweiterung "MIT-SHM" fehlt auf dem Display ": 0.0".
 Xlib: Erweiterung "MIT-SHM" fehlt auf dem Display ": 0.0".
 0009: err: process: __ Zeitüberschreitung beim Warten auf das Startereignis von wine_kernel_init
 001d: err: process: __ Zeitüberschreitung beim Warten auf das Startereignis von wine_kernel_init
 Wein: Nicht behandelter Seitenfehler beim Lesezugriff auf 0xffffffff unter der 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 im Wine Developers Guide, wie Sie winedbg oder einen anderen Debugger einrichten
 001d: err: ntdll: RtlpWaitForCriticalSection-Abschnitt 0x7e6273e0 "syslevel.c: Win16Mutex" Wartezeit in Thread 001d abgelaufen, blockiert durch 001e, erneuter Versuch (60 Sek.)
 Xlib: Erweiterung "MIT-SHM" fehlt auf dem Display ": 0.0".
 Weingecko konnte nicht geladen werden.  HTML-Rendering wird deaktiviert.
 001e: err: seh: raise_exception Nicht behandelter Ausnahmecode c0000005 flags 0 addr 0x7b4a6abc
 Wein-Client-Fehler: 1e: Schreiben: Ungültiger Dateideskriptor 

Natürlich erzeugt es bei mehreren Starts unterschiedliche Fehlermeldungen ...

Source: https://habr.com/ru/post/de463375/


All Articles