— programm, et rakendab Windowsi rakendusi Unixiga arvutites.
Wine'i käivitamine Windowsis oli fännide unistus, kes järgivad südame kutset "Me teeme seda, mida peame, sest me ei pea seda tegema" vähemalt alates 2004. aastast, mil keegi üritas Wine'i Cygwini alla kompileerida ja .
Küsimus: "Aga kuidas vanade rakendustega, mis ei tööta korralikult uusimates Windowsis?". Kuid me mõistame, et tõeline põhjus - "Ma olen kaua kannatanud oma kunsti nimel, nüüd on teie kord".
2008. aasta lõpus tabas mind kinnismõte - ja ma (tundub, et see olin mina) lõin lehekülje Wine'i vikis. Lühidalt: oli see üldse võimatu, kuna kõik töötas läbi Cygwini, MinGW või Windows Services for Unix. ei ole palju edukam.
Windows 10 tutvustas Windowsi alamsüsteemi Linuxile, ja Ubuntu laaditakse mugavalt alla Microsoft Store'ist. Seetõttu rakendub meie rumal idee praktiliselt iseenesest, välja arvatud, et peate käsitsi seadistama keskkonnamuutuja DISPLAY.
Kuni tänaseni on see vaimustavalt kasutuskõlbmatu. Wine töötab ainult 64-bitiste Windowsi rakendustega, mis tähendab, et isegi mitte kõik rakendused, mis on osa Windows 10-st.
(Algne projekt algas pärast seda, kui keegi ei suutnud Encarta 97 Windows 10-s käivitada. Nii et nagu iga ehtne geekide lahendus, ei lahenda see tegelikult kasutaja algset probleemi).
Aga tahan veel kord rõhutada: praegu töötab see triviaalset. Ma ei ole mingi hull geenius, kes on ellu viinud fantastilise projekti - lihtsalt tundub, et ma olen esimene, kes seda fakti avalikult tunnistas.
Kuidas seda rumalat asja teha
1. Kas teil on 64-bitine Windows 10, eks? See on ainus versioon WSL-iga.
2. Installige WSL. Juhtpaneel -> Rakendused -> Programmid ja funktsioonid -> Windowsi funktsioonide lubamine ja keelamine. Pange linnuke "Windowsi alamsüsteem Linuxile". Taaskäivitage Windows.
3. Minge Microsoft Store'i, installige Ubuntu (peamiselt selle käivitamiseks ja WSL-i loomiseks). Ma installisin Ubuntu 18.04 LTS. Avage Ubuntu ja näete bash terminali.
4. Installige järgmine bash'i käsurealt:
sudo dpkg --add-architecture i386
sudo apt update; sudo apt upgrade
sudo apt install wine-stableSaate installida uuema versiooni Wine'ist, kui soovite (ärge unustage kaht uut teeki, mis on vajalikud wine-devel >=4.5 ja mis ei ole veel Ubuntu'sse jõudnud). Andke teada, kas see töötab.
5. Lisage oma .bashrc selline rida:
export DISPLAY=:0.0Võib-olla soovite seda käivitada ka praeguses bash aknas.
6. , kaunis pakendatud versioon xorg, Windowsile kompileeritud – lihtsalt hankige viimane täitmisfail ja käitage see. Käivitage X Server nuppude „Start“ ja XLaunch kaudu. See juhendab teid vaikeseadetesse – jätke enamik neist muutmata. Ma märkisin siiski „Keela juurdepääsukontroll“. Salvestage seadistus.
6a. Kui soovite kontrollida, kas X-server on õigesti seadistatud, installige sudo apt install x11-apps ja käivitage xeyes lühikese reisi jaoks tagasi 80-90-ndatesse.
7. Ise wine ei tööta, kuna . Meie 64-bitises Windows 10-s ilmneb viga /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error. Tundub, et see .
Aga praegu käivitame Notepadi Wine'is!
wine64 /usr/lib/x86_64-linux-gnu/wine/fakedlls/notepad.exe

TO DO: 32-bitine tugi. Peame ootama . Huvitav, kas vanad Win16 programmid töötavad – teoreetiliselt peaksid nad Wine'is käima, isegi kui nad enam Windowsis ei tööta.
32-bitised rakendused qemu kaudu
Aitäh , kes pakkus ideed 32-bitiste rakenduste käivitamiseks.
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
Ja nüüd saame teha:
fun@DESKTOP-7F6DU8P:~$ wine --version wine-3.0 (Ubuntu 3.0-1ubuntu1)
Kuid Encarta 97 ei tööta ikkagi:
fun@DESKTOP-7F6DU8P:/mnt/e$ wine SETUP.EXE
wine: Unhandled page fault on read access to 0xffffffff at address 0x11df:0x00002c11 (thread 0011), starting debugger...
0011:err:seh:start_debugger Couldn't start debugger ("winedbg --auto 15 108") (2)
Lugege Wine'i arendajate juhendit, kuidas seadistada winedbg või mõni muu debugeerija Neile, kes teemaga kursis on: file ütleb SETUP.EXE: MS-DOS täitmisfail, NE MS Windows 3.x-i jaoks, nii et peame laskuma haruldaste 16-bitiste programmide juurde.
Encarta 97 installitakse ja töötab laitmatult Wine 4.13 all Linuxis... kuid Windows 10-l ei ole endiselt 4.13 versioonis:
fun@DESKTOP-7F6DU8P:~$ wine /mnt/e/SETUP.EXE
Xlib: extension "MIT-SHM" puudub kuvamisel ":0.0".
Xlib: extension "MIT-SHM" puudub kuvamisel ":0.0".
0009:err:process:__wine_kernel_init buutimise sündmus ooteaeg aegus
001d:err:process:__wine_kernel_init buutimise sündmus ooteaeg aegus
wine: Tootmata lehe viga lugemisõiguse korral 0xffffffff aadressil 0x11cf:0x00002c11 (thread 001e), algab debugeerija...001e:err:seh:start_debugger Debugeerija käivitamine ebaõnnestus ("winedbg --auto 28 152") (2)
Loe Wine'i arendajate juhendit, kuidas seadistada winedbg või mõni teine debugeerija
001d:err:ntdll:RtlpWaitForCriticalSection sektsioon 0x7e6273e0 "syslevel.c: Win16Mutex" ooteaeg aegus lõimes 001d, blokeeritud lõimes 001e, uuesti proovima (60 sek)
Xlib: extension "MIT-SHM" puudub kuvamisel ":0.0".
Ei olnud võimalik laadida wine-gecko. HTML renderdamine on keelatud.
001e:err:seh:raise_exception Tootmata erandikood c0000005 lipud 0 aadress 0x7b4a6abc
wine client error:1e: write: Vale faili descriptor Muidugi, see annab erinevaid veateateid mitme käivitamise käigus…
Allikas: habr.com
