Wine uz Windows 10. Tas darbojas

Wine — programma, lai palaistu Windows lietojumprogrammas Unix datoros.

Wine darbÄ«ba Windows vidē ir bijusi fanu sapnis, kas seko sirdsapziņas saucienam ā€žMēs darām to, ko mums vajag, jo mums nav tā jādara,ā€ vismaz no 2004. gada, kad kāds mēģināja kompilēt Wine Cygwin vidē un sabruka viesdatora reÄ£istrs..

Attaisnojums: ā€žBet ko darÄ«t ar vecajām lietojumprogrammām, kas nefunkcionē pareizi jaunajās Windows versijās?ā€ Bet mēs saprotam, ka patiesā cēlonis ir ā€žEs ilgi mocÄ«jos dēļ sava mākslas, tagad jÅ«su kārtaā€.

2008. gada beigās mani pārņēma apsēstÄ«ba — un es (Ŕķiet, tas biju es) izveidoju lapu WineOnWindows Wine viki. ÄŖsumā: Tas bija pilnÄ«gi neiespējami, jo viss darbojās caur Cygwin, MinGW vai Windows Services for Unix. PaÅ”reizējā lapa nav daudz veiksmÄ«gāka.

Windows 10 ieviesa Windows subsistēmu Linux; Ubuntu ērti lejupielādē no Microsoft Store. Tādējādi mūsu muļķīgā ideja faktiski īstenojas pati par sevi, tikai ir jāinstalē vide mainīgais DISPLAY.

LÄ«dz Å”im tas ir prāta aptumsums bezjēdzÄ«gi. Wine strādā tikai ar 64 bitu Windows lietojumprogrammām, tātad pat ne ar visām lietojumprogrammām, kas nāk ar paÅ”u Windows 10.

(Sākotnējais projekts sākās pēc tam, kad kāds nespēja palaist Encarta 97 Windows 10. Tādējādi, tāpat kā jebkuram patiesam geeka risinājumam, tas faktiski nerisina sākotnējo lietotāja problēmu).

Bet es vēlos vēlreiz uzsvērt: tagad tas darbojas trivāli. Es neesmu kāds traks ģēnijs, kurÅ” realizēja fantastisku projektu — es vienkārÅ”i esmu pirmais, kurÅ” publiski paziņoja par Å”o faktu.

Kā izdarīt Ŕo muļķīgo lietu

1. Jums ir 64 bitu Windows 10, vai ne? Tas ir vienīgais variants ar WSL.

2. Instalējiet WSL. Kontroles panelis -> Lietojumprogrammas -> Programmas un funkcijas -> Windows funkciju ieslēgÅ”ana vai izslēgÅ”ana. AtzÄ«mējiet ā€žWindows subsistēma Linuxā€. Restartējiet Windows.

3. Ieejiet Microsoft Store, instalējiet Ubuntu (galvenokārt, lai to palaistu un izveidotu WSL). Es instalēju Ubuntu 18.04 LTS. Atveriet Ubuntu, un jūs redzēsiet bash termināli.

4. Instalējiet sekojoÅ”o, izmantojot bash komandrindu:

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

Ja vēlaties, varat instalēt jaunāku Wine versiju izklaidējoties. (neaizmirstiet par divām jaunām bibliotēkām, kas nepiecieÅ”amas wine-devel >=4.5 un kuras vēl nav iekļautas Ubuntu!). Dariet man zināmu, ja tas darbosies.

5. Pievienojiet savai .bashrc Ŕādu rindu:

export DISPLAY=:0.0

Iespējams, vēlēsities to palaist arÄ« paÅ”reizējā bash logā.

6. Instalējiet VcXsrv, skaisti iekļauta xorg versija, kas kompilēta Windows, — vienkārÅ”i paņemiet jaunāko izpildāmā faila versiju un palaidiet to. Palaidiet X Server caur pogu ā€žSāktā€ un XLaunch. Tas vadÄ«s jÅ«s cauri noklusējumiem — atstājiet lielāko daļu no tiem tāpat. Es, gadÄ«jumam ja, atzÄ«mēju ā€žAtspējot piekļuves kontroliā€. Saglabājiet konfigurāciju.

6a. Ja vēlaties pārbaudīt, vai X serveris ir pareizi konfigurēts, instalējiet sudo apt install x11-apps un palaidiet xeyes īsam ceļojumam atpakaļ uz 80-90. gadiem.

7. PaÅ”reiz wine nefunkcionē, jo 32 bitu binārie faili nepalaižas WSL. MÅ«su 64 bitu Windows 10 izsaka kļūdu /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error. Izskatās, ka to izlabots WSL 2.

Bet pagaidām palaidīsim Notepad Wine!

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

Wine uz Windows 10. Tas darbojas

TO DO: 32 bitu atbalsts. Jāgaida WSL 2. Interesanti, vai strādās seni Win16 programmas — teorētiski, tām vajadzētu palaisties Wine, pat ja tās vairs nedarbojas pats Windows.

32 bitu lietojumprogrammas caur qemu

Paldies anonÄ«majam komentētājam, kurÅ” ieteica, kā pievērsties 32 bitu lietojumprogrammu palaiÅ”anai.

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

Un tagad mēs varam darīt:

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

Tomēr, Encarta 97 joprojām nedarbojas:

fun@DESKTOP-7F6DU8P:/mnt/e$ wine SETUP.EXE
wine: Neparedzēta lapu kļūda nolasot piekļuvi 0xffffffff adresē 0x11df:0x00002c11 (pavedienā 0011), sākot debuggers...
0011:err:seh:start_debugger Nevarēja sākt debugger ("winedbg --auto 15 108") (2)
Izlasiet Wine attīstītāju ceļvedi par to, kā iestatīt winedbg vai citu debugger.

Pats par sevi, file stāsta SETUP.EXE: MS-DOS izpildāmais fails, NE priekÅ” MS Windows 3.x, tāpēc mums jāiecieÅ” retās 16 bitu programmas.

Encarta 97 tiek instalēta un darbojās nevainojami Wine 4.13 Linux… bet 4.13 Windows 10 joprojām nav:

fun@DESKTOP-7F6DU8P:~$ wine /mnt/e/SETUP.EXE
Xlib: extensions "MIT-SHM" trūkst displejā ":0.0".
Xlib: extensions "MIT-SHM" trūkst displejā ":0.0".
0009:err:process:__wine_kernel_init boot notikuma gaidīŔana beidzās ar laiku
001d:err:process:__wine_kernel_init boot notikuma gaidīŔana beidzās ar laiku
wine: Neapstrādāta lapu kļūda pie lasīŔanas piekļuves 0xffffffff adresē 0x11cf:0x00002c11 (threads 001e), sāk debugeri...001e:err:seh:start_debugger Neizdevās palaist debugeri ("winedbg --auto 28 152") (2)
Izlasiet Wine izstrādātāju rokasgrāmatu par to, kā iestatÄ«t winedbg vai citu debuggēŔanas rÄ«ku
001d:err:ntdll:RtlpWaitForCriticalSection sekcija 0x7e6273e0 "syslevel.c: Win16Mutex" gaidīŔana beidzās ar laiku thread 001d, bloķēts 001e, atkārtoju (60 sekundes)
Xlib: extensions "MIT-SHM" trūkst displejā ":0.0".
Neizdevās ielādēt wine-gecko. HTML attēloÅ”ana tiks izslēgta.
001e:err:seh:raise_exception Neapstrādāts izņēmuma kods c0000005 karogi 0 addr 0x7b4a6abc
wine klienta kļūda:1e: rakstīt: Nepareizs faila apraksts

Protams, tas iznāk dažādas kļūdas ziņas vairākos palaiÅ”anas gadÄ«jumos…

Avots: habr.com

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster