— програма за стартиране на приложения Windows на компютри с Unix.
Стартирането на Wine на Windows беше мечта на феновете, които следват призива на сърцето: „Правим това, което трябва, защото не сме длъжни да го правим“, поне от 2004 г., когато някой се опита да компилира Wine в Cygwin и .
Извинение: „А как е с остарелите приложения, които не работят правилно в последните Windows?“. Но ние разбираме, че истинската причина е: „Дълго време страдах за своето изкуство, сега е ваш ред“.
В края на 2008 г. ме обсебваше натрапчива мисъл — и аз (изглежда, че бях аз) създадох страница в Уики Wine. Вкратце: това беше напълно невъзможно, тъй като всичко работеше през Cygwin, MinGW или Windows Services за Unix. не е много по-успешна.
Windows 10 въведе подсистема за Windows за Linux, а Ubuntu удобно се изтегля от Microsoft Store. В резултат на това нашата глупава идея се реализира почти сама, освен ако не е необходимо ръчно да се инсталира променливата среда DISPLAY.
Досега това е абсолютно безполезно. Wine работи само с 64-битови приложения на Windows, т.е. дори не с всички приложения, които идват с Windows 10.
(Първоначалният проект стартира след като някой не успя да стартира Encarta 97 на Windows 10. Така че, както всяко истинско гиковско решение, то всъщност не решава оригиналния проблем на потребителя).
Но искам да подчертая отново: в момента това работи тривиално. Аз не съм някакъв луд гений, който реализира фантастичен проект — просто изглежда, че съм първият, който публично обяви този факт.
Как да направите тази глупава работа
1. Имате 64-битова Windows 10, нали? Това е единствената версия с WSL.
2. Инсталирайте WSL. Контролен панел -> Програми -> Програми и функции -> Включване и изключване на компоненти на Windows. Поставете отметка "Подсистема на Windows за Linux". Рестартирайте Windows.
3. Влезте в Microsoft Store, инсталирайте Ubuntu (основно за нейното стартиране и създаване на WSL). Аз инсталирах Ubuntu 18.04 LTS. Отворете Ubuntu и ще видите терминал bash.
4. Инсталирайте следното от командния ред bash:
sudo dpkg --add-architecture i386
sudo apt update; sudo apt upgrade
sudo apt install wine-stableМожете да инсталирате по-актуална версия на Wine, ако желаете (не забравяйте за двете нови библиотеки, които са необходими за wine-devel >=4.5 и които все още не са включени в Ubuntu!). Уведомете ни, ако това сработи.
5. Добавете към вашето .bashrc тази линия:
export DISPLAY=:0.0Вероятно ще искате да стартирате това и в текущия bash прозорец.
6. , красиво пакетирана версия на xorg, компилирана за Windows - просто вземете последната версия на изпълнимия файл и я стартирайте. Стартирайте X Server чрез бутона ‘Старт’ и XLaunch. Той ще ви преведе през настройките по подразбиране - оставете повечето от тях по подразбиране. Аз по принцип поставих отметка ‘Изключи контрол на достъпа’. Запазете конфигурацията.
6а. Ако искате да проверите дали X-серверът е настроен правилно, инсталирайте sudo apt install x11-apps и стартирайте xeyes за кратка разходка назад в 80-90-те.
7. Самият wine не работи, защото . На нашата 64-битова Windows 10 получаваме грешка /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error. Очевидно, това .
А сен времето ще стартираме Notepad в Wine!
wine64 /usr/lib/x86_64-linux-gnu/wine/fakedlls/notepad.exe

TO DO: 32-битова поддръжка. Ще се наложи да изчакаме . Интересно, ще работят ли старите програми Win16 — по принцип, те трябва да заработят в Wine, дори ако вече не работят в самата Windows.
32-битови приложения чрез qemu
Благодаря , който предложи как да се запуснат 32-битовите приложения.
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
И сега можем да направим:
fun@DESKTOP-7F6DU8P:~$ wine --version wine-3.0 (Ubuntu 3.0-1ubuntu1)
Въпреки това, Encarta 97 все още не работи:
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)
Read the Wine Developers Guide on how to set up winedbg or another debugger За тези, които са в темата: file казва SETUP.EXE: MS-DOS изпълним файл, NE за MS Windows 3.x, така че трябва да се върнем към редките 16-битови програми.
Encarta 97 се инсталира и работи безупречно в Wine 4.13 на Linux… но в 4.13 на Windows 10 все още няма:
fun@DESKTOP-7F6DU8P:~$ wine /mnt/e/SETUP.EXE
Xlib: разширение "MIT-SHM" липсва на дисплея ":0.0".
Xlib: разширение "MIT-SHM" липсва на дисплея ":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: Необработена страница с грешка при четене на достъп до 0xffffffff на адрес 0x11cf:0x00002c11 (поток 001e), стартиране на отстранявача на грешки...001e:err:seh:start_debugger Не успя да стартира отстранявача на грешки ("winedbg --auto 28 152") (2)
Прочетете ръководството на разработчиците на Wine как да настроите winedbg или друг отстранявач на грешки
001d:err:ntdll:RtlpWaitForCriticalSection section 0x7e6273e0 "syslevel.c: Win16Mutex" времето за изчакване в поток 001d е изтекло, блокирано от 001e, опит за повторно изпълнение (60 сек)
Xlib: разширение "MIT-SHM" липсва на дисплея ":0.0".
Не може да се заредят wine-gecko. HTML рендирането ще бъде деактивирано.
001e:err:seh:raise_exception Необработен код на изключение c0000005 флагове 0 адрес 0x7b4a6abc
wine client error:1e: write: Неправилен файлов дескриптор Разбира се, той издава различни съобщения за грешки при няколко старта…
Източник: habr.com
