Запуск Wine на Windows был мечтой фанатов, которые следуют зову сердца «Мы делаем то, что должны, потому что не обязаны это делать», по крайней мере, с 2004 года, когда кто-то попытался скомпилировать Wine в Cygwin и
Оправдание: «А как же старые приложения, которые не работают должным образом в последних Windows?». Но мы-то понимаем, что истинная причина — «Я долго страдал за своё искусство, теперь ваша очередь».
В конце 2008 года меня одолела навязчивая мысль — и я (кажется, это был я) создал страничку
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, если хотите
5. Добавьте к своему .bashrc
такую строчку:
export DISPLAY=:0.0
Вероятно, вы захотите запустить это и в текущем окне bash.
6.
6а. Если хотите проверить, что X-сервер настроен правильно, установите sudo apt install x11-apps
и запустите xeyes
для краткого путешествия обратно в 80-90-е.
7. Сам wine
не работает, потому что /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error
. Видимо, это
А пока запустим Блокнот в Wine!
wine64 /usr/lib/x86_64-linux-gnu/wine/fakedlls/notepad.exe
TO DO: 32-битная поддержка. Придётся подождать
32-битные приложения через qemu
Спасибо
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 executable, NE for MS Windows 3.x
, так что нам нужно спуститься до редких 16-битных программ.
Encarta 97 устанавливается и работает безупречно в Wine 4.13 на Linux… но в 4.13 на Windows 10 все ещё нет:
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
Конечно, он выдаёт разные сообщения об ошибках в нескольких запусках…
Источник: habr.com