Wine na Windows 10. Funguje

Wine — program pro spuštění aplikací Windows na počítačích pod Unixem.

Spuštění Wine na Windows bylo snem fanoušků, kteří se řídili voláním srdce „Děláme, co musíme, protože to dělat nemusíme“, minimálně od roku 2004, kdy se někdo pokusil zkompilovat Wine v Cygwin a rozbil registr hostitelského systému.

Omluva: „A co staré aplikace, které nefungují správně v posledních verzích Windows?“. Ale my víme, že pravá příčina – „Dlouho jsem trpěl za své umění, teď je na čase, abyste si to užili vy“.

Na konci roku 2008 mě přemohla obsesivní myšlenka – a já (myslím, že to jsem byl já) vytvořil stránku WineOnWindows na wiki Wine. Stručně řečeno: to bylo vůbec nemožné, protože vše fungovalo přes Cygwin, MinGW nebo Windows Services pro Unix. Aktuální stránka není o nic úspěšnější.

Windows 10 představila subsystém Windows pro Linux a Ubuntu se pohodlně stahuje z Microsoft Store. V důsledku toho se naše hloupá myšlenka realizuje prakticky sama, jen je třeba ručně nastavit proměnnou prostředí DISPLAY.

Dosud je to ohromně neužitečné. Wine funguje pouze se 64-bitovými aplikacemi Windows, takže ani ne se všemi aplikacemi, které jsou součástí samotného Windows 10.

(Původní projekt byl spuštěn poté, co se někdo nemohl spustit Encarta 97 na Windows 10. Takže stejně jako jakékoliv správné geekovské řešení, ve skutečnosti neřeší původní problém uživatele).

Ale chci znovu zdůraznit: teď to funguje triviálně. Nejsem žádný bláznivý génius, který realizoval fantastický projekt – jednoduše se zdá, že jsem jako první veřejně oznámil tento fakt.

Jak udělat tuto hloupou věc

1. Máš 64-bitové Windows 10, že? To je jediná verze s WSL.

2. Nainstaluj WSL. Ovládací panely -> Aplikace -> Programy a funkce -> Zapnutí a vypnutí komponent Windows. Zaškrtni „Windows Subsystem for Linux“. Restartuj Windows.

3. Zajdi do Microsoft Store, nainstaluj Ubuntu (v podstatě pro jeho spuštění a vytvoření WSL). Nainstaloval jsem Ubuntu 18.04 LTS. Otevři Ubuntu a uvidíš terminál bash.

4. Nainstaluj následující z příkazového řádku bash:

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

Můžeš nainstalovat aktuálnější verzi Wine, pokud chceš zahrávat si s hloupostmi (nezapomeňte na dvě nové knihovny potřebné pro wine-devel >=4.5, které ještě neexistují v Ubuntu!). Dejte vědět, zda to funguje.

5. Přidejte do svého .bashrc takový řádek:

export DISPLAY=:0.0

Pravděpodobně budete chtít toto spustit i v aktuálním okně bash.

6. Nainstalujte VcXsrv, hezky zabalénou verzi xorg, zkompilovanou pro Windows – prostě vezměte poslední verzi spustitelného souboru a spusťte ho. Spusťte X Server přes tlačítko „Start“ a XLaunch. Provede vás výchozími nastaveními – většinu z nich nechte tak, jak jsou. Pro jistotu jsem zaškrtl „Zrušit kontrolu přístupu“. Uložte konfiguraci.

6a. Pokud chcete zkontrolovat, zda je X-server správně nastaven, nainstalujte sudo apt install x11-apps a spusťte xeyes pro krátký výlet zpět do 80-90. let.

7. Samotný wine nefunguje, protože 32-bitové binárky se nespustí ve WSL. Na našem 64-bitovém Windows 10 se objevuje chyba /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error. Zdá se, že to bylo opraveno ve WSL 2.

A zatím spusťme Poznámkový blok ve Wine!

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

Wine na Windows 10. Funguje

TO DO: podpora 32 bitů. Budeme muset počkat na vydání WSL 2. Zajímavé, zda budou fungovat staré Win16 programy – podle mého názoru by měly fungovat ve Wine, i když už nefungují na samotném Windows.

32-bitové aplikace přes qemu

Děkuji anonymnímu komentátorovi, který navrhl, jak se dostat k spuštění 32-bitových aplikací.

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

A teď můžeme udělat:

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

Jenomže, Encarta 97 stejně nefunguje:

fun@DESKTOP-7F6DU8P:/mnt/e$ wine SETUP.EXE
wine: Nezpracovaná chyba stránky při přístupu k 0xffffffff na adrese 0x11df:0x00002c11 (vlákno 0011), spuštění debuggeru...
0011:err:seh:start_debugger Nedaří se spustit debugger ("winedbg --auto 15 108") (2)
Přečtěte si Průvodce pro vývojáře Wine o tom, jak nastavit winedbg nebo jiný debugger

Pro ty, kdo se v tom vyznají: soubor říká SETUP.EXE: MS-DOS executable, NE pro MS Windows 3.x, takže se musíme dostat k vzácným 16-bitovým programům.

Encarta 97 se instaluje a funguje bezchybně ve Wine 4.13 na Linuxu… ale ve 4.13 na Windows 10 stále není:

fun@DESKTOP-7F6DU8P:~$ wine /mnt/e/SETUP.EXE
Xlib: rozšíření "MIT-SHM" chybí na displeji ":0.0".
Xlib: rozšíření "MIT-SHM" chybí na displeji ":0.0".
0009:err:process:__wine_kernel_init čekání na bootovací událost vypršelo
001d:err:process:__wine_kernel_init čekání na bootovací událost vypršelo
wine: Nezpracovaná chyba stránkování při čtení přístupu k 0xffffffff na adrese 0x11cf:0x00002c11 (vlákno 001e), spouští debugger...001e:err:seh:start_debugger Nedařilo se spustit debugger ("winedbg --auto 28 152") (2)
Přečtěte si Příručku vývojářů Wine, jak nastavit winedbg nebo jiný debugger
001d:err:ntdll:RtlpWaitForCriticalSection sekce 0x7e6273e0 "syslevel.c: Win16Mutex" čekání vypršelo ve vlákně 001d, blokováno 001e, pokus o opakování (60 s)
Xlib: rozšíření "MIT-SHM" chybí na displeji ":0.0".
Nelze načíst wine-gecko. HTML vykreslování bude zakázáno.
001e:err:seh:raise_exception Nezpracovaný kód výjimky c0000005 příznaky 0 adresa 0x7b4a6abc
wine klientský chybový výstup:1e: write: Špatný deskriptor souboru

Samozřejmě, vydává různé chybové zprávy v několika spuštěních…

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster