Wine na Windows 10. Funguje

Wine — program na spúšťanie aplikácií Windows na počítačoch s Unixom.

Spustenie Wine na Windows bolo snom fanúšikov, ktorí nasledujú volanie srdca „Robíme to, čo musíme, pretože to nemusíme robiť“, minimálne od roku 2004, keď sa niekto pokúsil skompilovať Wine v Cygwin a rozbil registrový systém hostiteľa.

Ospravedlnenie: „A čo staré aplikácie, ktoré nefungujú správne na posledných Windows?“. Ale my predsa rozumieme, že skutočný dôvod — „Dlho som trpel za svoje umenie, teraz je vaša rada.“

Na konci roka 2008 ma premohla obsesívna myšlienka — a ja (zdá sa, že to som bol ja) som vytvoril stránku WineOnWindows na wiki Wine. Stručne: to bolo vôbec nemožné, keďže všetko fungovalo cez Cygwin, MinGW alebo Windows Services pre Unix. Aktuálna stránka nie je o mnoho úspešnejšia.

Windows 10 uvedla subsystém Windows pre Linux, a Ubuntu sa pohodlne sťahuje z Microsoft Store. Ako výsledok, náš hlúpy nápad sa vlastne realizuje takmer sám, len treba ručne nastaviť premennú prostredia DISPLAY.

Doteraz je to ohromne bezcenné. Wine funguje len s 64-bitovými aplikáciami Windows, teda ani ne so všetkými aplikáciami, ktoré sú súčasťou samotného Windows 10.

(Pôvodný projekt začal po tom, ako niekto nedokázal spustiť Encarta 97 na Windows 10. Takže, ako každé pravé geekovské riešenie, v skutočnosti nerieši pôvodný problém užívateľa).

Ale chcem ešte raz zdôrazniť: teraz to funguje triviálne. Nie som nejaký šialený génius, ktorý zrealizoval fantastický projekt — proste sa zdá, že som prvý, kto túto skutočnosť verejne oznámil.

Ako urobiť túto hlúpu vec

1. Máte 64-bitové Windows 10, nie? To je jediná verzia s WSL.

2. Nainštalujte WSL. Ovládací panel -> Aplikácie -> Programy a funkcie -> Zapnúť a vypnúť funkcie Windows. Zaškrtnite „Subsystem Windows pre Linux“. Reštartujte Windows.

3. Prejdite na Microsoft Store, nainštalujte Ubuntu (v podstate na jeho spustenie a vytvorenie WSL). Ja som nainštaloval Ubuntu 18.04 LTS. Otvorte Ubuntu a uvidíte terminál bash.

4. Nainštalujte nasledujúce z príkazového riadku bash:

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

Môžete nainštalovať aktuálnejšiu verziu Wine, ak chcete tráviť čas (nezabudnite na dve nové knižnice, ktoré sú potrebné pre wine-devel >=4.5 a ktoré ešte nie sú zahrnuté v Ubuntu!). Dajte vedieť, ak to funguje.

5. Pridajte do svojho .bashrc túto vetu:

export DISPLAY=:0.0

Pravdepodobne to chcete spustiť aj v aktuálnom okne bash.

6. Nainštalujte VcXsrv, pekne zabalenú verziu xorg, skompilovanú pre Windows, — jednoducho si vezmite poslednú verziu inštalačného súboru a spustite ju. Spustite X Server cez tlačidlo „Štart“ a XLaunch. Prevedie vás predvoľbami — väčšinu nechajte ako je. Pre istotu som zaškrtnul „Deaktivovať kontrolu prístupu“. Uložte konfiguráciu.

6a. Ak chcete overiť, že X-server je správne nastavený, nainštalujte sudo apt install x11-apps a spustite xeyes na krátku cestu späť do 80-90. rokov.

7. Sám wine nefunguje, pretože 32-bitové binárky sa nespúšťajú v WSL. Na našej 64-bitovej Windows 10 sa zobrazuje chyba /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error. Zrejme to opravili vo WSL 2.

A zatiaľ spustíme Poznámkový blok vo Wine!

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

Wine na Windows 10. Funguje

TO DO: 32-bitová podpora. Budeme si musieť počkať na vydanie WSL 2. Zaujímavé, či budú fungovať staré programy Win16 — teoreticky by sa mali spustiť vo Wine, aj keď už nefungujú v samotnom Windows.

32-bitové aplikácie cez qemu

Ďakujem anonymnému komentátorovi, ktorý navrhol, ako sa pustiť do spustenia 32-bitových aplikácií.

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 teraz môžeme urobiť:

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

Napriek tomu, Encarta 97 aj tak nefunguje:

fun@DESKTOP-7F6DU8P:/mnt/e$ wine SETUP.EXE
wine: Nezachytená stránková chyba pri čítaní prístupu na 0xffffffff na adrese 0x11df:0x00002c11 (vlákno 0011), spúšťam ladenie...
0011:err:seh:start_debugger Nepodarilo sa spustiť ladenie ("winedbg --auto 15 108") (2)
Prečítajte si Príručku vývojárov Wine, ako nastaviť winedbg alebo iný debugger.

Pre tých, ktorí vedia: file hovorí SETUP.EXE: MS-DOS exe, NE pre MS Windows 3.x, takže sa musíme vrátiť k zriedkavým 16-bitovým programom.

Encarta 97 sa inštaluje a funguje bez problémov vo Wine 4.13 na Linuxe… ale vo 4.13 na Windows 10 stále nie je:

fun@DESKTOP-7F6DU8P:~$ wine /mnt/e/SETUP.EXE
Xlib: rozšírenie "MIT-SHM" chýba na displeji ":0.0".
Xlib: rozšírenie "MIT-SHM" chýba na displeji ":0.0".
0009:err:process:__wine_kernel_init vypršal čas na čakanie na boot udalosť
001d:err:process:__wine_kernel_init vypršal čas na čakanie na boot udalosť
wine: Nezvládnutá stránková chyba pri čítaní prístupu na 0xffffffff na adrese 0x11cf:0x00002c11 (vlákno 001e), spúšťam debugger...001e:err:seh:start_debugger Nenašiel sa debugger ("winedbg --auto 28 152") (2)
Prečítajte si Príručku pre vývojárov Wine o tom, ako nastaviť winedbg alebo iný debugger
001d:err:ntdll:RtlpWaitForCriticalSection sekcia 0x7e6273e0 "syslevel.c: Win16Mutex" vypršal čas čakania vo vlákne 001d, blokované 001e, pokúšam sa znova (60 sek)
Xlib: rozšírenie "MIT-SHM" chýba na displeji ":0.0".
Nenašlo sa wine-gecko. HTML rendering bude zakázaný.
001e:err:seh:raise_exception Nezvládnutý kód výnimky c0000005 vlajky 0 adresa 0x7b4a6abc
wine klient chyba:1e: write: Zlý popisovač súboru

Samozrejme, generuje rôzne správy o chybách pri niekoľkých spusteniach…

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster