Wine pÄ Windows 10. Det fungerar

Wine — ett program för att köra Windows-appar pĂ„ datorer med Unix.

Att köra Wine pÄ Windows har varit en dröm för entusiaster som följer sitt hjÀrtas kallelse "Vi gör vad vi mÄste, för att vi inte Àr tvungna att göra det", Ätminstone sedan 2004, nÀr nÄgon försökte kompilera Wine i Cygwin och skadade vÀrdsystemets register.

UrsÀkten: "Men hur Àr det med gamla appar som inte fungerar korrekt i de senaste versionerna av Windows?" Men vi vet att den verkliga anledningen Àr "Jag har lidit för min konst, nu Àr det er tur".

I slutet av 2008 blev jag övervĂ€ldigad av en besatt tanke – och jag (det verkar som om det var jag) skapade en sida WineOnWindows pĂ„ Wine-wiki. Kort sagt: det var helt omöjligt, eftersom allt fungerade genom Cygwin, MinGW eller Windows Services för Unix. Den nuvarande sidan Ă€r inte mycket mer framgĂ„ngsrik.

Windows 10 introducerade Windows Subsystem for Linux, och Ubuntu kan enkelt laddas ner frÄn Microsoft Store. Som ett resultat realiseras vÄr dumma idé nÀstan av sig sjÀlv, förutom att man mÄste stÀlla in miljövariabeln DISPLAY manuellt.

Fortfarande Àr det vansinnigt vÀrdelöst. Wine fungerar bara med 64-bitars Windows-appar, vilket innebÀr att det inte ens fungerar med alla appar som ingÄr i sjÀlva Windows 10.

(Det ursprungliga projektet startade efter att nÄgon misslyckades med att köra Encarta 97 pÄ Windows 10. SÄledes, precis som med alla verkliga geeklösningar, löser det faktiskt inte det ursprungliga anvÀndarproblemet).

Men jag vill betona igen: nu fungerar detta trivialt. Jag Àr ingen galen geni som har genomfört ett fantastiskt projekt - det Àr bara sÄ att jag verkar vara den första som offentligt har meddelat detta faktum.

Hur man gör denna dumma sak

1. Har du en 64-bitars Windows 10, eller hur? Det Àr den enda versionen med WSL.

2. Installera WSL. Kontrollpanelen -> Appar -> Program och funktioner -> Aktivera eller inaktivera Windows-funktioner. Kryssa för "Windows Subsystem for Linux". Starta om Windows.

3. GĂ„ till Microsoft Store, installera Ubuntu (frĂ€mst för att kunna köra den och skapa WSL). Jag installerade Ubuntu 18.04 LTS. Öppna Ubuntu och du kommer att se bash-terminalen.

4. Installera följande frÄn bash-kommandoraden:

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

Du kan installera en nyare version av Wine om du vill slösa bort tid (glöm inte de tvÄ nya biblioteken som behövs för wine-devel >=4.5 och som Ànnu inte har kommit med i Ubuntu!). LÄt mig veta om detta fungerar.

5. LÀgg till följande rad till din .bashrc :

export DISPLAY=:0.0

Du kanske vill köra detta Àven i det aktuella bash-fönstret.

6. Installera VcXsrv, en snyggt förpackad version av xorg, kompilerad för Windows - ta bara den senaste versionsfilen och kör den. Starta X Server via Start-menyn och XLaunch. Den kommer att guida dig genom standardinstÀllningarna - lÀmna de flesta som de Àr. Jag bockade för 'Inaktivera Ätkomstkontroll' försiktighetsÄtgÀrd. Spara konfigurationen.

6a. Om du vill kontrollera att X-servern Àr rÀtt instÀlld, installera sudo apt install x11-apps och kör xeyes för en kort resa tillbaka till 80-90-talet.

7. SjÀlva wine fungerar inte eftersom 32-bitars binÀrer inte körs i WSL. PÄ vÄr 64-bitars Windows 10 visas ett felmeddelande /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error. Tydligen har detta fixats i WSL 2.

Och nu ska vi köra Anteckningar i Wine!

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

Wine pÄ Windows 10. Det fungerar

ATT GÖRA: 32-bitars stöd. Vi fĂ„r vĂ€nta pĂ„ slĂ€ppet av WSL 2. Det Ă€r intressant att se om gamla Win16-program fungerar - i teorin borde de kunna köras i Wine, Ă€ven om de inte lĂ€ngre fungerar i sjĂ€lva Windows.

32-bitars applikationer via qemu

Tack till den anonyma kommentatorn, som föreslog hur man kan köra 32-bitars applikationer.

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

Och nu kan vi göra:

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

Men Encarta 97 fungerar fortfarande inte:

fun@DESKTOP-7F6DU8P:/mnt/e$ wine SETUP.EXE
wine: Ohanterat sidfel vid lÀsning av 0xffffffff vid adress 0x11df:0x00002c11 (trÄd 0011), startar debugger...
0011:err:seh:start_debugger Kunde inte starta debuggern ("winedbg --auto 15 108") (2)
LÀs Wine Developers Guide om hur man stÀller in winedbg eller en annan debugger

För dem som Àr insatta: file sÀger SETUP.EXE: MS-DOS-exekverbart, NE för MS Windows 3.x, sÄ vi behöver gÄ ner till sÀllsynta 16-bitars program.

Encarta 97 installeras och fungerar utmÀrkt i Wine 4.13 pÄ Linux
 men i 4.13 pÄ Windows 10 fungerar den fortfarande inte:

fun@DESKTOP-7F6DU8P:~$ wine /mnt/e/SETUP.EXE
Xlib: extension "MIT-SHM" missing on display ":0.0".
Xlib: extension "MIT-SHM" missing on display ":0.0".
0009:err:process:__wine_kernel_init boot event wait timed out
001d:err:process:__wine_kernel_init boot event wait timed out
wine: Unhandled page fault on read access to 0xffffffff at address 0x11cf:0x00002c11 (thread 001e), starting debugger...001e:err:seh:start_debugger Couldn't start debugger ("winedbg --auto 28 152") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
001d:err:ntdll:RtlpWaitForCriticalSection section 0x7e6273e0 "syslevel.c: Win16Mutex" wait timed out in thread 001d, blocked by 001e, retrying (60 sec)
Xlib: extension "MIT-SHM" missing on display ":0.0".
Could not load wine-gecko. HTML rendering will be disabled.
001e:err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x7b4a6abc
wine client error:1e: write: Bad file descriptor

SjĂ€lvklart ger den olika felmeddelanden vid flera körningar


KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster