В современном мире многие пользователи компьютеров сталкиваются с необходимостью использовать программное обеспечение, разработанное для операционной системы Windows, на других платформах, таких как Linux. Здесь на помощь приходит Wine (Wine Is Not an Emulator) — программное обеспечение с открытым исходным кодом, которое предоставляет альтернативную реализацию Windows API. Работа с Wine открывает новые горизонты для пользователей, позволяя им запускать приложения Windows на различных операционных системах.
Установка/удаление Wine
Процесс установки и удаления Wine подробно описан в статье «Как установить Wine». После установки по умолчанию Wine использует определенный префикс для работы с приложениями, а также предоставляет возможность создания пользовательского префикса. Это обеспечивает гибкость в настройке среды для запуска Windows-приложений.
Префикс по умолчанию
Префикс — это папка с файлами, которую Wine использует для работы с приложениями Windows. По умолчанию Wine использует префикс /home/<username>/.wine. Если префикса нет, то при запуске Wine или его стандартной утилиты (например, winecfg) он создается автоматически.
Пользовательский префикс
Также префикс можно задать через переменную WINEPREFIX перед командой запуска wine или Wine в любом месте на жестком диске. Для создания пользовательского префикса необходимо выполнить команду:
WINEPREFIX=<путь_к_папке> winecfg
Пример:
WINEPREFIX=/home/username/.prefix winecfg
Примечание: папка также может быть не скрытой.
Установка программ в Wine
Процесс установки программ для префикса по умолчанию во многом аналогичен тому, что характерно для операционной системы Windows. После выполнения стандартной установки приложение появляется на рабочем столе Linux, а также создается соответствующий ярлык в меню, обеспечивая легкий доступ для запуска. Этот подход обеспечивает привычный пользовательский опыт, делая использование Windows-приложений на платформе Linux более интуитивным и удобным.
Для установки программ в пользовательский префикс необходимо выполнить:
WINEPREFIX=<путь_к_папке> wine <путь_к_файлу_EXE>
Если в системе установлен префикс по умолчанию, а также создан пользовательский и установить программу нужно именно в созданный пользователем префикс обычным способом по двойному клику, то необходимо добавить в файл «/home/<username>/.profile» путь:
export WINEPREFIX=<путь_к_папке>
Пример:
export WINEPREFIX=/home/username/.prefix
Далее необходимо перезагрузить вашу сессию для применения изменений.
И проверить переменную окружения:
echo $WINEPREFIX
Вывод команды должен быть «/home/username/.prefix».
Теперь установка будет выполняться в обычном режиме по клику исполняемого файла.
Для возврата на пользовательский префикс необходимо выполнить его сброс командой:
unset WINEPREFIX
Но важно отметить, что после перезапуска сессии по умолчанию будет работать пользовательский префикс.
Удаление программ в Wine
Удаление программ из Wine осуществляется с использованием встроенной утилиты uninstaller. Это позволяет пользователям легко освобождать пространство и поддерживать порядок в установленных приложениях.
Чтобы удалить программу из Wine необходимо выполнить команду:
wine uninstaller
Откроется окно «Установка/удаление программ», как показано на скриншоте.
И по кнопке «Изменить/Удалить» необходимо выбрать удаление нужной программы.
Утилита Winetricks
В статье «Как использовать Winetricks» также предоставлена информация о работе с утилитой Winetricks, которая предоставляет дополнительные инструменты для управления компонентами Wine и обеспечивает более широкие возможности в настройке окружения.
Заключение
Руководство по работе с Wine предоставляет пользователям полезную информацию для установки, удаления и настройки данного программного обеспечения. Благодаря гибкости в использовании префиксов, возможности установки программ и использования утилиты Winetricks, пользователи получают широкий спектр возможностей для запуска приложений Windows на различных операционных системах, делая их опыт более комфортным и удобным.
Wine — это свободное программное обеспечение, позволяющее пользователям UNIX-подобных систем архитектуры x86 (и других архитектур, при наличии совместимости, например, AMD64) исполнять 16 и 32-битные приложения Microsoft Windows (64-битные приложения находятся в стадии ранней реализации).
|
|
Установка Wine
Для установки (и только для установки) воспользуйтесь терминалом суперпользователя:
sudo -s
Добавьте список репозиториев, ключ и установите Wine:
RELEASE=`lsb_release -cs` elif [[ $RELEASE = "karmic" || $RELEASE = "jaunty" || $RELEASE = "intrepid" || $RELEASE = "hardy" ]]; then wget -q http://wine.budgetdedicated.com/apt/sources.list.d/$RELEASE.list -O /etc/apt/sources.list.d/winehq.list wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | apt-key add - apt-get update && apt-get install -y wine cabextract
Запустите конфигуратор wine, в домашней директории создастся папка ~/.wine/
winecfg
Пока что ничего там не стоит трогать, закройте.
Установка DirectX с помощью Winetricks
DirectX — это набор API функций, разработанных для решения задач, связанных с игровым и видеопрограммированием под Microsoft Windows, разумеется его нужно установить.
Вы можете скачать, распаковать и установить DirectX вручную.
Вы можете воспользоваться WineSX
или Q4Wine
— которые позволяют легко настроить Wine путем установки и удаления программ, редактирования реестра, управления файлами и многое другое в графическом режиме.
- WineSX — GUI для Ubuntu.
- Q4Wine — GUI для Kubuntu.
Но сообщество Wine, предлагает вам более изящный вариант установки с помощью скрипта winetricks
. Который помимо DirectX
может ставить ряд других программ, например: .NET, Mono и даже Firefox3, и MS Windows Media Player и др. Шрифты.
Скачайте скрипт командой в терминале:
wget http://www.kegel.com/wine/winetricks
Дайте права на запуск:
chmod a+rwx winetricks
Запускать программу надо именно под тем пользователем, под которым у вас работает Wine, иначе софт установится не туда, куда нужно. Права суперпользователя не потребуются.
Для открытия графического меню, два раза кликните по скрипту и выберите: «Запустить»
Поставьте галочку против directx9 и нажмите «OK»
А так же, вы можете установить пакет из терминала:
./winetricks directx9
Для запуска скрипта winetricks
по alt+F2
, его следует переместить в /usr/bin
sudo mv winetricks /usr/local/bin
В терминале можно указывать сразу несколько пакетов, разделяя названия пробелом. В графическом интерфейсе программы, тоже можно выбирать несколько пакетов (используя для этого клавиши shift
или ctrl
).
Установка необходимых библиотек
Скачайте в домашнюю директорию несколько необходимых библиотек Windows:
- mscoree.dll
- streamci.dll
- mfc42.dll
Скопируйте их в ~/.wine/drive_c/windows/system32/
, перейдите в эту папку и удалите ненужные библиотеки:
cp mscoree.dll streamci.dll mfc42.dll ~/.wine/drive_c/windows/system32/ && cd ~/.wine/drive_c/windows/system32/ && rm d3d8.dll d3d9.dll ddraw.dll dsound.dll dsound.vxd quartz.dll dxdiagn.dll
При необходимости отредактируйте файл ~/.wine/user.reg
gedit ~/.wine/user.reg
В конец файла вставьте:
[Software\\Wine\\DllOverrides] 1196330736 "d3d8"="native" "d3d9"="native" "d3dim"="native" "d3dx8"="native" "d3dxof"="native" "dciman32"="native" "ddrawex"="native" "devenum"="native" "dinput"="native" "dinput8"="native" "dmband"="native" "dmcompos"="native" "dmime"="native" "dmloader"="native" "dmscript"="native" "dmstyle"="native" "dmsynth"="native" "dmusic"="native" "dplay"="native" "dplayx"="native" "dpnaddr"="native" "dpnet"="native" "dpnhpast"="native" "dswave"="native" "dxdiagn"="native" "mscoree"="native" "quartz"="native" "streamci"="native"
Снова запустите конфигуратор wine:
winecfg
Перейдите на вкладку «Библиотеки», где каждый указанный из ниже приведенного списка файл отредактируйте, указывая что библиотека «Встроенная (Wine)»: d3d8
, d3d9
, ddrawex
, dinput
, dinput8
.
Установка шрифтов
Для того, чтобы шрифты отображались нормально, их надо установить. Дело в том, что по умолчанию папка ~/.wine/drive_c/windows/fonts
почти пустая.
Установите системные шрифты Windows:
winetricks corefonts
Вы можете дополнить коллекцию шрифтов скачав архив, распаковав и скопировав файлы *.ttf
в ~/.wine/drive_c/windows/fonts
wget https://www.kobzarev.com/wp-content/uploads/wine/notes_69.tar.gz && tar xvfz notes_69.tar.gz && cp ~/fonts-cyr-win311/*TTF ~/.wine/drive_c/windows/Fonts
Удалите весь мусор из домашней директории:
rm -f mscoree.dll streamci.dll mfc42.dll notes_69.tar.gz && rm -rf fonts-cyr-win311
Если необходимо использование ttf-шрифтов всеми пользователями системы, тогда скопируйте их в папку /usr/share/wine/fonts
(Ubuntu) и измените атрибуты файлов на 644:
sudo chmod 644 /usr/share/wine/fonts/*.TTF
Установка и удаление приложений
Для установки win-приложения проще всего воспользоваться файловым браузером winefile
:
winefile
Достаточно перейти в необходимый каталог и запустить программу двойным щелчком мыши.
Многие win-приложения запрашивают перезагрузку для завершения установки. Разумеется, перезагружать host-систему при этом не следует.
Процедуре перезагрузки Windows, соответствует команда:
wineboot
Если в этот момент в Wine выполняются другие приложения, то рекомендуется их завершить до перезагрузки.
Для установки *.msi
, воспользуйтесь командой:
msiexec /i example.msi
Для удаления win-приложения перейдите в «Приложения» — «Wine» — «Программы» — «Папка с программой» — «Uninstall»
Или воспользуйтесь утилитой uninstaller
. Эта утилита выводит список установленных приложений. Чтобы удалить приложение, выберите его из списка и нажмите кнопку «Uninstall». Если приложения, которое вы хотите удалить, нет в списке, то будет достаточно просто удалить каталог с приложением (можно воспользоваться для этого программой winefile
, а можно вручную, перейдя в каталог ~/.wine/drive_c/Program Files
).
Запуск приложений
Если установка приложения прошла правильно, в «Приложения» — «Wine» — «Программы» появится соответствующее меню. Если по каким-то причинам этого не произошло, пробуйте запустить установленную программу через терминал.
К примеру, я запускаю из терминала установленный калькулятор:
cd "~/.wine/drive_c/Program Files/Calc" calc.exe
Не пытайтесь запустить приложения Windows щелчком в Nautilus. Иногда этот фокус проходит, но может привести к ошибкам.
Общие настройки
Приложения:
По умолчанию установлен Windows XP, который можно изменить на другую версию. Причем можно настроить так, чтобы каждое приложение запускалось со своим параметром.
Библиотеки:
По умолчанию все библиотеки в Wine используются свои. Но при установке DirectX, вы внесли там необходимые изменения.
Графика:
Для некоторых приложений может потребоваться включить или выключить вершинные и пиксельные шейдеры, может потребоваться эмуляция виртуального рабочего стола. Экспериментируйте.
Вид и интеграция:
Во вкладке «Графика», по умолчанию стоят галочки «разрешить менджеру окон управлять окнами Wine” и «разрешить менджеру окон декорировать окна», оформление win-окон будет таким же, как и у любых других приложений. При желании вы можете управлять размерами системных шрифтов и цветом десктопа.
Диски:
Здесь можно добавлять диски, используя для них любую директорию внутри файловой системы. Смонтированную флешку, дисковод или образ диска.
Аудио:
На ваше усмотрение. Если звук работает, то трогать там ничего не рекомендуется.
Неполадки
Если что-то прошло некорректно, рекомендуется переустановить Wine и все программы.
Для этого следует удалить директорию ~/.wine
, выполнить команду winecfg и снова установить программы.
Удалять пакеты wine
и wine-gecko
в Synaptic не нужно.
Если у вас установлен gxNeur
, следует добавить Wine
в список исключений. Иначе в программах, запущенных под Wine
не будет работать клавиатура.
Если вы не используете SCIM — рекомендую удалить:
sudo apt-get remove scim
Бывает что после удаления программ установленных под Wine
, остаются ярлыки в меню.
Их можно удалить следующим образом:
Посмотрите и удалите тут: ~/.local/share/applications/wine/Программы
Для удаления ВСЕХ ярлычков:
sudo rm -r ~/.local/share/applications/wine/Программы
Памятка
При запуске Wine — закрывайте все работающие приложения и отключайте Compiz
!
Возможно вам потребуются распаковщики *.rar
, *.zip
и пр.
sudo apt-get install unace rar unrar zip unzip p7zip-full p7zip-rar sharutils aish uudeview mpack lha arj cabextract file-roller
Ссылки
- Wine — запуск Windows программ
- Как установить русские ttf-шрифты в Wine (Ubuntu)
2.8.10.2 Работа с программами в WINE
Скачать документ
Установка программ в 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 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 uninstaller
или удаление из префикса:
WINEPREFIX="/home/$USER/.wine" wine uninstaller
После этого откроется окно «Установка/удаление программ», где следует выбрать нужную программу и нажать кнопку «Удалить».
При помощи wine uninstaller можно устанавливать программы, нажав на кнопку «Установить» и выбрав необходимую для установки программу.
Удаление программы без использования GUI осуществляется следующим образом:
wine uninstaller --remove <название_программы>
или из префикса:
WINEPREFIX="/home/$USER/.wine_prefix" wine uninstaller --remove <название_программы>
Также есть возможность удалить программу, используя ее собственную программу удаления:
wine /<путь_к_папке_с_программой>/uninstall.exe
Эта информация оказалась полезной? ДА НЕТ
Дата последнего изменения: 06.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Примечание: На момент 2023 года статья значительно устарела, актуализированную версию можно найти здесь: https://noostyche.ru/blog/2023/05/19/aktualizirovannye-osnovy-po-ispolzovaniyu-wine-na-2023-god/
Примечание: Статья предназначена для новичков, но, как минимум, потребуются базовые знания о Linux (структура файловой системы, права пользователей, навыки работы с терминалом).
Содержание.
- О Wine.
- Установка Wine в дистрибутивы на базе Ubuntu, включая Linux Mint 19.
- Удаление Wine.
- Использование Wine. Немного теории о префиксах (prefix).
- Использование Wine. Создание префиксов (prefix).
- Общая информация и ограничения префиксов.
- Конфигурирование Wine через GUI.
- winefile. Файловый менеджер Wine.
- Wine. Установка и запуск программ.
- Wine. Удаление установленной Windows-программы.
- Winetricks. Основы.
- Winetricks. Настройка префикса.
- Углубление в функционал Wine.
- Отладка.
- Практика.
- Чуть-чуть хитростей.
Почта для предложений и замечаний: feedback@noostyche.ru
О Wine.
https://ru.wikipedia.org/wiki/Wine
Много интересного по использованию Wine можно посмотреть так:
man wine
Руководство пользователя:
https://wiki.winehq.org/Wine_User’s_Guide
В основном устаревший перевод руководства, но некоторые вещи всё ещё актуальны:
https://www.opennet.ru/docs/RUS/wine_guide/index.html
Arch wiki (часть вещей устарела):
https://wiki.archlinux.org/index.php/Wine_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
Рецепты запуска конкретных программ и помощь от сообщества стоит искать здесь:
https://appdb.winehq.org
https://www.protondb.com
https://vk.com/native_wine
Примечание: В виду того, что с теоретической частью можно легко ознакомиться по приложенным к статье ссылкам, здесь она описывается кратко, оставляя больше пространства для практической части.
Установка в дистрибутивы на базе Ubuntu, включая Linux Mint 19.
https://wiki.winehq.org/Ubuntu
Для wine-staging, начиная с версии 4.5, требуется пакет libfaudio0. Для Ubuntu 19.10 и более новых выпусков этот пакет был добавлен в Universe-ветку репозитория, то есть в ветку с пакетами, поддерживаемыми сообществом.
Ещё libfaudio0 можно взять из этого репозитория:
https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/amd64/
https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/i386/
Для работоспособности Wine:i386 и Wine:amd64 потребуются пакеты соответствующей архитектуры.
Пример установки из репозитория:
sudo apt install --install-recommends libfaudio0
Пример установки скачанного пакета:
sudo apt install --install-recommends ~/Downloads/libfaudio0_19.07-0~bionic_i386.deb
Пример установки wine-staging в Linux Mint 19.
Рекомендую использовать именно wine-staging в виду того, что эта версия содержит множество дополнительных патчей, которые в значительной степени повышают шансы на успешный запуск той или иной программы. Недостатком этой версии является то, что она несколько менее стабильна, чем wine-stable, но в основном это не критично.
Первым шагом будет скачивание и добавление ключа:
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
Linux Mint 19 использует репозиторий Ubuntu bionic. Подключить соответствующую ветку репозитория Wine:
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'
Обновить список пакетов:
sudo apt update
Установить wine-staging:
sudo apt install --install-recommends winehq-staging:amd64
Должны установиться winehq-staging:i386 и winehq-staging:amd64.
Основные компоненты wine-staging будут расположены в /opt/wine-staging/
Весь список компонентов и пути до них можно вывести следующей командой:
dpkg -L wine-staging
Удаление Wine.
Примечание: Отключить репозиторий и удалить его ключ можно через программу с графическим интерфейсом , но в данном примере будет рассмотрен вариант через терминал.
Сначала отключить репозиторий Wine:
sudo add-apt-repository -r https://dl.winehq.org/wine-builds/ubuntu/
Вывести список всех ключей используемых репозиториев:
apt-key list
Найти ключ репозитория Wine и по последним четырём символам удалить его. Пример:
sudo apt-key del F987672F
Удалить непосредственно Wine:
sudo apt remove --auto-remove winehq-staging
При этом будет удалён стандартный префикс ~/.wine. Поэтому, если он будет нужен в дальнейшем, стоит его заархивировать или переименовать.
Прочие префиксы нужно удалять вручную.
Обновить список репозиториев:
sudo apt update
После удаления Wine останутся иконки и некоторые пакеты. Их можно удалить вручную.
Место хранения ярлыков программ, установленных в Wine:
~/.local/share/applications/wine/
Место хранения иконок, включая тех программ, что установлены в Wine:
~/.local/share/icons/hicolor/
Кэш для установки таких пакетов, как wine-mono и wine-gecko:
~/.cache/wine/
Архив пакетов, которые устанавливались посредством winetricks в тот или иной префикс:
~/.cache/winetricks/
Использование Wine. Немного теории о префиксах (prefix).
Грубо говоря, префикс это отдельный экземпляр ОС Windows. Содержит в себе базовую структуру каталогов ОС Windows, набор библиотек и программ. В народе префикс называют «бутылкой» (bottle). Экземпляры компонентов для префикса хранятся в подкаталогах /opt/wine-staging/, откуда они копируются в создаваемый префикс.
В дистрибутивах Linux стандартный префикс располагается здесь:
~/.wine/
По умолчанию он 32-разрядной архитектуры.
Можно создавать префиксы в любых желаемых каталогах, принадлежащих пользователю. Описание процесса создания располагается далее по статье.
Примечание: Категорически недопустимо создание префиксов с правами суперпользователя. Это крайне небезопасно и пользователь не будет иметь прав с ним работать.
Стандартное содержимое префикса:
Описание иллюстрации:
- В каталоге dosdevices перечислены виртуальные «диски». В Windows разделы блочных устройств представлены в виде абстрактных «дисков» (томов), каждый из которых обозначается буквой. К примеру, системный «диск» по умолчанию называется «C:».
- drive_c — виртуальный диск C:, на котором располагаются компоненты Windows.
- .update-timestamp — метка времени.
- system.reg, user.reg и userdef.reg являются файлами реестра Windows. Если кратко, то это централизованное древовидное хранилище настроек Windows-программ.
В каталоге drive_c (диск C:) содержится классическая структура каталогов Windows.
Использование Wine. Создание префиксов (prefix).
Пример создания и конфигурирования 64-х разрядного префикса с именем .wine_new в домашнем каталоге (home) активного пользователя:
WINEARCH=win64 WINEPREFIX="/home/$USER/.wine_new" winecfg
Примечание: Для присваивания значений переменным среды правильнее использовать команду env, но в виду того, что интерпретатор умеет определять переменные среды (их имена обязательно должны быть в верхнем регистре), env можно опустить для упрощения набора команды.
Разбор команды:
WINEARCH=win64 — через переменную среды (environment variable) WINEARCH указываем, что префикс должен быть создан под архитектуру amd64. Это позволит запускать в нём 64-разрядные программы, а так же 32-разрядные. Для лучшего понимания стоит ознакомиться с Multiarch. Стоит отметить, что нельзя изменить архитектуру у созданного префикса.
WINEPREFIX=»/home/$USER/.wine_new» — через переменную среды WINEPREFIX указываем, по какому пути должен будет располагаться новый префикс. В данном примере это «/home/$USER/.wine_new». Wine требует указания абсолютного пути. Путь в виде «~/.wine_new» не подойдёт, и будет выведена ошибка: wine: invalid directory ~/.wine_new in WINEPREFIX: not an absolute path.
Немного о кавычках. Они используются для экранирования пути на тот случай, если в нём будут пробелы, чтобы интерпретатор разобрался с тем, что есть путь, а что прочие команды и аргументы.
winecfg — программа для конфигурирования префикса. После её запуска произойдёт процесс непосредственного создания префикса по указанному пути.
Сразу после выполнения увидим следующий вывод:
При первом создании префикса может быть предложено скачать пакеты Mono и Geko, но, начиная с Wine 5.0, они должны скачиваться вместе с установкой Wine без дополнительных запросов. В этом случае будет предложено просто установить их в префикс.
- Библиотеки Mono нужны для корректной работы программ, которым необходим Microsoft .NET Framework.
- Библиотеки Geko необходимы для корректной работы свободной реализации Internet Explorer (до Windows 10 стандартный интернет браузер в ОС Windows).
Пакеты будут размещены здесь:
~/.cache/wine/
После завершение создания префикса появится окно графического интерфейса (GUI) конфигуратора префикса (winecfg):
О настройках конфигуратора несколько далее по статье. На этом этапе его окно можно закрыть.
Объём свежесозданного префикса составит около 1,3 Гб.
По аналогии можно создать 32-разрядный префикс:
WINEARCH=win32 WINEPREFIX="/home/$USER/.wine_new32" winecfg
Общая информация и ограничения префиксов.
- Зачем вообще создавать префиксы? Почему бы не ставить программы куда-попало в пространство Linux-пользователя и запускать их из любого удобного места? | Если установить программу вне префикса, то она может оказаться неработоспособной в виду различия иерархии путей в Linux и Windows. В остальном, на деле программа будет как бы установлена в стандартный префикс /home/$USER/.wine. Именно оттуда она будет взаимодействовать с системными компонентами Windows, включая реестр. Туда же она будет сохранять свои рабочие файлы (конфиги, логи и подобное). Поэтому во избежание ошибок, несовместимости и замусоривания оптимальнее осознанно использовать префиксы.
- Можно создавать неограниченное количество префиксов.
- Нежелательно устанавливать все программы в один префикс, лучше создавать новый под каждую программу. Это в значительной степени упростит отладку и поможет избежать конфликтов.
- Можно настроить один префикс, копировать его и использовать копии в качестве отдельных префиксов. При этом можно свободно менять их имена.
- После создания префикса, для запуска программ из него, не нужно каждый раз указывать его архитектуру. Пример запуска программы control.exe:
WINEPREFIX="/home/$USER/.wine_new32" wine "/home/$USER/.wine_new32/drive_c/windows/system32/control.exe"
- Да, для того, чтобы запустить программу из того или иного префикса, необходимо каждый раз передавать переменной окружения WINEPREFIX значение пути до желаемого префикса. Варианты упрощения этого описаны в конце статьи.
- Не рекомендуется размещать префикс на разделе с файловой системой NTFS (основная файловая система OC Windows), так как могут быть проблемы с правами на запуск программ в префиксе и в целом это менее безопасно.
- НЕЛЬЗЯ устанавливать в префикс Windows-драйвера для оборудования (видеокарт, звуковых карт и подобного). Потенциально это может привести к сбою устройства.
- Можно одновременно запускать программы из разных префиксов. Это возможно благодаря отдельным процессам wineserver, о котором рассказывается во второй половине статьи.
- В виду неполной изоляции префиксов, не стоит пытаться запускать вредоносные программы для Windows, так как потенциально они способны нанести вред Linux-системе. К примеру, запущенный в префиксе вирус-шифровальщик может зашифровать не только префикс, но и выйти за его пределы, зашифровав все каталоги и файлы, принадлежащие Linux-пользователю.
- На момент 2020 года значительная часть античитов (BattlEye, Easy Anti-Cheat и прочие) отказывается работать в префиксе Wine. Из-за этого будет недоступен мультиплеер или игра может вовсе не запуститься. К примеру, серия игр Arma. Игры запускаются, но в сетевой игре доступны сервера только без защиты BattlEye.
- Программы в префиксе запускаются с правами пользователя, который их запустил. То есть префикс не предоставляет изоляции от основной системы, поэтому безопасность (доверенность) запускаемых программ крайне важна. Очень желательно ограничить права доступа к префиксам. Рекомендую следующий уровень прав: для владельца разрешение на чтение, запись и выполнение; для его группы запрет всего; всем остальным запрет всего.
Пример применения прав к префиксу:
sudo chmod 700 -R ~/.wine/
-R — применить права рекурсивно для всех каталогов и файлов, включая вложенные.
Такой уровень прав может повлиять на работоспособность некоторых программ внутри префикса, поэтому в случае возникновения проблем с работоспособностью не забыть, что применены ограниченные права.
Конфигурирование Wine через GUI.
Основная масса полезной информации по winecfg описана здесь: https://wiki.winehq.org/Winecfg
Поэтому ниже рассмотрены только некоторые вещи.
Основная масса полезной информации по winecfg описана здесь: https://wiki.winehq.org/Winecfg
Поэтому ниже рассмотрены только некоторые вещи.
Конфигурирование осуществляется для каждого префикса в отдельности. Пример:
WINEPREFIX="/home/$USER/.wine" winecfg
Язык интерфейса конфигуратора можно изменить следующей командой:
WINEPREFIX="/home/$USER/.wine" LANG="en_US.utf8" winecfg
В данном случае русский сменится на английский.
Так же это позволяет cоздать англофицированный префикс, если при создании передать значение en_US.utf8 переменной среды LANG:
WINEARCH=win64 LANG="en_US.utf8" WINEPREFIX="/home/$USER/.wine_new_prefix" winecfg
Таким образом получится англофицированный префикс, в котором каталоги Windows-пользователя будут на английском языке.
Вкладка «Приложения».
Одним из наиболее часто конфигурируемым параметром является выбор того, под какую версию Windows будет мимикрировать префикс. На момент 2020 года по умолчанию выбрана Windows 7. Полный список:
Эта опция особенно полезна для старых программ, которые требуют Windows XP.
Вкладка «Диски».
Здесь можно подключать виртуальные и физические разделы, виртуальные и физические DVD-приводы, сетевые диски и даже дисководы.
В данном случае подключено два виртуальных диска — C: и Z:. Диск C: является системным каталогом префикса, а диск Z: ведёт в корень файловой системы Linux. Второе в основном нежелательно, поэтому рекомендуется удалить этот виртуальный диск, тем самым изолировав префикс от основной системы. «Любопытным» программам будет сложнее выбраться за пределы префикса, что очень хорошо. При этом останется возможность указывать программам пути вне префикса вручную, то есть полная изоляция отсутствует.
Примечание: В виду неполной изоляции префиксов, вредоносные программы для Windows потенциально способны нанести вред Linux-системе.
Добавить виртуальный DVD-привод можно так:
То есть нажать кнопку «Добавить…», выбрать букву тома (в данном примере D:) и подтвердить. Далее в строке «Тип» выбрать CD-ROM. Останется указать путь до желаемого для монтирования образа DVD.
По аналогии можно добавить физический DVD-привод, выбрав его в строке «Устройство».
Вкладка «Вид и интеграция».
В этой вкладке основным является возможность выбора ассоциации стандартных каталогов Windows-пользователя, с домашними каталогами Linux-пользователя. Эта возможность располагается в блоке «Папки», он находится в нижней половине окна. Там показано то, какие каталоги Linux-пользователя соотносятся с каталогами Windows-пользователя в префиксе.
Стандартные каталоги Windows-пользователя располагаются в префиксе по следующему пути:
/home/$USER/.wine/drive_c/users/$USER/
Выглядит это так:
На снимке видно, что часть каталогов представлены символическими ссылками. Они указывают на домашние каталоги Linux-пользователя, который создал префикс. Это означает, что Windows-программы, запущенные в префиксе, будут использовать каталоги Linux-пользователя. К примеру, запущенная Windows-игра создаст каталог с сохранениями в ~/Documents. На мой взгляд, такое поведение нежелательно.
Можно легко изменить это ассоциирование, указав другие каталоги или вовсе убрав все ассоциации, что изолирует префикс от домашних каталогов пользователя (но не даёт полной изоляции). Для этого необходимо снять галку в блоке «Типы MIME» у пункта «Управлять ассоциациями файлов». Далее в блоке «Папки» появится возможность выбирать пункты и указывать им желаемые пути.
Если убрать галку у пункта «Привязать к», то связь удалится и будет использоваться соответствующий каталог внутри префикса, то есть стандартный каталог Windows-пользователя: «./drive_c/users/$USER/Мои документы«, «./drive_c/users/$USER/Мои рисунки» и так далее. На иллюстрации ниже хорошо видно, что теперь для Windows-пользователя используются обычные каталоги, а не символические ссылки на каталоги Linux-пользователя.
Примечание: При удалении файлов из префикса они помещаются в «Корзину» Linux-пользователя.
winefile. Файловый менеджер Wine.
В некоторой степени является аналогом проводника Windows (explorer). Команда запуска:
WINEPREFIX="/home/$USER/.wine_new" wine winefile
Функционал схож с файловыми менеджерами в дистрибутивах Linux: Dolphin, Thunar и прочих. Можно создавать каталоги, запускать исполняемые файлы, подключать сетевые диски и так далее. На иллюстрации изображён случай без «изоляции» префикса, поэтому виден корневой каталог Linux (диск Z:). «Корзина» для префикса является «Корзиной» Linux-пользователя.
Далее по статье рассматривается установка программ из установочных Windows-файлов (exe, msi). Установку из этих файлов можно осуществить через файловый менеджер Wine, но в данном случае будет рассмотрен только вариант установки с использованием терминала.
Wine. Установка и запуск программ.
В обычном случае алгоритм установки программ следующий:
- Ищем запись о желаемой программе в базе Wine AppDB: https://appdb.winehq.org/
- Изучаем истории успешного запуска (или их отсутствие).
- Подготавливаем префикс по описанию. В зависимости от капризности программы, может потребоваться изменить версию Windows и установить те или иные пакеты расширений (С++ redistributable, .NET Framework, DirectX, Microsoft Media Foundation и прочие).
- Устанавливаем программу.
Примечание: Не рекомендуется запускать программы из разделов с файловой системой NTFS, так как могут быть проблемы с правами на запуск и в целом это менее безопасно.
Пример установки клиента Steam.
Находим информацию о нём в базе Wine AppDB: https://appdb.winehq.org/objectManager.php?sClass=version&iId=19444
Разворачиваем свиток «Test Results». В верхней половине будет отображён крайний отчёт пользователя, в котором он описывает свою историю запуска программы. Блок в нижней половине содержит в себе ссылки на отчёты других людей. Красной рамкой отмечена колонка, где можно переключать их.
Скачиваем клиент SteamSetup.exe.
Производим установку в конкретный ранее созданный префикс:
WINEPREFIX="/home/$USER/.wine" wine "/home/$USER/Downloads/SteamSetup.exe"
Разбор команды:
wine «/home/$USER/Downloads/SteamSetup.exe« — запускаем посредством /opt/wine-staging/bin/wine исполняемый файл SteamSetup.exe, который расположен в пользовательском каталоге Downloads. Запускать исполняемые файлы можно из любого каталога Linux-пользователя, но потребуется указывать абсолютный путь.
После запуска SteamSetup.exe появится окно типичного мастера установки Windows:
В правой части иллюстрации видно, что программа устанавливается в указанный префикс, считая его ОС Windows.
Wine умеет преобразовывать создание ярлыков рабочего стола для Windows в ярлыки для рабочего стола и меню Linux. Тем самым можно будет запускать с ярлыка установленную в префикс Windows-программу. Файл ярлыка будет храниться здесь:
~/.local/share/applications/wine/
Набор иконок здесь:
~/.local/share/icons/hicolor/
Пример запуска программы напрямую из конкретного префикса:
WINEPREFIX="/home/$USER/.wine" wine "/home/$USER/.wine/drive_c/Program Files (x86)/Steam/Steam.exe"
Примечание: Для той части пути, которая внути префикса, регистр не имеет значения.
Альтернативный вариант запуска:
WINEPREFIX="/home/$USER/.wine" wine "C:/Program Files (x86)/Steam/Steam.exe"
Wine позволяет сократить путь до относительно префикса, имитируя путь в ОС Windows. Причём, как видно в примере, Wine поддерживает косую черту «/», не смотря на то, что в путях в Windows допустима только обратная косая черта «\».
Wine. Установка программы из .msi установочника.
О пакетах msi можно почитать здесь: https://ru.wikipedia.org/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D1%89%D0%B8%D0%BA_Windows
Установка msi-пакетов в префикс несколько отличается от установочника в виде .exe. Пример установки EpicInstaller-10.15.2-unrealtournament.msi:
WINEPREFIX="/home/$USER/.wine" wine msiexec /i "/home/$USER/.wine/drive_c/EpicInstaller-10.15.2-unrealtournament.msi"
Альтернативный вариант:
WINEPREFIX="/home/$USER/.wine" wine start /unix "/home/$USER/.wine/drive_c/EpicInstaller-10.15.2-unrealtournament.msi"
Wine. Запуск bat-файлов («батников»).
Их запуск отличается от запуска exe-файлов. Пример запуска script.bat:
WINEPREFIX="/home/$USER/.wine" wine start /unix "/home/$USER/.wine/drive_c/script.bat"
Wine. Удаление установленной Windows-программы.
Это можно сделать несколькими способами.
Удаление через Wine-программу uninstaller («Установка/удаление программ»):
WINEPREFIX="/home/$USER/.wine" wine uninstaller
В списке выбрать программу, которую нужно удалить, и нажать кнопку «Изменить/Удалить». Запустится мастер установки-удаления программы.
Удаление конкретной программы без использования GUI:
WINEPREFIX="/home/$USER/.wine" wine uninstaller --remove название_программы
Пример удаления программы Steam:
WINEPREFIX="/home/$USER/.wine" wine uninstaller --remove steam
Регистр имени программы не имеет значения.
Можно удалить напрямую через специальную программу для удаления, которая входит в комплект установленной программы:
WINEPREFIX="/home/$USER/.wine" wine "/home/$USER/.wine/drive_c/Program Files (x86)/Steam/uninstall.exe"
Альтернативный вариант через GUI. Метод тот же: удаление через программу «Установка/удаление программ», но через запуск из «Панели управления Wine». Для начала потребуется запустить «Панель управления Wine»:
WINEPREFIX="/home/$USER/.wine" wine control
Альтернативный способ запуска напрямую:
WINEPREFIX="/home/$USER/.wine" wine "/home/$USER/.wine/drive_c/windows/system32/control.exe"
В появившемся окне через ярлык запустить программу «Установка/удаление программ»:
Радикальным вариантом является удаление префикса целиком. Недостатком этого метода является то, что от программы останутся ярлыки и иконки. Придётся найти и зачистить их вручную.
~/.local/share/applications/wine/
~/.local/share/icons/hicolor/
Winetricks. Основы.
Руководство по использованию: https://wiki.winehq.org/Winetricks
winetricks — конфигурационный shell-скрипт, позволяющий быстро и просто настроить различные параметры Wine через терминал и установить Windows-библиотеки и компоненты, указав соответствующие имена пакетов. Тем самым winetricks в основном дублирует функционал winecfg, но имеет дополнительные полезные возможности.
Официальный репозиторий: https://github.com/Winetricks/winetricks
Тело скрипта (крайняя версия): https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
Скачивание из официального репозитория в ~/.local/bin/:
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -P ~/.local/bin/
Почему именно в ~/.local/bin/? Это каталог для скриптов и исполняемых файлов пользователя. Размещение скрипта в этом каталоге позволит запускать winetricks через терминал для любого префикса без указания абсолютного пути до winetricks.
Если до этого в каталоге не было никаких исполняемых файлов, то потребуется перезапустить сеанс или скрипт профиля пользователя:
source ~/.profile
После чего winetricks можно будет запускать через терминал, но перед этим потребуется разрешить его выполнение.
Рекомендую назначить такой уровень прав:
sudo chmod 700 ~/.local/bin/winetricks
Активный пользователь получит право на чтение, запись и запуск, его группа — всё запрещено, остальным — всё запрещено.
Вывести номер версии winetricks:
winetricks --version
Справка о winetricks:
winetricks --help
winetricks может самообновляться по команде:
winetricks --self-update
При этом будет сохранена резервная копия предыдущей версии.
Откатиться на предыдущую версию:
winetricks --update-rollback
Многие манипуляция с winetricks можно произвести в графическом режиме. Запуск winetricks в графическом режиме для конкретного префикса:
WINEPREFIX="/home/$USER/.wine" winetricks
Не смотря на видимую удобность, графическим режим имеет ряд нюансов. Немало опций являются устаревшими и рудиментарными, а наиболее часто используемые опции скрываются в меню, которое, как ни странно, появляется после выбора пункта «Выберите путь для wine по умолчанию»:
В этом меню ключевыми являются две опции: «Установить библиотеку DLL или компонент Windows» и «Установить шрифт».
Опция «Установить библиотеку DLL или компонент Windows».
Здесь перечислены все библиотеки и компоненты, которые winetricks может скачать и инициализировать установку. Например, можно установить в префикс DirectX или отдельные его библиотеки. Не всё из представленного актуально и работоспособно, поэтому нужно действовать внимательно. Стоит отметить, что в рекомендациях на https://appdb.winehq.org/ попадаются советы с перечислением целой вереницы пакетов к установке, тут нужно учитывать, что люди нередко предлагают устанавливать всякую всячину для «подстаховки», поэтому так лучше не делать и постараться установить только действительно необходимые пакеты.
Скачивание производится с сайтов поставщиков (преимущественно Microsoft), так как лицензия многих библиотек и компонентов для ОС Windows не позволяет помещать их в общественные репозитории. Без winetricks пришлось бы самостоятельно перейти на сайт поставщика, найти в его дебрях нужный пакет, найти кнопку скачать (нередко, эта задача то ещё приключение) и наконец заполучить заветный установщик. Таковы реалии Windows на момент 2020 года.
Так же winetircks предоставляет возможность установить библиотеки или компонент напрямую через терминал:
WINEPREFIX="/home/$USER/.wine" winetricks "название_пакета"
Пример установки Microsoft Media Foundation, который часто необходим для работоспособности видеороликов в играх на Unreal Engine 4:
WINEPREFIX="/home/$USER/.wine" winetricks mf
В этой простой операции есть нюанс. Для установки ряда пакетов потребуется распаковщик cab-архивов, которые довольно широко применяются в Windows:
sudo apt install cabextract
После этого установка Microsoft Media Foundation пройдёт успешно:
Можно установить несколько пакетов в одну команду:
WINEPREFIX="/home/$USER/.wine" winetricks d3dx9 vcrun2008 vcrun2010 vcrun2012 vcrun2013 vcrun2015
winetricks позволяет вывести список всех доступных для загрузки библиотек через терминал, что избавляет от необходимости искать в графическом интерфейсе:
winetricks dlls list
На иллюстрации видно, что в выводе присутствует описание пакетов. Это позволяет воспользоваться grep, чтобы показать только искомое, если известна часть его описания:
winetricks dlls list | grep -i "c++"
Опция «Установить шрифт».
Эта возможность требуется довольно часто. В префиксе не может быть шрифтов, которые защищены лицензией, но немало программ, которые требуют такие шрифты. К примеру, Arial и Times New Roman. Когда программа не находит в префиксе нужный шрифт и при этом не умеет использовать имеющиеся, то в ней попросту не будет отображаться текст. К примеру, это актуально для Epic Games Launcher.
Чаще всего требуется пакет шрифтов corefonts, в том числе для упомянутого Epic Games Launcher. В этот пакет как раз входят шрифты Arial, Courier и Times. Через терминал установка выглядит так:
WINEPREFIX="/home/$USER/.wine/" winetricks corefonts
В префиксе шрифты хранятся по следующему пути:
/home/$USER/.wine/drive_c/windows/Fonts/
В этот каталог можно вручную помещать шрифты в формате .ttf.
Куда winetricks скачивает пакеты перед их установкой?
Все скачанные с помощью winetricks пакеты складируются здесь:
~/.cache/winetricks/
Можно вывести весь список пакетов, которые находятся в кэше:
winetricks list-cached
Winetricks. Настройка префикса.
Вывести список настроек префикса:
winetricks settings list
Тоже самое в графическом режиме:
Из приведённого списка очевидно, что winecfg, который был рассмотрен ранее, предоставляет существенно более скромные возможности конфигурирования. Впрочем, многое из доступных опций не стоит трогать. Ниже рассмотрены часто применяемые и просто полезные.
Так как с графическим режимом всё понятно, далее речь пойдёт о настройке опций через терминал.
Переключить версию Windows:
WINEPREFIX="/home/$USER/.wine" winetricks win7
По аналогии: winxp, win8, win10
Через winetricks намного удобнее и проще осуществить «изоляцию» префикса, которая рассмотрена в первой половине статьи. Основной её целью является убрать прямой доступ из префикса к домашнему каталогу Linux-пользователя и к корню системы (диск Z:). Это осуществляется следующей командой:
WINEPREFIX="/home/$USER/.wine" winetricks sandbox
Это уберёт ассоциацию каталогов Windows-пользователя с домашними каталогами Linux-пользователя, а также удалит диск Z: (путь до корня Linux из префикса). Тем самым использование программ из такого «изолированного» префикса будет несколько более безопасным. При этом рабочие файлы Windows-программ будут сохраняться внутри префикса в соответствующих каталогах Windows-пользователя.
Углубление в функционал Wine.
wineserver.
Это специальный демон (служба, сервис), который выполняет роль ядра ОС Windows. Для каждого префикса запускается свой демон, что позволяет одновременно выполнять несколько программ из разных префиксов.
Справка:
man wineserver
Порой программа может зависнуть намертво, здесь поможет жёсткий перезапуск wineserver. Эффект схож с нажатием кнопки Reset. В этом случае произойдёт жёсткая перезагрузка префикса (Windows), но не основной системы (Linux). Команда выглядит так:
WINEPREFIX="/home/$USER/.wine" wineserver -k
wineboot.
Это программа, которая выполняет инициализацию, запуск и перезагрузку префикса. Так же она выполняет симуляцию завершения работы и перезапуска для программ, запущенных в префиксе.
Справка:
man wineboot
Мягкая перезагрузка префикса. Это полезно для программ, которые требуют перезагрузки ОС Windows после своей установки:
WINEPREFIX="/home/$USER/.wine" wineboot -r
Создание префикса через wineboot:
WINEPREFIX="/home/$USER/.wine-new-prefix" wineboot -i
-i — инициализировать префикс.
Альтернативный вариант:
WINEPREFIX="/home/$USER/.wine-new-prefix" wineboot -u
-u — обновить конфигурацию префикс.
taskmgr — «Диспетчер задач».
Программа «Диспетчер задач» является аналогом системного монитора (gnome system monitor и подобных):
WINEPREFIX="/home/$USER/.wine" wine taskmgr
Реестр Windows и его редактирование в Wine.
Файлы реестра system.reg, user.reg и userdef.reg создаются после конфигурирования префикса. Пример пути расположения:
/home/$USER/.wine/
Их можно редактировать любым текстовым редактором.
- system.reg содержит ветвь HKEY_LOCAL_MACHINE.
- user.reg — HKEY_CURRENT_USER.
- userdef.reg — HKEY_HKEY_USERS\.Default (содержит настройки Windows-пользователя по умолчанию).
Для более удобной работы с реестром в Wine реализован аналог редактора реестра Windows — regedit. Для его запуска нужно выполнить:
WINEPREFIX="/home/$USER/.wine" regedit
Альтернативный вариант:
WINEPREFIX="/home/$USER/.wine" wine /home/$USER/.wine/drive_c/windows/regedit.exe
Примечание: Импорт рееста (куста) непосредственно из ОС Windows сломает префикс Wine.
Настройки, которыми можно управлять через winecfg и winetricks, сохраняются в реестр, а именно в HKEY_CURRENT_USER\Software\Wine:
Подробно об этом рассказывается здесь: https://wiki.winehq.org/Useful_Registry_Keys
Виртуальный рабочий стол в Wine.
Имитирует рабочий стол Windows. Обычно используется для программ, которые плохо сворачиваются (Alt + Tab) или сбивают разрешение экрана для Linux. Причём сбивают так, что приходится выполнять команду xrandr -s 0
для восстановления исходного разрешения экрана. При использовании виртуального рабочего стола Wine после завершения программы разрешение экрана восстанавливается автоматически.
Рабочий стол можно включить через winecfg:
На иллюстрации выше в отмеченном поле можно настроить разрешение вирутального рабочего стола. Можно установить такое же разрешение, как в Linux или такое, какое максимально поддерживает запускаемая программа. К примеру, игра Diablo 2 поддерживает разрешение максимум 800×600, поэтому для виртуального рабочего стола такое разрешение будет оптимальным.
Виртуальный рабочий стол запустится после повторного запуска winecfg или любой другой программы в префиксе. При этом запущенная программа будет размещена в рамках виртуального рабочего стола:
Как можно было заметить на иллюстрации, виртуальный рабочий стол поддерживает ярлыки для программ, установленных в префикс.
Виртуальный рабочий стол можно запустить принудительно для программы в конкретном префиксе без настраивания через winecfg:
WINEPREFIX="/home/$USER/.wine" explorer /desktop="name_desktop",1920x1080 regedit
Разбор команды:
explorer — Wine-реализация проводника (файлового менеджера) Windows.
/desktop=»name_desktop»,1920×1080 regedit — создать рабочий стол с именем name_desktop и разрешением 1920×1080; запустить программу regedit — Wine-реализация программы редактирования реестра Windows.
Примечание: Можно запускать несколько виртуальных рабочих столов одновременно, но нужно дать им разные имена.
Так же вирутальным рабочим столом можно управлять через winetricks без использования winecfg.
Включение использования виртуального рабочего стола:
winetricks vd=1920x1080
Отключение:
winetricks vd=off
Если разрешение экрана всё-таки не восстановилось после завершения работы Windows-программы, то это исправит следующая команда:
xrandr -s 0
wineconsole.
Программа для работы с командной строкой в рамках префикса. Полезна для запуска программ и bat-скриптов так, как это было бы через интерпретатор командной строки Windows (cmd.exe), а так же для отладки.
Справка:
man wineconsole
Запуск командной строки Windows (cmd.exe) через wineconsole:
WINEPREFIX="/home/$USER/.wine" wineconsole cmd
Отладка.
Официальная документация:
https://wiki.winehq.org/Wine-Staging_Debug
https://wiki.winehq.org/Debug_Channels
Отключить показ диалога падения программы в Wine:
WINEPREFIX="/home/$USER/.wine" winetricks nocrashdialog
Ниже приведённые команды полезны для локализации проблем в работе программы. К примеру, по характерному выводу можно определить какой Windows-библиотеки не хватает для успешного запуска программы. Так же команды отладки необходимы для составления отчётов об ошибках, чтобы разработчики Wine знали о проблемах с той или иной программой.
Вывести ход выполнения программы game.exe в файл wine-log.txt, который будет сохранён в ~/:
WINEPREFIX="/home/$USER/.wine" wine "C:/games/my_game/game.exe" &> wine-log.txt
Вывести в файл wine-log.txt только ошибки и предупреждения в ходе выполнения программы:
WINEDEBUG=-all,+err,+warn WINEPREFIX="/home/$USER/.wine" wine "C:/games/my_game/game.exe" &> wine-log.txt
Вывести в файл wine-setup-log.txt ход установки программы из установочного файла setup.exe:
WINEDEBUG=+text,+file,+reg,+relay WINEPREFIX="/home/$USER/.wine" wine "C:/setup.exe" &> wine-setup-log.txt
Вывести в файл wine-dll-log.txt список Windows-библиотек (dll), используемых в процессе запуска программы:
WINEDEBUG=+loaddll WINEPREFIX="/home/$USER/.wine" wine notepad &> wine-dll-log.txt
builtin — встроенная библиотека Wine, то есть созданная разработчиками Wine.
native — «родная» библиотека Windows.
Практика.
Нюансы запуска S.T.A.L.K.E.R. на Linux — пример варианта указания рабочего каталога вручную.
Запуск CRYENGINE 5 на Linux.
Решение проблемы «Bad serial given in setup» в Arma через редактирование реестра в префиксе.
Монтирование виртуального CD-ROM для Wine.
Использование Wine и Proton для запуска игры и сервера Conan Exiles.
Запуск Epic Games Launcher посредством Wine.
Установка русификатора для игры из Steam.
В виду того, что Proton (Steam Play) представляет собой модифицированный Wine, они хорошо совместимы между собой. Поэтому для Proton-префикса можно использовать стандартные инструменты Wine. В примере будет рассмотрена установка русификатора для Borderlands GOTY Enhanced. С нюансами подготовки игры к запуску можно ознакомиться здесь: https://www.protondb.com/app/729040
Игра по умолчанию будет установлена сюда:
/home/$USER/.local/share/Steam/steamapps/common/BorderlandsGOTYEnhanced/
Чтобы префикс игры создался, её необходимо запустить и выключить. По умолчанию префикс будет располагаться здесь:
/home/$USER/.local/share/Steam/steamapps/compatdata/729040/pfx/
То есть игра находится вне префикса. В этом особенность Proton.
Для начала установки, необходимо запустить установочный файл русификатора — Borderlands_TTL.exe.
WINEPREFIX="/home/$USER/.local/share/Steam/steamapps/compatdata/729040/pfx" wine "/home/$USER/Downloads/Borderlands_TTL.exe"
Wine может предложить установить Mono и Gecko — отказываемся, для префикса игры это ни к чему.
Должно появиться окно мастера установки:
Мастер сообщит, что не может найти игру:
Это не удивительно, так как игра находится вне префикса. Здесь есть два варианта решения:
- Создать в префиксе символическую ссылку на каталог игры, тогда мастер сможет обнаружить игру и продожить установку. То есть создать символическую ссылку с именем BorderlandsGOTYEnhanced по пути /home/$USER/.local/share/Steam/steamapps/compatdata/729040/pfx/drive_c/Program Files/, которая будет ссылаться на каталог с установленной игрой /home/$USER/.local/share/Steam/steamapps/common/BorderlandsGOTYEnhanced/.
- Указать русификатору абсолютный путь до каталога игры. На иллюстрации виден тот самый «диск Z:», который является символической ссылкой на корневой каталог Linux. Через него можно указать желаемый катлог Linux-пользователя.
После завершения установки игра будет русифицирована.
Чуть-чуть хитростей.
Каждый раз прописывать путь до префикса и программы может быть довольно утомительно. Есть несколько способов это упростить.
- Для упрощения запуска программы из префикса рекомендую использовать shell-скрипт (sh) с командой на запуск. Cкрипт оптимально разместить в ~/.local/bin/, что позволит осуществлять запуск через терминал по имени скрипта без указания абсолютного пути до него.
- На скрипт можно создать кнопку для меню запуска и разместить её на рабочей панели.
- Ещё одним вариантом является использование символических ссылок. Если префикс находится на другом разделе, то для него можно создать символическую ссылку и разместить её в домашнем каталоге пользователя, что позволит сократить путь в команде. К примеру, префикс находится в /mnt/my_second_hdd/games/wine-prefix, можно создать символическую ссылку и разместить её в /home/$USER/. Пример команды работы с префиксом через символическую ссылку:
WINEPREFIX="/home/$USER/wine-prefix" winecfg
Почта для предложений и замечаний: feedback@noostyche.ru