— un program pentru a rula aplicații Windows pe computere cu Unix.
Rularea Wine pe Windows a fost visul fanilor care răspund chemării "Facem ceea ce trebuie, pentru că nu suntem obligați să o facem", cel puțin din 2004, când cineva a încercat să compileze Wine în Cygwin și .
Justificare: „Ce se întâmplă cu aplicațiile vechi care nu funcționează corect în cele mai recente Windows?”. Dar noi înțelegem că adevărata motivatie — „Am suferit mult pentru arta mea, acum este rândul vostru”.
La sfârșitul anului 2008, m-a încercat o obsesie — și eu (cred că eram eu) am creat o pagină pe wiki-ul Wine. Pe scurt: a fost practic imposibil, deoarece totul funcționa prin Cygwin, MinGW sau Windows Services pentru Unix. nu este mult mai de succes.
Windows 10 a introdus subsistemul Windows pentru Linux, iar Ubuntu se descarcă confortabil din Microsoft Store. Drept urmare, ideea noastră prostească se realizează practic de la sine, cu excepția faptului că trebuie să setăm manual variabila de mediu DISPLAY.
Până acum este complet inutil. Wine funcționează doar cu aplicații Windows pe 64 de biți, adică nu cu toate aplicațiile care vin cu Windows 10.
(Proiectul inițial a început după ce cineva nu a reușit să ruleze Encarta 97 pe Windows 10. Astfel, ca orice soluție adevărat geek, ea în realitate nu rezolvă problema originală a utilizatorului).
Dar vreau să subliniez din nou: acum funcționează trivial. Nu sunt un geniu nebun care a realizat un proiect fantastic — doar că, cred că am fost primul care a anunțat public acest fapt.
Cum să fac această chestie prostească
1. Ai Windows 10 pe 64 de biți, nu-i așa? Este singura versiune cu WSL.
2. Instalează WSL. Panou de control -> Aplicații -> Programe și caracteristici -> Activare sau dezactivare caracteristici Windows. Bifează "Subsistemul Windows pentru Linux". Repornește Windows.
3. Accesează Microsoft Store, instalează Ubuntu (în principal, pentru a-l lansa și a crea WSL). Eu am instalat Ubuntu 18.04 LTS. Deschide Ubuntu și vei vedea terminalul bash.
4. Instalează următoarele din linia de comandă bash:
sudo dpkg --add-architecture i386
sudo apt update; sudo apt upgrade
sudo apt install wine-stablePoți instala o versiune mai recentă de Wine, dacă vrei (nu uitați de cele două biblioteci noi necesare pentru wine-devel >=4.5 care nu sunt incluse încă în Ubuntu!). Spuneți-mi dacă funcționează.
5. Adăugați la .bashrc această linie:
export DISPLAY=:0.0Probabil doriți să rulați asta și în fereastra bash curentă.
6. , o versiune bine ambalată a xorg, compilată pentru Windows - pur și simplu luați cea mai recentă versiune a fișierului executabil și rulați-l. Rulați X Server prin butonul „Start” și XLaunch. Vă va conduce prin setările implicite - lăsați majoritatea lor așa cum sunt. Am bifat „Dezactivați controlul accesului” pentru siguranță. Salvați configurația.
6a. Dacă doriți să verificați dacă X-serverul este configurat corect, instalați sudo apt install x11-apps și rulați xeyes pentru o scurtă călătorie înapoi în anii '80-'90.
7. Eu wine nu funcționează pentru că . Pe Windows 10 pe 64 de biți obținem o eroare /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error. Se pare că .
Între timp, să deschidem Notepad în Wine!
wine64 /usr/lib/x86_64-linux-gnu/wine/fakedlls/notepad.exe

TO DO: suport pe 32 de biți. Va trebui să așteptăm . Interesant, vor funcționa vechile programe Win16 — teoretic, acestea ar trebui să ruleze în Wine, chiar dacă nu mai funcționează în Windows în sine.
Aplicații pe 32 de biți prin qemu
Mulțumesc , care a propus cum să abordăm rularea aplicațiilor pe 32 de biți.
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
Și acum putem face:
fun@DESKTOP-7F6DU8P:~$ wine --version wine-3.0 (Ubuntu 3.0-1ubuntu1)
Cu toate acestea, Encarta 97 tot nu funcționează:
fun@DESKTOP-7F6DU8P:/mnt/e$ wine SETUP.EXE
wine: Pagina necontrolată la accesarea citirii 0xffffffff la adresa 0x11df:0x00002c11 (fir 0011), deschizând debugger...
0011:err:seh:start_debugger Nu am reușit să pornesc debuggerul ("winedbg --auto 15 108") (2)
Citiți Ghidul dezvoltatorilor Wine despre cum să configurați winedbg sau un alt debugger Pentru cei care sunt la curent: file spune SETUP.EXE: executabil MS-DOS, NE pentru MS Windows 3.x, deci trebuie să ne întoarcem la programele rare pe 16 biți.
Encarta 97 se instalează și funcționează impecabil în Wine 4.13 pe Linux… dar în 4.13 pe Windows 10 încă nu este:
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 Desigur, el dă mesaje diferite de eroare în mai multe sesiuni…
Sursa: habr.com
