Как установить wine на windows

Время на прочтение
4 мин

Количество просмотров 63K

Wine — программа для запуска приложений Windows на компьютерах под Unix.

Запуск Wine на Windows был мечтой фанатов, которые следуют зову сердца «Мы делаем то, что должны, потому что не обязаны это делать», по крайней мере, с 2004 года, когда кто-то попытался скомпилировать Wine в Cygwin и сломал реестр хост-системы.

Оправдание: «А как же старые приложения, которые не работают должным образом в последних Windows?». Но мы-то понимаем, что истинная причина — «Я долго страдал за своё искусство, теперь ваша очередь».

В конце 2008 года меня одолела навязчивая мысль — и я (кажется, это был я) создал страничку WineOnWindows на вики 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. Установите VcXsrv, красиво упакованную версию xorg, скомпилированную для Windows, — просто возьмите последнюю версию исполняемого файла и запустите его. Запустите X Server через кнопку «Пуск» и XLaunch. Он проведет вас через дефолты — оставьте большинство из них как есть. Я на всякий случай поставил галочку «Отключить контроль доступа». Сохраните конфигурацию.

6а. Если хотите проверить, что X-сервер настроен правильно, установите sudo apt install x11-apps и запустите xeyes для краткого путешествия обратно в 80-90-е.

7. Сам wine не работает, потому что 32-битные бинарники не запускаются в WSL. На нашей 64-битной Windows 10 выдаётся ошибка /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error. Видимо, это исправили в WSL 2.

А пока запустим Блокнот в Wine!

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

TO DO: 32-битная поддержка. Придётся подождать выхода WSL 2. Интересно, будут ли работать древние программы Win16 — по идее, они должны запуститься в Wine, даже если больше не работают в самой Windows.

32-битные приложения через qemu

Спасибо анонимному комментатору, который предложил, как подступиться к запуску 32-битных приложений.

sudo apt install qemu-user-static
sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff'
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

Конечно, он выдаёт разные сообщения об ошибках в нескольких запусках…

О Wine

Wine — Wine Is Not Emulator — это свободная реализация среды ОС Windows поверх Linux (*UNIX) подсистем. Исполнение Windows-программ производится напрямую без какой-либо эмуляции и с минимальными накладными расходами.

  • Официальный сайт: winehq.org
  • Руководство пользователя: Wine_User’s_Guide
  • Отчёты пользователей с описанием опыта запуска тех или иных Windows-программ: appdb.winehq.org
  • Отчёты по запуску игр: protondb.com

Установка Wine

Wine состоит из нескольких основных и вспомогательных пакетов:

  • wine — среда Wine для выполнения 64-битных программ.
  • i586-wine — 32-х битная среда Wine.
  • wine-common — основные утилиты среды Wine (wineboot, winecfg, wineconsole, wineserver и т.д.).
  • wine-programs — вспомогательные программы (notepad, winefile, winemine).
  • wine-gecko — свободная реализация Internet Explorer на основе браузерного движка Gecko.
  • wine-mono — свободная реализация .NET Framework. Охватывает версии .NET, начиная с 1.x до 4.8.x.
  • winetricks — скрипт, предоставляющий различные опции по управлению средой Wine. Чаще всего используется для упрощения установки несвободных компонентов Windows и ряда Windows-программ от сторонних разработчиков.

На этапе установки дистрибутива

Если во время установки дистрибутива Альт были выбраны Эмуляторы или Виртуализация и Запуск программ Windows, то Wine будет установлен автоматически (после может потребоваться установка некоторых 32-битных библиотек — см. пункт Нюансы по i586-wine):

[Список устанавливаемых пакетов при автоматической установке:]
wine
wine-common
i586-libnss-mdns
i586-libnss-myhostname
i586-xorg-dri-*
wine-mono
wine-gecko
winetricks
i586-wine
i586-wine-cpcsp_proxy
virtualbox

Установка вручную

Если Эмуляторы или Виртуализация и Запуск программ Windows во время установки не были выбраны, то Wine можно установить вручную (после может потребоваться установка некоторых 32-битных библиотек — см. пункт Нюансы по i586-wine):

$ su -
# apt-get update
# apt-get install wine-full i586-wine
[Список устанавливаемых пакетов при ручной установке:]
cabextract
libOSMesa
wine
wine-common
wine-full
wine-gecko-*
wine-mono-*
wine-programs
winetricks
i586-wine
i586-*

Установка с помощью Epm

Примечание:

Epm — единая команда управления пакетами, разработанная в компании Etersoft (основная статья — Epm). Позволяет устанавливать как пакеты из репозитория ALT Linux, так и чужие пакеты (предназначенные для другой ОС на базе Linux). Для установки epm в ALT Linux:

$ su -
# apt-get update
# apt-get install eepm

Внимание! Установка из репозитория Десятой платформы p10 может быть неудачна, в случае возникновения ошибки выполните установку wine вручную или обновите epm из стороннего репозитория.

su -
apt-get update
epm play wine

С помощью скрипта Epm будут установлены все вышеперечисленные пакеты, а также выполнена установка некоторых 32-битных библиотек — см. пункт Нюансы по i586-wine).

Нюансы по i586-wine

На момент 2023 года поддержка выполнения 32-х битных программ в 64-х битной среде (Windows-on-Windows) находится на завершающем этапе разработки, но пока не используется в сборке для репозитория платформы. Поэтому всё ещё требуется отдельная установка 32-х битой среды Wine и попутного комплекта 32-х битных Linux-библиотек. Всё необходимое устанавливается при варианте установки посредством epm play wine.

В случае, когда пакет i586-wine отсутствует, при запуске 32-х битной программы будет выведено предупреждение и программа не заработает:
It looks like i586-wine is missing, you should install it. As root, please execute «apt-get install i586-wine»

В случае, когда пакет i586-wine был установлен отдельно, могут потребоваться некоторые 32-х битные библиотеки (в основном 32-х битные графические драйвера). Это легко исправить выполнением следующей команды:

epm play i586-fix

Если пакет i586-wine был установлен после создания префикса, то префикс придётся удалить и пересоздать, иначе программы в нём перестанут работать и будет выведена ошибка:
wine: could not load kernel32.dll, status c0000135

Пример пересоздания префикса. Команды выполняются с правами обычного пользователя.
Полное удаление:

rm -r /home/$USER/.wine

Пересоздание префикса по стандартному пути /home/$USER/.wine:

wineboot -i

Основы по использованию Wine

Префиксы

Wine управляет префиксами (prefix), которые можно назвать отдельными экземплярами ОС Windows.

  • Стандартный префикс располагается в /home/$USER/.wine.
  • Префикс содержит в себе файлы реестра, каталоги, набор библиотек и программ, расположенных по той же структуре, как и в оригинальной Windows.

Altlinux wine basics a 10.png

    • dosdevices — в каталоге располагаются символические ссылки на каталоги, которые имитируют Windows-тома (диски). Тома обозначаются латинской буквой. К примеру, системный том Windows по умолчанию обозначается «C:».
    • drive_c — условный том «C:», в котором располагаются компоненты Windows.

Altlinux wine basics a 20.png

    • .update-timestamp — метка времени.
    • system.reg, user.reg и userdef.reg являются файлами реестра Windows.
  • По умолчанию создаются 64-х битные префиксы.
  • Компоненты эталонного префикса, из которого создаются все прочие создаваемые пользователем префиксы, находятся в /usr/lib64/wine/x86_64-windows/.
  • Wine-префиксы на жаргоне называют «бутылками».
Особенности и ограничения префиксов
  • Название префикса может быть любым, но для избежания затруднений следует придерживаться следующего:
    • Название префикса принято начинать с .wine. Пример: .wine_nalogul. В этом случае сразу понятно, что это Wine-префикс и что в него установлена программа Налогоплательщик ЮЛ.
    • Название должно содержать только латинские буквы и арабские цифры. Из символов можно применять знак точки, расположенный в самом начале названия, что означает скрытый каталог.
    • Название не должно содержать пробелы, иначе путь придётся экранировать кавычками, чтобы интерпретатор мог корректно его обработать. В противном случае можно легко столкнуться со следующей ошибкой: wine: invalid directory in WINEPREFIX: not an absolute path
  • Можно создавать префиксы в любых желаемых каталогах, принадлежащих пользователю.
  • Ограничений по количеству префиксов нет.
  • Категорически недопустимо создание префиксов с правами суперпользователя. Это крайне небезопасно — программы в префиксе получают доступ ко всем файлам системы. Так же обычный пользователь не сможет взаимодействовать с префиксом, так как им будет владеть суперпользователь.
  • Wine поддерживает одновременную работу множества Windows-программ, запущенных в одном или нескольких префиксах.
  • Не смотря на то, что Wine позволяет запускать исполняемые файлы Windows-программ из любого места пространства пользователя, правильнее это делать, разместив исполняемый файл внутри префикса. Оптимальным вариантом будет размещение в его корневом каталоге: home/$USER/.wine/drive_c. Такой подход связан с тем, что некоторые Windows-программы становятся неработоспособными, если расположены вне пространства префикса. Поэтому лучше предупредить возникновение подобных проблем и располагать исполняемые файлы внутри префикса.
  • Крайней нежелательно размещать префикс на разделе с файловой системой NTFS (основная файловая система OC Windows). Данная файловая система не поддерживает систему прав и атрибутов Linux, что приведёт к проблемам с запуском программ.
  • НЕДОПУСТИМО устанавливать в префикс Windows-драйвера для видеокарт, переферийных устройств, звуковых карт и подобного оборудования. Потенциально это может привести к сбою устройства, а в случае таких устройств, как мышь и клавиатура — полной неработоспособности.
  • Wine-префикс не предоставляет существенной изоляции Windows-процессов от пространства Linux-пользователя, поэтому не стоит пытаться запускать вредоносные программы для Windows, так как потенциально они способны нанести вред Linux-системе. К примеру, запущенный в префиксе шифровальщик может зашифровать не только префикс, но и выйти за его пределы, зашифровав все каталоги и файлы, принадлежащие Linux-пользователю, так как все процессы, запущенные в префиксе, выполняются с правами пользователя.
  • Настоятельно не рекомендуется устанавливать всё в один префикс, оптимальнее создавать новый под каждую программу. Это особенно критично, если для работы той или иной программы требуется установить несвободный Windows-компонент. В таком случае может получиться так, что компонент, улучшающий работоспособность одной программы, будет приводить к сбоям других программ, что сильно усложнит отладку и выяснение причин сбоев. В свою очередь, использование отдельных префиксов для каждой программы, требующей установку несвободных Windows-компонентов, позволит полностью избежать подобных проблем.
  • Префиксы можно свободно перемещать и копировать, что удобно для создания резервных копий подготовленных под ту или иную задачу экземпляров.
Создание префиксов

Как было ранее отмечено, можно создавать собственные префиксы и не ограничиваться стандартным /home/$USER/.wine. Пример создания нового префикса (выполнять от обычного пользователя):

WINEPREFIX="/home/$USER/.wine_new" wineboot -i

Пояснения:

  • WINEPREFIX — это переменная окружения, которой требуется передать путь до каталога размещения компонентов префикса. В примере был передан путь до каталога wine_new причём он не обязательно должен существовать заранее.
  • wineboot -i — утилита отвечает за создание префикса, подготовку его к работе, имитацию перезагрузки и выключения ОС Windows. Ключ «-i» инициирует создание префикса. Примечание: префикс так же будет автоматически создан при попытке его обновления (wineboot -u), конфигурирования (winecfg) и прочих действий.

По умолчанию создаются 64-х битные префиксы, причём в них могут выполняться и 32-х битные программы. Но бывают случаи, когда требуется «чистый» 32-битный префикс. Его можно создать следующим образом:

WINEARCH=win32 WINEPREFIX="/home/$USER/.wine32_new" wineboot -i

Пояснения:

  • WINEARCH — с помощью этой переменной окружения можно управлять разрядностью создаваемых префиксов. При передаче значения «win32» будет создан 32-х битный префикс.

Примечание: У ранее созданного префикса нельзя поменять разрядность.

Запуск программ

Примечание: Прямой запуск «.exe» в Альт отключен в целях безопасности. Если прямой запуск необходим, потребуется вручную настроить выполнение MIME-типа «.exe» с помощью Wine.

Алгоритм действий для запуска той или иной Windows-программы:

  • Разместить исполняемый файл в корне префикса (./drive_c/программа.exe).
    • Запустить: wine /home/$USER/.wine/drive_c/программа.exe
  • Если не запускается, ознакомиться с историями успешного запуска на appdb.winehq.org и на altlinux.org.
  • По необходимости с помощью winetricks установить необходимые проприетарные Windows-компоненты (С++ redistributable, .NET Framework, Microsoft Media Foundation и т.д.).

Запуск на примере клиента Steam с созданием отдельного префикса с названием .wine_steam. Команды выполняются с правами обычного пользователя. Создание префикса:

 WINEPREFIX=/home/$USER/.wine_steam wineboot -i

Поместить в префикс ранее загруженный установочный файл SteamSetup.exe:

mv /home/$USER/Downloads/SteamSetup.exe /home/$USER/.wine_steam/drive_c/

Запустить исполняемый файл с указанием абсолютного пути:

WINEPREFIX=/home/$USER/.wine_steam wine /home/$USER/.wine_steam/drive_c/SteamSetup.exe

Альтернативный вариант. Wine позволяет использовать имитацию Windows-путей, где точкой отсчёта является том «C:» — корень Wine-префикса ./drive_c. Пример:

WINEPREFIX=/home/$USER/.wine_steam wine 'C:/SteamSetup.exe'

Примечание: Путь в стиле DOS-Windows следует экранировать кавычками.

Результат:

Altlinux wine basics b 10.png

После установки будет создана кнопка запуска Steam. В ней автоматически прописывается команда на запуск установленной программы из конкретного префикса, что облегчает последующий запуск. Пример команды из кнопки запуска:

env WINEPREFIX="/home/$USER/.wine_steam" wine C:\\\\users\\\\Public\\\\Desktop\\\\Steam.lnk

Видно, что запуск производится из нужного префикса и с Windows-ярлыка Steam.lnk.
Можно создавать собственные кнопки запуска, чтобы каждый раз не набивать (или копировать откуда-то) команду на запуск той или иной Windows-программы.

Подобным образом производится запуск любых программ с исполняемым файлом .exe.

Запуск bat-файлов — «батников»

Ранее для запуска необходимо было задействовать start, но с выходом Wine 8.0 эта опция стала применяться автоматически. Теперь достаточно запускать в обычном режиме:

WINEPREFIX=/home/$USER/.wine wine 'C:/script.bat'

Альтернативный устаревший вариант:

WINEPREFIX=/home/$USER/.wine wine start 'C:/script.bat'
Установка программы из установочного пакета msi

Ранее запуск таких пакетов отличался от запуска .exe, но ныне, начиная с Wine 8.0, запуск производится без задействования дополнительных опций.

Пример установки программы Налогоплательщик ЮЛ (версия 4.81) с созданием префикса с названием wine32nalogul Команды выполняются с правами обычного пользователя. Для этой программы желательно использовать 32-х битный префикс, причём это становится необходимым, если планируется использовать печать с двумерным штрих-кодом PDF-417. Создание 32-х битного префикса:

WINEARCH=win32 WINEPREFIX=/home/$USER/.wine32nalogul wineboot -i

Поместить в префикс ранее загруженный установочный файл nalogul481.msi

mv /home/$USER/Downloads/nalogul481.msi /home/$USER/.wine32nalogul/drive_c/

Запустить установочный пакет msi с указанием пути в стиле DOS-Windows:

WINEPREFIX=/home/$USER/.wine32nalogul wine 'C:/nalogul481.msi'

Альтернативный устаревший вариант с задействованием msiexec:

WINEPREFIX=/home/$USER/.wine32nalogul wine msiexec /i 'C:/nalogul481.msi'

Ещё один вариант — с задействованием start:

WINEPREFIX=/home/$USER/.wine32nalogul wine start 'C:/nalogul481.msi'

Результат:

Altlinux wine basics c 10.png

Использование winetricks для установки Windows-компонентов

В предыдущем разделе был рассмотрен запуск установщика «Налогоплательщик ЮЛ», но для полноценной работы программы, в связи с её специфической реализацией, (на момент 2023 года) требуются проприетарные Windows-компоненты:

  • msxml3
  • msxml4
  • msxml6
  • corefonts

Windows-компоненты удобнее всего устанавливать с помощью winetricks, который устанавливается вместе с прочими Wine-пакетами при установке посредством epm play wine.

За раз можно установить несколько Windows-компонентов, перечислив их через пробел. Пример установки с помощью winetricks:

WINEPREFIX=/home/$USER/.wine32nalogul winetricks -q msxml3 msxml4 msxml6 corefonts

Пояснения:

  • -q — «тихий» режим установки. При его использовании пропускаются диалоги «мастера установки», что избавляет от рутины. В данном случае установка может занять довольно длительное время — до пары десятков минут.
  • Все перечисленные Windows-компоненты будут загружены из интернета в автоматическом режиме. Установочные файлы компонентов разместятся в home/$USER/.cache/winetricks После установки их можно удалить.

Налогоплательщик ЮЛ относится к программам, которые не могут запуститься без задействования start /unix, имитирующего файловые ассоциации Windows Explorer (файловый менеджер ОС Windows) и устраняющего проблемы с интерпретацией UNIX-путей. Команда на запуск выглядит подобным образом:

WINEPREFIX=/home/$USER/.wine32nalogul wine start /unix 'C:/Налогоплательщик ЮЛ/INPUTDOC/inputdoc.exe'

Пояснения:

  • В связи с тем, что в пути до исполняемого файла программы есть пробел, путь необходимо экранировать кавычками — ‘C:/Налогоплательщик ЮЛ/INPUTDOC/inputdoc.exe’.
  • Из-за необходимости использования start /unix потребуется отредактировать команду в кнопке запуска:

Altlinux wine basics c 20.png

  • Из-за наличия пробела в пути, там же в настройках кнопки запуска, необходимо экранировать кавычками путь в строке «Рабочий каталог».

Результат запуска «Налогоплательщик ЮЛ»:

Altlinux wine basics c 30.png

Прямое указание рабочего каталога

Существуют программы, которым необходимо напрямую указывать рабочий каталог (working directory), иначе они не смогут найти все необходимые для запуска ресурсы, так как те находятся в каталоге уровнем выше, в то время как поиск ресурсов производится сначала в каталоге с исполняемым файлом, после в его подкаталогах рекурсивно в глубину, а затем в C:\windows. Следовательно, такие программы окажутся неработоспособными при прямом запуске. В этом случае потребуется вручную указать рабочий каталог — отправную точку для рекурсивного поиска всех нужных программе ресурсов.

Это можно осуществить двумя способами: создать кнопку запуска и указать в ней путь до рабочего каталога или прямо указать в команде на запуск. На примере игры STALKER Clear Sky рассмотрим второй способ.

Вводная:

  • Создан префикс с названием .wine64clearsky
  • Путь установки игры в префиксе: C:/Program Files (x86)/STALKER Clear Sky
  • Исполняемый файл игры xrEngine.exe находится в каталоге ./STALKER Clear Sky/bin.
  • Ресурсы игры находятся в каталогах:
    • ./STALKER Clear Sky/levels
    • ./STALKER Clear Sky/Localization
    • ./STALKER Clear Sky/patches
    • ./STALKER Clear Sky/resources

Отправная точка для успешного поиска ресурсов находится уровнем выше (каталог ./STALKER Clear Sky/, чем расположение исполняемого файла (./STALKER Clear Sky/bin/xrEngine.exe), тем самым при прямом выполнении игра не найдёт ресурсы:

Altlinux wine basics clearsky.png

Это решается следующим образом:

WINEPREFIX=/home/$USER/.wine64clearsky wine start /d 'C:/Program Files (x86)/STALKER Clear Sky/' ./bin/xrEngine.exe

Пояснения:

  • start /d — с опцией /d по указанному пути обозначается рабочий каталог, который станет отправной точкой в рекурсивном поиске ресурсов для запуска программы.
  • С тем учётом, что рабочий каталог указан, можно указать относительный путь до исполняемого файла. В данном случае ./bin/xrEngine.exe.

Благодаря этому, программа сможет найти все необходимые для запуска ресурсы.

Установка, запуск и удаление программ в графическом режиме

winefile — файловый менеджер Wine с графическим интерфейсом, схожий по функционалу с Windows Explorer (Проводник Windows). С его помощью можно осуществлять различные операции над файлами и каталогами в префиксе, включая запуск Windows-программ.

Пример запуска файлового менеджера для префикса с названием .wine32nalogul:

WINEPREFIX=/home/$USER/.wine32nalogul wine winefile

Altlinux wine basics winefile.png

Запуск Windows-программ осуществляется двойным щелчком по исполняемому файлу или ярлыку (.lnk):

Altlinux wine basics winefile exec.png

В целом логика управления во многом аналогична типичному файловому менеджеру Linux. Стоит отметить, что файлы, удалённые через файловый менеджер Wine, окажутся в обычной системной корзине (trash:///).

Установленные в префикс программы можно удалить в графическом режиме через «Панель управления» и «Установка/удаление программ»:

Altlinux wine basics winefile control.png

В открывшемся окне из списка выбрать ранее установленную программу и нажать кнопку «Удалить»:

Altlinux wine basics control.png

Альтернативным способом открытия «Установка/удаление программ» (uninstaller) является прямой запуск. Пример:

WINEPREFIX=/home/$USER/.wine32nalogul wine uninstaller
Принудительное завершение работы сбойных программ

Бывают случаи, когда работу сбойной программы довольно неудобно завершать штатными средствами Linux, особенно в случаях, когда программа приводит к зависанию завершения работы процессов префикса: services.exe, winedevice.exe, plugplay.exe и т.д. Принудительно завершить работу всех программ в префиксе можно следующим образом:

WINEPREFIX=/home/$USER/.wine wineboot -k

Альтернативный вариант с тем же эффектом:

WINEPREFIX=/home/$USER/.wine wineserver -k

Выполнение этих команд является эквивалентом нажатия кнопки Reset, при этом будет «принудительно перезагружен» только указанный префикс, а не вся система.

Более мягким вариантом, а так же удобным способом ознакомиться со всеми активными процессами префикса, является использование штатной программы taskmgr — «Диспетчер задач». Пример запуска для префикса с названием .wine32nalogul:

WINEPREFIX=/home/$USER/.wine32nalogul wine taskmgr

Демонстрация содержимого вкладок (объединены в одну картинку):

Altlinux wine basics taskmgr.png

Удаление префиксов

Самым удобным способом является удаление посредством winetricks:

WINEPREFIX=/путь/до/префикса winetricks annihilate

В этом случае будут удалены:

  • Каталог префикса вместе со всем содержимым.
  • Кнопки запуска и миниатюры для программ, установленных в удаляемый префикс.

Тем самым не остаётся никаких остаточных файлов.

Если по какой-то причине префикс был удалён вручную, останутся некоторые файлы, которые придётся зачистить так же вручную.
Место хранения кнопок запуска:

~/.local/share/applications/wine/

Место хранения миниатюр, включая тех программ, что установлены в Wine:

~/.local/share/icons/hicolor/

Так же можно удалить ненужные Windows-установщики, загруженные winetricks при установке Windows-компонентов в префикс:

~/.cache/winetricks/

Возможности, предоставляемые Wine

Wine позволяет запускать 32- и 64-битные исполняемые файлы (PE executable), имеющие расширение .exe и предназначенные для выполнения в Windows-совместимом окружении. Wine предоставляет все необходимые для запуска программ динамические библиотеки (.dll-файлы), а также поддерживает установку и работу дополнительных компонент (библиотек), требуемых программами. Такая установка может выполняться через инструмент установки сторонних дополнений winetricks или же непосредственно инсталлятором программы.

В частности, поддерживаются такие интерфейсы как

  • GDI;
  • GDIPlus;
  • Print;
  • CryptoAPI (частично);
  • Internet Explorer (частично);
  • DirectX;
  • видео- и аудио-кодеки;
  • .NET (в реализации Mono);
  • кодирование и раскодирование изображений в форматах JPEG, PNG, GIF, TIFF, BMP;
  • OpenGL;
  • ODBC;
  • LDAP (частично);

В частности, поддерживается установка и работа следующих сторонних дополнений:

  • библиотек времени выполнения (runtime) для программ, собранных в средах разработки Visual C++ версий от 2003 до 2019 включительно, а также версии 6;
  • Microsoft Data Access Components (MDAC 2.7, MDAC 2.8)
  • MS Jet 4.0
  • Microsoft .NET версий от 1.1 до 4.8 включительно;
  • .NET Core версий 2.2 и 3.0;
  • Microsoft Visual FoxPro версий от 6.0 до 9.0 включительно.

Реестр в Wine

Каждый Wine-префикс имеет собственный экземпляр реестра Windows. Основные особенности:

  • Реестр префикса состоит из нескольких файлов: system.reg, user.reg и userdef.reg.
    • Файлы располагаются в корневом каталоге префикса. Пример: ~/.wine/
  • Иерархия разделов реестра Wine-префикса аналогична Windows.
  • В реестре хранятся различные настройки среды префикса.
  • Дерево реестра из оригинальной ОС Windows не совместимо с реестром Wine и наоборот.
    • В реестр Wine-префикса можно импортировать отдельные записи из reg-файлов, предназначенных для Windows.
  • В Wine реализованы стандартные Windows-утилиты для работы с реестром.
    • regedit — утилита с графическим интерфейсом, идентичным оригинальной программе.
    • reg — утилита для манипуляций с записями в реестре через терминал.
    • Файлы реестра Wine можно редактировать обычным текстовым редактором.
  • Ключи реестра Wine-префикса.

Пример запуска regedit для префикса с названием .wine:

WINEPREFIX=/home/$USER/.wine wine regedit

Altlinux wine basics regedit.png

Переключение транслятора

Для работы программ, задействующих DirectX, в Wine используется специальный транслятор, который преобразует вызовы API DirectX в OpenGL или Vulkan.

Трансляция в OpenGL имеет значительные накладные расходы, что выражается в потерях до 40% производительности в отдельных случаях и до 20% в среднем. Имеет высокую совместимость со старыми видеокартами.

Транслятор на основе Vulkan более производительный, но требует относительно современного оборудования: видеокарты от 2016 года с поддержкой спецификации Vulkan 1.3. Потери редко превышают 20% и, благодаря более продвинутым качественным драйверам и подсистемам, производительность частенько несколько выше (до 10%), чем в Windows.

Кроме отмеченных трансляторов, в Wine присутствует свободная реализация GDI, который можно задействовать для правильной отрисовки графики в некоторых программах 90-х и начала 2000-х годов. К примеру, Parkan Хроника империи.

По заявлению разработчиков, в 2022 году между трансляторами был достигнут паритет по поддержке спецификаций DirectX, поэтому предпочтительно задействовать Vulkan-транслятор. При этом стоит отметить, что OpenGL-транслятор всё-таки имеет более высокую совместимость со старыми программами (по крайней мере, на момент 2023 года).

На момент 2023 года Vulkan-транслятор не используется по умолчанию и его необходимо задействовать вручную. Актуальным способом является переключение через переменную окружения WINE_D3D_CONFIG.

Пример:

WINE_D3D_CONFIG='renderer=vulkan' WINEPREFIX=/home/$USER/.wine wine 'C:/Program Files (x86)/STALKER Clear Sky/STALKER Clear Sky.lnk'

Пояснения:

  • Переменной окружения WINE_D3D_CONFIG необходимо передать значение ‘renderer=vulkan’.
  • Vulkan-транслятор будет задействован для конкретной программы.

Примечание: Таким же способом можно задействовать GDI — WINE_D3D_CONFIG =’renderer=gdi’

Ассоциация файлов с родными приложениями Linux

Нужна для возможности открытия документов из приложений в Wine через нативные программы в Линуксе.

Для этого создайте файл /usr/local/bin/winenative со следующим содержимым:

#!/bin/sh
$1 "`wine winepath -u "$2"`"

Сделайте его исполняемым: chmod +x /usr/local/bin/winenative

Затем от пользователя запускаем редактор реестра: wine regedit. В HKEY_CLASSES_ROOT ищем ключ — pdffile для PDF-файлов, pngfile для PNG изображений и т.п., в нем будет shell > open. В open может быть ddeexec, который нужно удалить (если оставить, необходимая программа хоть и откроется, однако выскочит сообщение от Wine — Ошибка DDE.). Нам необходимо создать или изменить ключ command. Значение ключа выставляем:

"Z:\usr\local\bin\winenative" xdg-open "%1"

Должно получиться так:

Pdf regedit.png

После этого настроенный тип файла будет открываться в программе по умолчанию в Линуксе.

Для настройки нестандартных для Linux файлов — например doc/docx — настройка немного отличается. Нужно полностью создать следующую цепочку:

HKEY_CLASSES_ROOT\docfile\shell\open\command

с аналогичным значением: «Z:\usr\local\bin\winenative» xdg-open «%1». После этого создать ветку HKEY_CLASSES_ROOT\doc со значением docfile

Варианты Wine

В дистрибутивах ALT Linux представлено несколько вариантов Wine:

  • wine — сборка Wine с добавлением патчей проекта Wine-staging и доработанного силами ALT Linux Team и компании Etersoft. Именно эта сборка является основной для дистрибутивов ALT Linux, так как имеет лучшую функциональность и поддерживается разработчиками.
  • wine-stable — сборка стабильного релиза Wine c добавлением патчей проекта Wine-staging и доработанного силами ALT Linux Team и компании Etersoft. Именно эта сборка является основной для дистрибутивов ALT Linux, так как имеет лучшую функциональность и поддерживается разработчиками.
  • wine-vanilla — сборка оригинального Wine от WineHQ без каких-либо изменений.

У компании Etersoft есть ещё одна — коммерческая — версия: WINE@Etersoft, которая также совместима с дистрибутивами ALT Linux (впрочем, как и с другими дистрибутивами Linux). WINE@Etersoft сертифицируется на предмет совместимости как с операционной системой, так и с приложениями, что позволяет получить поддержку и гарантии работоспособности.

Полезные команды

wine cmd # Windows terminal / execute bat batch scripts, etc. (CLI)
wine control # Wines equivalent of the Windows Control panel (GUI)
wine eject # Eject a disc from the specified optical drive (CLI)
winepath # mangle Windows <-> Unix paths (CLI)
wine reg # registry editor (CLI)
wine taskmgr # same as Windows task manager utility (GUI)
wine uninstaller # global program installer / uninstaller (GUI)
wine winefile # alternative Wine file manager (GUI)
wine explorer # desktop (GUI)

Ссылки по теме

  • Несколько архитектур в одной ОС (Arepo/Biarch)
    • 32-битный OpenGL на 64-битной системе с драйвером Intel
    • 32-битный OpenGL на 64-битной системе с драйвером NVIDIA
  • Описание WINE@Etersoft
  • Установка WINE@Etersoft на 64-битные ОС
  • Документация по WINE@Etersoft на русском языке
  • Q4Wine
  • Ассоциация файлов с родными приложениями Linux: [1], [2]
  • Ярлычки программ

Поскольку вы находитесь здесь, я предположу, что вы пользователь Linux. И время от времени вы задаетесь вопросом: могу ли я запускать приложения windows в Linux?

Ответ на этот вопрос — да, вы можете запускать приложения Windows в Linux. Вот некоторые способы запуска программ Windows в Linux:

  • Установка Windows на отдельный раздел жесткого диска
  • Установка Windows в качестве виртуальной машины в Linux

Оба они работают просто отлично. Но они несколько требовательны к ресурсам.

Если вам нужно использовать только небольшое приложение Windows, установка Windows на отдельный раздел жесткого диска или в качестве виртуальной машины неэффективна. Более того, виртуальная машина не может использовать всю мощность вашей машины. Итак, каково же решение?

Не волнуйтесь, есть другой способ использовать программное обеспечение Windows в Linux. Он называется Wine. Если вы еще не знакомы с ним или являетесь новичком в мире Linux, эта статья для вас.

В этом руководстве для начинающих я покажу вам, что такое Wine и как использовать его для запуска программ Windows в Linux. Я использовал здесь Ubuntu, поскольку Ubuntu является одним из лучших дистрибутивов Linux для начинающих, но любой другой дистрибутив Linux будет иметь более или менее те же шаги (за исключением команд в дистрибутивах на базе Arch или Fedora).

Wine означает Wine Is Not an Emulator. И WINE на самом деле является акронимом этого слова. И, как уже говорилось ранее, это даже не виртуальная машина.

Скорее это уровень совместимости для запуска приложений Windows на UNIX-подобных или POSIX-совместимых операционных системах (например, Linux, Mac, BSD). В то время как виртуальная машина или эмулятор имитирует внутреннюю логику Windows, Wine переводит эту логику Windows в родную логику UNIX/POSIX-совместимости.

Говоря простыми и нетехническими терминами, Wine преобразует внутренние команды Windows в команды, которые ваша Linux-система может понимать как родные.

Установка Wine

Существуют различные способы установки Wine на вашу систему. Поскольку это руководство для начинающих, я опишу самый простой из них.

Почти все дистрибутивы Linux поставляются с Wine в репозитории пакетов. Чаще всего в репозитории пакетов доступна последняя стабильная версия Wine. Установить Wine на Ubuntu так же просто, как открыть терминал и выполнить следующие команды:

sudo apt update
sudo apt install wine

Однако если вы используете 64-разрядную установку Ubuntu, вам потребуется выполнить эти дополнительные команды:

sudo dpkg --add-architecture i386

Это добавит поддержку 32-разрядной архитектуры в ваш дистрибутив, что поможет вам при установке определенного программного обеспечения.

Какие приложения Windows поддерживаются Wine?

Существует большое количество приложений Windows, которые в настоящее время полностью поддерживаются Wine. Они будут работать без каких-либо проблем.

Однако каждый день разрабатываются новые приложения Windows. Многие из них не будут работать в Wine так, как мы хотим. Но темпы развития Wine также стремительны, поддержка новых приложений добавляется постоянно.

И для отслеживания этого существует специальная база данных.

База данных приложений Wine содержит почти 24 000 приложений, имеющих различные статусы в зависимости от того, насколько хорошо эти приложения работают в Wine. Если вы хотите быстро проверить рейтинг приложения, которое вы хотите использовать в Wine, вы можете заглянуть туда. Вот значение этих рейтингов:

  • Platinum: Эти приложения устанавливаются и безупречно работают в «готовом» Wine.
  • Gold: Эти приложения работают безупречно с некоторыми специальными настройками.
  • Silver: Приложения с незначительными проблемами помечаются как Silver.
  • Bronze: Бронзовые имеют серьезные проблемы, которые достаточно сильно влияют на использование.
  • Garbage: Они просто не будут работать в Wine.

Отзывы, процедура установки, с какой версией Wine оно тестировалось и различные полезные данные также доступны для каждого приложения здесь.

Разумеется, база данных приложений Wine — это в основном пользовательские данные, поэтому вы всегда можете попробовать запустить приложение с другой версией Wine и поделиться своими результатами с остальными членами сообщества.

Поиск приложения в базе данных приложений Wine

Давайте посмотрим, как мы можем найти приложение в базе данных приложений Wine.

Перейдите в раздел База данных приложений Wine. Нажмите кнопку Browse Apps (Обзор приложений) на левой боковой панели.

Finding an App in Wine AppDB

Поиск приложения в Wine AppDB

Напишите имя приложения, которое вы хотите найти, в поле Имя.

Wine AppDB name filter

Фильтр имен Wine AppDB

Нажмите на ссылку-приложение из результата поиска.

Вы увидите описание приложения. Там будет список различных версий с рейтингом их совместимости с конкретной версией Wine.

Wine AppDB Application page

Страница приложения Wine AppDB

Давайте нажмем на ссылку «Последняя версия».

Это главная страница, которую вам нужно проверить. Там будет подробная информация об этой конкретной версии.

Detailed Information about Application

Подробная информация о приложении

Вы получите представление о том, что будет работать, а что нет. Также здесь будет приведена процедура установки, если для установки потребуются какие-либо дополнительные задачи.

Начало работы с Wine

Прежде чем приступить к установке и запуску приложений в Wine, мы должны иметь четкое представление о некоторых вещах и о том, как настроить Wine для использования:

WinePrefix

Приложениям Windows необходим диск C:. Wine использует для этой цели виртуальный диск C:. Каталог этого виртуального диска C: называется wineprefix. Прежде всего, нам нужно создать wineprefix. Для этого откройте терминал и введите следующую команду:

winecfg

Это создаст wineprefix и откроет окно конфигурации для Wine. Вы можете изменить параметры конфигурации, если хотите, или оставить все как есть и закрыть его. Теперь вы можете найти виртуальный диск C: по адресу

$HOME/.wine/c_drive

WinePrefix C: Drive

WinePrefix C: Диск

Общее правило — устанавливать каждое новое приложение в новый wineprefix. Мы можем создавать и поддерживать несколько wineprefix вручную. Но эта задача покажется довольно утомительной для новичков. Поэтому мы пока пропустим эту часть. Но позже я покажу, как можно легко выполнить эту часть.

Установка приложения с помощью Wine

Установка поддерживаемого приложения в Wine обычно не сложнее двойного щелчка по установочному файлу. Однако сейчас мы рассмотрим пошаговое руководство по установке 7-zip в Wine.

Прежде всего, проверьте рейтинг 7-zip в базе данных приложений Wine. Он имеет рейтинг Platinum, так что все готово. Откройте конфигурацию Wine ( winecfg ) и установите версию Windows на Windows 7.

Wine Windows 7

Wine Windows 7

Щелкните правой кнопкой мыши на установочном файле 7-zip и выберите Open With Wine Windows Program Loader.

7-zip Installation File

Установочный файл 7-zip

Видите путь к конечной папке? Установка 7-zip распознала виртуальный диск C: из wineprefix.

7zip Setup Directory on Wine

7-zip Установочный каталог в Wine

Завершите установку и перейдите в каталог установки [ $HOME/.wine/drive_c/Program Files/7-zip/ ] из браузера файлов.

Щелкните правой кнопкой мыши на файле 7zFM.exe и выберите Свойства > Открыть с помощью.

Set Default .exe Loader

Установка загрузчика .exe по умолчанию

Выберите Wine Windows Program Loader и закройте окно. Дважды щелкните на файле 7zFM.exe.

7-zip running with Wine

7-zip работает в Wine

И вот, пожалуйста! Для создания ярлыка на рабочем столе щелкните правой кнопкой мыши на файле.

Creating 7-zip shortcut

Создание ярлыка 7-zip

Теперь переместите ссылку на рабочий стол.

Move shortcut to Desktop

Переместить ярлык на рабочий стол

Теперь вы можете запускать 7-zip просто с рабочего стола. Все, что вам нужно сделать, это дважды щелкнуть по значку.

Run 7zip from desktop

Запустите 7-zip с рабочего стола

Если вы хотите получить доступ к своим файлам в Linux, они обычно находятся на диске Z:.

Linux directory in Z: drive

Каталог Linux на диске Z:

Вы можете использовать 7-zip так же, как и в Windows — для извлечения и создания архивов и тому подобного.

Давайте сделаем все (намного) проще

Вы могли заметить, что в Wine Application Database при обзоре каждой версии приложения упоминается конкретная версия Wine.

Это связано с быстрыми темпами развития Wine. Хотя приложение работает с текущей версией Wine, оно может не работать с будущей версией из-за внесенных изменений.

Кроме того, я упоминал об установке каждого приложения в свой собственный свежий wineprefix. Таким образом, у приложения нет шансов помешать другому. И делать все это вручную, как правило, из терминала, отнимает много времени, утомляет и порой сбивает с толку.

На помощь приходит PlayOnLinux. Он предоставляет удобный интерфейс для выполнения всех этих действий. Для установки PlayOnLinux на Ubuntu просто выполните эту команду:

sudo apt install playonlinux

PlayOnLinux interface

Интерфейс PlayOnLinux

С помощью PlayOnLinux вы можете легко выполнить любую задачу, связанную с Wine, используя красивый и интуитивно понятный графический интерфейс:

  • Установка и удаление приложений.
  • Создание, обновление и удаление wineprefixes.
  • Поддерживать Wine различных архитектур и версий.
  • Запуск и создание ярлыков для установленных приложений.
  • И так далее…

Но все же вам нужно будет проверить базу данных приложений Wine на предмет отзывов, процедур установки и тому подобного.

Преимущества использования Wine

Когда речь идет о запуске приложений Windows в системе Linux, Wine предоставляет множество преимуществ по сравнению с использованием эмуляторов или виртуальных машин.

  • Производительность: Wine не подвержен снижению производительности, которое в противном случае происходит при эмуляции.
  • Нативный опыт: Нет необходимости открывать Wine перед запуском приложения Windows. Как именно работает Wine, станет более понятно из этой цитаты с официального сайта,

Wine можно рассматривать как эмулятор Windows примерно так же, как Windows Vista можно рассматривать как эмулятор Windows XP: оба позволяют запускать одни и те же приложения, переводя системные вызовы примерно одинаковым образом. Настройка Wine для имитации Windows XP мало чем отличается от настройки Vista для запуска приложения в режиме совместимости с XP.

Производные Wine

Существует довольно много проектов для запуска приложений Windows на других платформах, основанных на Wine:

  • CrossOver: CrossOver разработан компанией CodeWeavers. Она основана непосредственно на Wine с некоторыми изменениями и собственными дополнениями. На самом деле, в CodeWeavers работает большая часть разработчиков Wine. В отличие от быстрых релизов Wine, релизы CrossOver более стабильны. Единственным и основным недостатком является то, что Crossover не является бесплатным.
  • PlayOnLinux: PlayOnLinux полностью основан на Wine. Он обеспечивает более легкий путь для установки и управления приложениями с помощью Wine. PlayOnLinux бесплатен. Он также доступен для Mac как PlayOnMac.
  • ReactOS: ReactOS — это совершенно другая операционная система с открытым исходным кодом для запуска приложений Windows. В ней повторно используется значительное количество кода из Wine. Однако этот проект находится в разработке уже более десяти лет, и я не стал бы его рекомендовать.

Дополнительные советы по использованию Wine

Winetricks

Это еще одна важная часть использования Wine. Winetricks — это вспомогательный скрипт для загрузки и установки различных перераспределяемых библиотек времени выполнения, необходимых для запуска некоторых приложений в Wine. Они могут включать замену компонентов Wine, использующих библиотеки с закрытым исходным кодом. Winetricks поставляется вместе с установкой Wine на Ubuntu.

Для запуска winetricks выполните эту команду:

winetricks

Winetricks

Winetricks

Существует множество вариантов помощи в решении различных задач.

Установка приложения с помощью Winetricks

Если вы установите приложение из winetricks, оно будет установлено в отдельный wineprefix. Давайте установим VLC:

Winetricks - Install an app

Winetricks – Установить приложение
Winetricks - Install VLC
Winetricks – установить VLC

После этого начнется загрузка установочных файлов VLC. А затем проведет вас через весь остальной процесс. Это довольно просто.

Установка DLL или компонентов Windows и другое

Вы можете выбрать wineprefix из winetricks и установить различные библиотеки и компоненты, необходимые для запуска приложения, а также выполнить другие операции.

Winetricks Scripts

Сценарии Winetricks
Winetricks Libraries & Components
Библиотеки и компоненты Winetricks

Примечание: Если использование winetricks кажется вам сложным, это совершенно нормально. Я тоже так считаю. По этой причине я всегда использую PlayOnLinux. PlayOnLinux может делать все, что вам может понадобиться от winetricks.

Для получения дополнительной информации вы можете ознакомиться с FAQ и документацией по Wine.

Я надеюсь, что это руководство для начинающих по использованию Wine в Linux будет вам полезно. Теперь вы можете запускать программы Windows в Linux без установки виртуальной машины или двойной загрузки.

Сообщите нам, если у вас есть вопросы или мнения, в разделе комментариев ниже.

Установка Wine
Установка программ в Wine
Запуск программы
Префиксы Wine
Настройка префикса
winefile — файловый менеджер Wine
Удаление программ в Wine
Работа с реестром
Установка Winetricks
Установка дополнительных пакетов
Пакет Dotnet
Пакет Mono
Установка Gecko
Виртуальный рабочий стол в Wine
Углубление в функционал Wine

Wine — свободное программное обеспечение, позволяющее пользователям ОС на базе ядра Linux исполнять 32- и 64- битные приложения созданные исключительно для Microsoft Windows. Название W.I.N.E. расшифровывается как «Wine Is Not an Emulator» — «W.I.N.E. — это не эмулятор». Имеется в виду, что Wine не является эмулятором компьютера или виртуальной машиной, как, например, qemu, VirtualBox и другие подобные им. Wine — это свободная реализация Windows API.

Смотрите видеоролик о работе с WINE в РЕД ОС на нашем официальном YouTube-канале.

Для установки необходимо открыть терминал, войти под суперпользователем root и начать установку:

# dnf install wine

После установки запустите команду от имени обычного пользователя, чтобы увидеть конфигурацию Wine:

winecfg

Примечание.

При первом запуске команды winecfg создается префикс .wine 64-х разрядный по умолчанию.

Установка программ в Wine

Для легковесных программ достаточно команды:

wine filename.exe

Но чаще всего перед установкой программы в wine требуется настройка префикса.

Если при установке префикс не указывается, программа ставится в префикс по умолчанию.

Если установщик программы запускается файлом с расширением .msi, используем команду:

wine msiexec /i filename.msi

Установка в префикс не по умолчанию, например .wine_prefix, осуществляется следующим образом:

WINEPREFIX="/home/$USER/.wine_prefix" wine "/home/$USER/Downloads/filename.exe"

Запуск программы

Чтобы запустить программу, необходимо указать полный путь к исполняемой программе или имени программы, как показано в примере ниже:

wine /<путь_к_файлу>/program.exe

Первый запуск программы может длиться достаточно долгое время.

Запуск bat-файлов осуществляется командой:

wine start filename.bat

Префиксы Wine

Для разных программ могут потребоваться разные дополнительные компоненты, разные настройки Wine и т. п. Для этого существуют префиксы Wine. Используя для каждой программы свой префикс, вы можете обеспечить им индивидуальное окружение.

Для примера создадим и сконфигурируем 64-х разрядный префикс с именем .wine_prefix в домашнем каталоге пользователя:

WINEARCH=win64 WINEPREFIX="/home/$USER/.wine_prefix" winecfg

где WINEARCH=win64 — указывает, что префикс создается под архитектуру amd64, что позволит запускать в нем 64-разрядные программы, а также 32-разрядные. Для создания 32-разрядного префикса необходимо заменить 64 на 32.

WINEPREFIX=»/home/$USER/.wine_prefix» — указывает путь расположения создаваемого префикса.

Примечание.

Кавычки используются в случаях, если в имени папок содержится пробел, например «/home/user/Рабочий стол».

winecfg — запускает программу конфигурирования префикса.

Для запуска программ с префиксом каждый раз указывать архитектуру не требуется, поэтому после создания параметр WINEARCH=win64 прописывать не нужно.

Пример запуска программы internet explorer с префиксом:

WINEPREFIX=/home/$USER/.wine_prefix wine /home/$USER/.wine/drive_c/Program\Files/Internet\ Explorer/iexplore.exe

Настройка префикса

Версия Windows позволяет выбирать режим запуска с необходимой версией Windows (Windows 7 — по умолчанию).

Вкладка «Диски» позволяет управлять виртуальными и физическими разделами. В стандартной конфигурации подключено 2 раздела: C и Z.

C — является системным каталогом префикса;

Z — ведет в корень файловой системы Linux, в некоторых случаях такое поведение нежелательно, поэтому данный диск рекомендуется удалить, тем самым изолировав префикс от основной системы.

Примечание.

Вредоносные программы для Windows потенциально способны нанести вред Linux-системе.

Вкладка «Вид и интеграция» дает возможность выбора ассоциаций каталогов Windows-пользователя с домашними каталогами Linux-пользователя. Данная возможность располагается в блоке «Папки» в нижней половине окна.

В префиксе стандартные каталоги Windows-пользователя располагаются по пути /home/user/.wine_prefix/drive_c/users/$USER/.

Ссылки в данном случае указывают на домашние каталоги Linux-пользователя, который создал префикс.

Остальные вкладки подробно описаны и интуитивно понятны.

winefile — файловый менеджер Wine

Winefile является аналогом проводника Windows

Запуск winefile осуществляется командой:

WINEPREFIX="/home/$USER/.wine_prefix" wine winefile

Удаление программ в Wine

Для удаления программ необходимо использовать команду:

wine uninstaller

или удаление из префикса:

WINEPREFIX="/home/$USER/.wine" wine uninstaller

После этого откроется окно «Установка/удаление программ», где следует выбрать нужную программу и нажать кнопку «Удалить».

При помощи wine uninstaller можно устанавливать программы, нажав на кнопку «Установить» и выбрав необходимую для установки программу.

Удаление программы без использования GUI осуществляется следующим образом:

wine uninstaller --remove <название_программы>

или из префикса:

WINEPREFIX="/home/$USER/.wine_prefix" wine uninstaller --remove <название_программы>

Также есть возможность удалить программу, используя ее собственную программу удаления:

wine /<путь_к_папке_с_программой>/uninstall.exe

Работа с реестром

Для открытия реестра используется инструмент regedit:

wine regedit

Чтобы перемещаться по реестру, кликните на ключах в левой части панели, чтобы перейти на следующий уровень глубины. 

Чтобы удалить ключ, кликните на нем и в меню Edit выберите «Delete»

Чтобы добавить ключ или значение, определите место, где вы хотите поместить его, и выберите «New» из меню «Edit». 

Чтобы изменить существующий ключ, выделите его в правой панели и выберите «Modify» из меню «Edit». Другой способ проделать то же самое, это щелчок правой кнопкой мыши на ключе или значении.

Файлы реестра располагаются в папке префикса, например:

/home/$USER/.wine_prefix/
  • system.reg — содержит ветвь HKEY_LOCAL_MACHINE;

  • user.reg — HKEY_CURRENT_USER;

  • userdef.reg — HKEY_HKEY_USERS\.Default (содержит настройки Windows пользователя по умолчанию).

Установка Winetricks

Winetricks — вспомогательный скрипт для загрузки и установки различных распространяемых библиотек, необходимых для запуска некоторых программ в Wine, а также настройки окружения.

Для установки winetricks требуются права администратора:

# dnf install winetricks

Чтобы открыть диалоговое окно программы для работы в графическом режиме, необходимо вызвать команду:

winetricks

При выборе пункта меню, установленного по умолчанию, открывается следующее окно, которое содержит список доступных над wine-префиксом операций, где можно доустановить библиотеки, шрифты, вызвать редактор реестра или окошко настроек wine (winecfg).

Есть возможность установить пакеты напрямую через терминал:

winetricks <название_пакета>

Чтобы отобразить все установленные пакеты введите команду:

winetricks dlls list

Установка дополнительных пакетов

Пакет Dotnet

Для установки пакета в графическом режиме необходимо запустить winetricks.

При открытии окна выбрать пункт меню, установленный по умолчанию, затем необходимо выбрать пункт «Установить библиотеку DLL или компонент Windows». В списке приложений следует выбрать пакет для установки в зависимости от того, какая версия необходима, и нажать «ОК».

Затем откроется окно установки программы, где необходимо изучить и принять условия лицензионного соглашения и следовать инструкциям по установке.

Для полуавтоматической установки (название и описание компонентов выводятся по ключу help):

winetricks "components names"

Пример установки  NET Framework 4.5:

winetricks -q dotnet45

Пакет Mono

Mono — программная платформа, позволяющая разработчикам достаточно просто создавать развитые кроссплатформенные приложения. 

В базовом варианте Mono состоит из нескольких компонентов:

  • Компилятор языка C#;
  • Среда исполнения Mono — состоит из среды исполнения (CLI) непосредственно, компилятора среды исполнения (Just-In-Time, JIT), генератора машинного кода (Ahead-Of-Time, AOT), загрузчика сборок, сборщика мусора, подсистемы управления многопоточностью и компонентов поддержки взаимодействия между сборками и COM (или аналогами в Linux, например XCOM);
  • Базовая библиотека классов — набор стандартных классов, совместимых с классами Microsoft .NET Framework;
  • Библиотека классов Mono — набор классов, поддерживающих дополнительные функции для разработки Linux-приложений. Например, классы для поддержки Zip, OpenGL, Cairo, Gtk+.

Данный пакет ставится автоматически при установке Wine из репозитория версии 4.4.

Установка Gecko

Gecko – это свободный движок вывода веб-страниц для браузера при работе в интернете wine. Если wine не работает с интернетом и вы не запускаете windows.exe браузер, то вам Gecko не нужен.

Обычно при запуске приложения для работы с веб-страницами Wine автоматически ищет Gecko сперва в /usr/share/wine/gecko. Если Wine не находит архив с Gecko там, то он автоматически загружает его из интернета, но некоторые приложения не любят ждать, пока загрузиться Gecko и зависают или вылетают.

Данный пакет ставится автоматически при установке Wine из репозитория версии 4.4.

Виртуальный рабочий стол в Wine

Имитация рабочего стола Windows в wine необходима для решения проблем, связанных с разрешением экрана, а также при сворачивании программ в wine.

Рабочий стол можно включить через winecfg.

Запущенная программа размещается в рамках виртуального рабочего стола.

Также есть возможность запустить рабочий стол, не используя интерфейс:

wine explorer /desktop="desk",800x600 regedit
  • explorer — проводник Windows;

  • /desktop=»desk»,800×600 regedit — создать рабочий стол с именем desk и разрешением 800х600, затем запустить программу regedit (редактор реестра).

Углубление в функционал Wine

Wineconsole — позволяет запускать консоль windows, в основном используется для отладки.

wineconsole cmd

Wineserver — служба, исполняющая роль ядра Windows. Для каждого префикса запускается своя служба, что позволяет выполнять одновременно несколько программ из разных префиксов.

В случаях, когда программа зависла, поможет перезапуск winserver (жесткая перезагрузка):

wineserver -k

или с префиксом:

WINEPREFIX="/home/$USER/.wine_prefix" wineserver -k
  • wineserver -d[n]: — выводит отладочную информацию, имеет 3 уровня:
    • 0 — не выводит информацию;

    • 1 — выводит основную информацию;

    • 2 — выводит полную информацию.

  • wineserver -f: — выводит сервер на передний план для упрощения отладки;

  • wineserver -p[n]: — определяет время до остановки сервера, когда все клиентские процессы завершились, что позволяет быстрее запускать приложения, по умолчанию 3 секунды, если значение n не указано, сервер будет работать вечно;

  • wineserver -w: — ожидает завершения предыдущей сессии ядра для корректного старта новой сессии.

Wineboot — выполняет инициализацию, запуск и перезагрузку префикса. Также выполняет симуляцию перезапуска и завершения работы программ (мягкая перезагрузка).

wineboot -r

Создание префикса через wineboot:

WINEPREFIX="/home/$USER/.wine_prefix" wineboot -i
  • -i — инициализировать префикс.

Дата последнего изменения: 18.09.2023

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

  • Как установить windows шрифты в linux
  • Как установить windows через сеть
  • Как установить windows удаленно через интернет
  • Как установить windows через буткамп
  • Как установить windows сервер 2012