Префикс Wine (он же бутылка вина) — это специальная папка, в которую Wine помещает все файлы, относящиеся к Wine, установленные программы Windows, библиотеки и код реестра, а также настройки пользователя.
Обычно у пользователя есть только один префикс Wine. Этот префикс — папка ~ / .wine. Как правило, он настроен на работу в режиме Windows XP (или более поздних версиях Windows), и часто пользователи Linux никогда не возятся с этой папкой и не изменяют ее каким-либо образом из-за зрелости и надежности инструмента Wine.
Хотя среднестатистический пользователь Linux может обойтись простым префиксом Wine по умолчанию, очень выгодно создать несколько префиксов, поскольку они могут быть настроены для работы с конкретными версиями Windows и содержат различные типы программного обеспечения, которые не работают с префиксом по умолчанию. папка и т. д.
Примечание: для следования этому руководству требуется Wine. Прежде чем продолжить, следуйте нашему руководству по установке программного обеспечения Wine в Linux.
Создать 32-битный префикс Wine
Для правильной работы некоторых программ Windows в Wine необходим 32-битный префикс. К сожалению, система Wine по умолчанию не устанавливает это по умолчанию, когда пользователь запускает Wine в первый раз.
Создание нового 32-битного префикса Wine начинается с запуска окна терминала нажатием Ctrl + Alt + T или Ctrl + Shift + T. Затем используйте команду WINEPREFIX в окне терминала, а затем укажите место, где вы хотите сохранить новый префикс.
Примечание: не забудьте изменить имя пользователя в приведенной ниже команде на имя пользователя вашего ПК с Linux.
Winearch=win32 WINEPREFIX="/home/username/.newprefix32/" winecfg
При запуске указанной выше команды в домашней папке текущего пользователя (~) будет создана новая папка с меткой «.newprefix32». Если вам не нравится это имя, вы можете изменить имя каталога перед его запуском.
Когда команда WINEPREFIX завершит выполнение, вы можете увидеть несколько подсказок графического интерфейса. В этих подсказках вам будет предложено установить вещи для запуска программного обеспечения. Следуйте подсказкам графического интерфейса и убедитесь, что все установлено.
После того, как Wine позаботится об инструментах, которые необходимо установить, откроется инструмент WineCFG. Используйте этот инструмент, чтобы настроить новый префикс Wine и установить такие вещи, как версия Windows, графика и т. Д.
Создать 64-битный префикс Wine
По умолчанию, когда вы запускаете программное обеспечение Wine (в 64-битной операционной системе Linux) в первый раз, оно создает стандартный 64-битный префикс Wine в ~ / .wine в домашнем каталоге (~).
Обычно использование 64-битной папки префикса ~ / .wine по умолчанию подходит для большинства пользователей. Однако, если вы используете специализированное программное обеспечение, требующее множества настроек, все же неплохо научиться создавать отдельные 64-битные префиксы Wine.
Чтобы создать новый 64-битный префикс Wine, запустите окно терминала и используйте команду WINEPREFIX, как в 32-битном примере. Однако на этот раз не используйте Winearch, так как его не нужно настраивать.
Примечание: не забудьте изменить имя пользователя в приведенной ниже команде на имя пользователя на вашем ПК с Linux.
WINEPREFIX="/home/username/.newprefix/" winecfg
В приведенном выше примере команды мы устанавливаем новый 64-битный префикс Wine в папке с надписью «newprefix». Это имя предназначено только для демонстрационных целей. Если вам не нравится это имя, не стесняйтесь заменить его другим именем, которое больше подходит для вашего варианта использования.
После ввода приведенной выше команды WINEPREFIX инструмент Wine создаст новую папку префиксов в домашнем каталоге (~) вашего текущего пользователя. Во время этого процесса создания вы можете увидеть всплывающие окна графического интерфейса. Следуйте подсказкам графического интерфейса и делайте то, что они говорят, чтобы убедиться, что все настроено правильно.
Как только подсказки графического интерфейса будут обработаны, появится окно WineCFG. Используйте это окно для настройки нового 64-битного префикса Wine, изменения версий Windows, настроек графики и т. Д.
Вы использовали префикс Wine и хотите от него избавиться? Вот что надо делать. Сначала откройте окно терминала, нажав Ctrl + Alt + T или Ctrl + Shift + T. Затем используйте команду ls с переключателем командной строки «a», чтобы открыть все файлы и папки в вашем домашнем каталоге.
ls -a
Просмотрите список файлов и найдите имя вашей папки с префиксом Wine. Затем используйте команду rm с переключателем командной строки «rf», чтобы удалить папку префиксов.
rm -rf ~/.newprefix/
Или же:
rm -rf ~/.newprefix32/
Вам нужно избавиться от нескольких папок с префиксами одновременно? Используйте скобки при использовании команды rm. Например, чтобы удалить две папки с префиксом, вы должны:
rm -rf ~/{.newprefix,.newprefix32}
Для четырех папок попробуйте:
rm -rf ~/{.newprefix1,.newprefix2,.newprefix3,newprefix4}
Нет ограничений на количество префиксов, которые можно удалить одновременно с помощью команды rm, перечислите имена папок в скобках, за которыми следует «», и все заработает.
Общие вопросы
wineserver
— служба, выполняющая роль ядра ОС Windows. Для каждого префикса запускается своя служба, что позволяет одновременно выполнять несколько программ из разных префиксов. Рекомендуется использовать данную команду с ключом-k
, если префикс перестал функционировать;wineboot
— служба, выполняющая инициализацию, запуск и перезагрузку префикса. Так же она выполняет симуляцию завершения работы и перезапуска для программ, запущенных в префиксе;regedit
— аналог редактора реестра Windows. Настройки, которыми можно управлять черезwinecfg
иwinetricks
, сохраняются в ветку реестраHKEY_CURRENT_USERSoftwareWine
;winecfg
— программа для настройки префикса. Наиболее часто используемые вкладки:- Приложения — выбор того, под какую версию Windows будет изменяться префикс. На данный момент по умолчанию выбрана Windows 7;
- Диски — подключение виртуальных и физических разделов, DVD-приводов, сетевых дисков. При создании префикса по умолчанию подключено два виртуальных диска — C: и Z:. Диск C: является системным каталогом префикса, а диск Z: ведет в корень файловой системы Linux.
Как может быть установлен Wine в Astra Linux
Wine в Astra Linux может быть установлен:
-
при использовании Astra Linux Special Edition 1.7 — из расширенного репозитория (см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования и Интернет-репозитории Astra Linux Special Edition x.7).
Wine, доступный в расширенном репозитории Astra Linux Special Edition 1.7, поддерживает только 64-разрядную архитектуру.
- из сторонних репозиториев (например, репозиториев Debian — см. Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов);
- из загруженных файлов пакетов .deb:
- для запуска Internet Explorer в Astra Linux Special Edition 1.7 — Wine версии 7.0.1, поддерживающий 32-разрядную архитектуру, который можно скачать по ссылке: wine_7.0.1-0-astra-se17_lsb_amd64.deb;
Из подключенных репозиториев Wine может быть установлен штатным менеджером пакетов (см. Графический менеджер пакетов synaptic) или командой apt:
sudo apt install wine
Для установки из файла с пакетом .deb:
sudo apt install ./<имя_файла>
Где располагаются файлы Wine?
Получить полный список файлов установленного пакета можно командой:
dpkg -L <имя_пакета>
Отдельно следует отметить служебные каталоги:
- Для Wine 7.0.x, установленного из репозитория Astra Linux Special Edition 1.7 или из deb-пакета используется каталог
/usr/share/wine
. Исполняемые файлы располагаются в каталоге/usr/bin/;
- Для Wine, установленного из сторонних источников, используется каталог
/opt/<установленная_версия_wine> (библиотеки)
Исполняемые файлы располагаются в каталоге/opt/<установленная_версия_wine>/bin/
. Таким образом, каждая версия устанавливается в отдельный каталог, что позволяет установить одновременно несколько версий.
Пользовательские файлы Wine располагаются в пользовательских каталогах в так называемых префиксах — см. Что такое префикс? Что располагается в префиксе?.
Что такое префикс? Что располагается в префиксе? Как указать префикс?
Префиксы — подкаталоги в домашнем каталоге пользователя. В префиксы Wine помещает все файлы, относящиеся к приложениям Windows, установленным пользователем: ПО Windows, библиотеки, реестр. В том числе:
dosdevices
— каталог, в котором перечислены виртуальные диски. В Windows разделы блочных устройств представлены в виде абстрактных дисков (томов), каждый из которых обозначается буквой. К примеру, системный диск по умолчанию называется «C:»;drive_c
— виртуальный диск C:, на котором располагаются компоненты Windows;update-timestamp
— метка времени;system.reg
,user.reg
иuserdef.reg
— файлы реестра Windows, которые являются централизованным древовидным хранилищем настроек Windows-программ;winetricks.log
— файл, содержащий список команд использованных при настройке префикса черезwinetricks
.
Префикс общего назначения имеет название .wine
. Для некоторых приложений могут создаваться свои префиксы, например для Internet Explorer — .wine-IE8
. Используемый по умолчанию префикс можно задать в переменной окружения WINEPREFIX:
export WINEPREFIX=~/.wine
Префикс также можно указать при запуске программы, переопределив переменную окружения. Например, для запуска Internet Explorer в префиксе .wine-IE8
:
WINEPREFIX=~/.wine-IE8 /opt/wine-7.13/bin/wine ~/.wine-IE8/drive_c/Program Files/Internet Explorer/iexplore.exe
Указание префиксов и архитектур через переменные окружения
Как указано в предыдущем разделе, префикс может быть задан значением переменной окружения WINEPREFIX. Аналогично могут использоваться следующие переменные окружения:
-
WINE — путь к исполняемому файлу
wine
. Например:export WINE=/opt/wine-7.13/bin/wine
-
WINEARCH — используемая архитектура префикса. Допустимые значения: win32 и win64. Например:
export WINEARCH=win32
Значения переменных окружения, заданные с помощью команды export, сохраняются до выхода из пользовательской сессии и применяются глобально ко всем командам. По необходимости для отдельных команд можно переопределить значения переменных. Например, если одновременно используются Internet Explorer и iexplore, имеющие разные префиксы и архитектуры, то команды для их запуска могут быть такими:
-
Internet Explorer (префикс — wine-IE8, архитектура — win32):
WINEPREFIX=~/.wine-IE8 WINEARCH=win32 $WINE ~/.wine-IE8/drive_c/Program Files/Internet Explorer/iexplore.exe
-
iexplore (префикс — wine, архитектура — win64):
WINEPREFIX=~/.wine WINEARCH=win64 $WINE iexplore
Для того, чтобы удалить ранее заданную переменную окружения, можно использовать команду unset:
unset WINEARCH
Виды сборок и актуальные версии Wine для ОС Astra Linux
Вид сборки | Описание | Актуальная версия |
---|---|---|
stable |
Стабильная ветка | 4.0 и 7.0.x |
devel |
Разрабатываемая сборка | 7.13 |
staging |
Экспериментальная ветка. Содержит набор нестабильных исправлений и функциональных возможностей. Не рекомендуется для использования без конкретных целей. | 7.13 |
cpro |
Разрабатываемая сборка с поддержкой КриптоПРО | 7.0 |
специализированные сборки под конкретное программное изделие | Например, T-Flex CAD, Справки БК, InnovaSystem LIS |
Запуск файлов в Wine в форматах .exe, .msi, .msp, .bat, .application
Wine, доступный в расширенном репозитории Astra Linux Special Edition 1.7, поддерживает только 64-разрядную архитектуру.
-
.exe:
wine <имя_файла>.exe
-
.msi:
wine msiexec /i <имя_файла>.msi
-
.msp:
wine msiexec /p <имя_файла>.msp
-
.bat:
wine start <имя_файла>.application
-
.application (для запуска требуется компонент .NET):
winetricks -q dotnet40
wine start <имя_файла>.application
Запуск Wine от имени суперпользователя
Запускать Wine в сессии суперпользователя (root)
или с использованием sudo
ЗАПРЕЩАЕТСЯ. Такой запуск дает приложениям Windows, потенциально содержащим вредоносный код, полный доступ к компьютеру.
Если ранее осуществлялся запуск Wine с использованием sudo
, то необходимо удалить префикс с помощью команды:
sudo rm -fR ~/.wine
Если префикс был создан в сессии суперпользователя (root)
, то удалить префикс необходимо в каталоге /root
.
Gecko и Mono
Mono — проект по созданию полноценного воплощения системы .NET Framework на базе свободного программного обеспечения (ПО). В основе проекта лежат спецификации на С# и CLI, переданные Microsoft в организации по стандартизации. Но Mono — это не просто клон .Net, здесь есть свои собственные технологии и библиотеки, которых нет в MS .NET. Цель Mono — помочь в переносе написанных для Windows .Net-программ под Linux и другие ОС. В связи с отсутствием полной совместимости, использование Mono для запуска приложений Microsoft .NET невозможно.
Gecko — это свободный движок вывода веб-страниц для браузера при работе Wine в сети Интернет. Если в Wine не предполагается использование сети Интернет (в том числе для работы Справочных страниц в ПО), то использование Gecko не требуется.
Порядок установки Mono и Geko описан в статье Установка wine на Astra Linux.
Почему не работает установка/запуск ПО 32-разрядной архитектуры в Wine в Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7)?
Wine, доступный в расширенном репозитории Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), поддерживает только 64-разрядную архитектуру.
Как запустить ПО 32-разрядной архитектуры в Wine в Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7)?
Для запуска 32-разрядных приложений в Astra Linux Special Edition 1.7 требуется:
- Использовать Wine версии 7.0.1, который можно скачать по ссылке: wine_7.0.1-0-astra-se17_lsb_amd64.deb;
- Создать 32-разрядный префикс.
Как создать 32-битный префикс в Wine?
Для создания префикса с 32-разрядной архитектурой выполнить следующие команды:
-
Создать переменную окружения с указанием архитектуры:
export WINEARCH=win32
После задания переменной окружения префиксы, которые будут создаваться в текущем сеансе «Терминала Fly», будут иметь 32-разрядную архитектуру.
-
Выполнить команду для создания префикса:
wineboot
Команду wineboot можно не выполнять, а вместо нее сразу выполнить команду winetricks с установкой необходимых пакетов. Нужный префикс (.wine
) при этом будет создан автоматически.
Internet Explorer и iexplore
Internet Explorer и iexplore — это два разных Web-браузера, которые можно использовать в среде Wine:
- Internet Explorer (IE, IE8) — приложение Microsoft Windows, которое может быть установлено и запущено в 32-битной среде Wine;
- iexplore — приложение Wine, которое устанавливается вместе с Wine работает в 64-битном префиксе;
Как запустить iexplore в Wine
Для запуска iexplore:
- Установить wine (см. Установка wine на Astra Linux) и настроить переменные окружения;
-
Выполнить команду:
$WINE iexplore
Предполагается, что в переменной окружения WINE сохранен путь к исполняемому файлу wine.
Как установить и запустить Internet Explorer (IE) в Wine?
Версии IE выше версии 8 в Wine не работоспособны. Версия 8 (IE8) работает стабильно с Wine версий 7.0.1 и 7.13. Далее рассматривается работа с версий 7.13.
Для установки IE8 требуется:
-
Проверить, включена ли блокировка трассировки ptrace:
sudo astra-ptrace-lock status
и, если блокировка включена (активна), то отключить блокировку:
sudo astra-ptrace-lock disable
и перезагрузить компьютер;
-
Установить пакет cabextract;
sudo apt install cabextract
-
Создать 32-разрядный префикс Wine и установить приложение:
export WINEPREFIX=~/.wine-IE8
export WINEARCH=win32
export WINE=/opt/wine-7.13/bin/wine
winetricks ie8
winetricks -q msxml6 win2kПри выполнении команд будет задан вопрос про необходимость установки компонента Mono. Для использования IE8 этот компонент не требуется, и от его установки можно отказаться.
Запуск IE8 осуществляется командой:
$WINE ~/.wine-IE8/drive_c/Program Files/Internet Explorer/iexplore.exe
Устранение ошибок, возникающих при работе с Wine
Ярлык не работает. Как запускать ПО Wine через рабочий стол?
Когда установщик приложения Windows пытается создать ярлык приложения, Wine вместо ярлыка создает файл file.desktop
. Чтобы откорректировать этот файл откройте Свойства — Ярлык — Команда и приведите команду к следующему виду:
При указании пути, где есть спец. символы (в примере: пробелы, скобки и символы «обратная косая черта» («») в указании пути Windows), такие символы требуется экранировать двумя символами обратная косая черта: «\», при этом сами символы «обратная косая черта» должны быть удвоены. То есть:
- символ пробел представляется как последовательность «\ » (две обратные косые черты и пробел);
- символы скобка представляются как последовательность «\(» или «\)» (две обратные косые черты и скобка);
- символ обратная косая черта представляется как последовательность «\\» (четыре обратные косые черты)
Так, путь «C:Program Files (x86)Name POSl.exe» будет задан в виде:
env WINEPREFIX=»/home/u/.wine-name» wine C:\\Program\ Files\ \(x86\)\\Name\ PO\\Sl.exe
Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5
Для устранения данной ошибки требуется корректно установить пакет ia32-libs
в Astra Linux Special Edition 1.7. Для этого:
-
Удалить ранее установленный пакет
ia32-libs
:sudo apt remove ia32-libs
-
Удалить Wine:
sudo apt remove <установленный_пакет_wine>
-
Установить пакет
ia32-libs
из репозитория:sudo apt install ia32-libs
- Повторно установить Wine (см. Как может быть установлен Wine в Astra Linux).
dpkg: зависимости пакетов не позволяют настроить пакет ia32-libs
Для устранения данной ошибки выполнить действия из предыдущего пункта.
X Error of failed request: GLXBadFBConfig Major opcode of failed reqiest: 151 (GLX)
Данная ошибка может возникнуть у пользователей с видеокартами AMD, NVIDIA, IGPU. Для ее решения настроить параметр MESA_GL_VERSION_OVERRIDE
:
export MESA_GL_VERSION_OVERRIDE=3.3
Чтобы не вводить данный параметр постоянно для запуска ПО, рекомендуется внести его в ярлыки следующей командой:
sed -i ‘s~^Exec=env (.*)~Exec=env «/bin/bash -c env MESA_GL_VERSION_OVERRIDE=»3.3» 1″~’ <имя_файла_с_ярлыком>
libGL error: failed to load driver: swrast X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 151 (GLX)
Данная ошибка может возникнуть у пользователей с видеокартами NVIDIA. Для ее устранения удалить символическую ссылку на библиотеку в разделе /usr/lib32/i386-linux-gnu
:
sudo rm /usr/lib32/i386-linux-gnu/libGL.so.1
Unhandled Exception: System.ComponentModel.Win32Exception: Доступ запрещен
Для устранения данной ошибки отключить блокировку трассировки ptrace
. Отключить блокировку можно двумя способами:
-
В «Терминале Fly» ввести следующую команду:
sudo astra-ptrace-lock disable
-
Открыть Панель управления — Безопасность — Политика безопасности — Настройки безопасности — Системные параметры. Снять отметку Блокировка трассировки ptrace для всех пользователей, включая администраторов.
Для вступления в силу изменения блокировки ptrace требуется перезагрузка системы.
warning: wineserver not found!
Данная ошибка будет возникать у пользователей только при отсутствии пути к Wine. Если Wine установлен в каталоге /opt/<версия_wine>
, то для работы winetricks
следует определить значение локальной переменной wine
:
export WINE=/opt/<версия_wine>/bin/wine
После определения переменной можно работать с «winetricks».
Winetricks
Назначение и установка
Winetricks — сценарий оболочки загружающий недостающие библиотеки (DLL) и шрифты из доверенных источников.
Для корректной работы winetricks
в ОС Astra Linux перед началом установки winetricks
необходимо установить пакеты ca-certificates, cabextract
и libmspack0
.
Для работы с графической оболочкой winetricks
требуется установить пакет zenity
.
Для установки пакетов:
-
Для Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7) с подключенным расширенным репозиторием: Интернет-репозитории Astra Linux Special Edition x.7 и Astra Linux Common Edition 2.12 установить пакеты из репозиториев:
sudo apt install ca-certificates libmspack0 cabextract zenity
-
Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) загрузить с помощью web-браузера пакеты: cabextract и libmspack0. Далее предполагается, что пакеты сохранены в подкаталог «Загрузки» домашнего каталога:
sudo apt install ./libmspack0_*_amd64.deb ./cabextract_*_amd64.deb ca-certificates zenity
Загрузить и установить winetricks
:
Компонент dotnet
Компонент .NET Framework устанавливается для обеспечения взаимодействия .net-программ с другими компонентами ОС.Взаимодействие обеспечивается через обмен запросами, независимо от того, на каком языке программирования были созданы данные программы.
Используя winetricks, можно установить для архитектур amd32, amd64 компонент dotnet
, который будет взаимодействовать с программами, использующие данный фреймворк.
Для установки dotnet
выполнить:
winetricks -q dotnet48
Список доступных dotnet
для установки:
winetricks list-all| grep dotnet
Компонент vcrun
Библиотеки, позволяющие запускать программы, в разработке которых была использована среда Microsoft Visual C++, известная так же как MSVC.
Используя winetricks, можно установить для архитектур amd32, amd64 компонент vcrun
, который будет взаимодействовать с программами, использующими данные библиотеки.
Для установки vcrun
выполнить команду:
winetricks -q vcrun2019
Для получения списка доступных vcrun
для установки выполнить команду:
winetricks list-all| grep vcrun
Компонент mdac
Mdac — совокупность технологий компании Microsoft, позволяющих получить унифицированный способ доступа к данным различных реляционных и не реляционных баз данных.
Используя winetricks, можно установить для архитектуры amd32 компонент mdac
, который будет взаимодействовать с программами, связанными с базами данных.
Для архитектуры amd64 компоненту mdac
требуется создать 32-битный префикс, с установкой необходимых библиотек и изменений реестра Windows.
Для установки mdac
выполнить команды:
export WINEARCH=win32
winetricks -q mdac28
Примечание: Статья предназначена для новичков, но, как минимум, потребуются базовые знания о 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_USERSoftwareWine:
Подробно об этом рассказывается здесь: 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
Состояние перевода: На этой странице представлен перевод статьи Wine. Дата последней синхронизации: 11 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Wine — слой совместимости, позволяющий запускать приложения Microsoft Windows в Unix-подобных операционных системах. Программы, запущенные в Wine, работают так же, как и «родные» — без потерь производительности и увеличения потребления памяти, характерных для эмуляторов.
Важно:
- Wine не изолирован от вашей системы.
- Если в рамках вашей учётной записи у вас есть доступ к определённому файлу или ресурсу, то программы, запущенные в Wine, тоже его получат. Некоторые меры предосторожности на этот случай описаны в разделе #Отдельная учётная запись для запуска Wine и статье Безопасность#Запуск приложений в песочнице.
- Wine может запускать в том числе и вредоносные программы (см. Wine FAQ).
Установка
Чтобы установить Wine, подключите репозиторий multilib и установите пакет wine (development-версия) или wine-staging (testing). Wine Staging — пропатченная версия Wine с исправлениями багов и некоторыми возможностями, которые ещё не были добавлены в stable- и development-версии. См. также #Графические драйвера и #Звук.
Если вы собираетесь запускать приложения, которые зависят от Internet Explorer и .NET, то имеет смысл также установить пакеты wine-gecko и wine-mono соответственно. Этот шаг не является обязательным, поскольку Wine может самостоятельно подгружать необходимые файлы по мере необходимости. Тем не менее, если скачать файлы заранее, то работать будет можно без подключения к сети, а Wine не придётся скачивать файлы каждый раз, когда они потребуются какому-нибудь префиксу.
Сторонние приложения
Перечисленные ниже приложения являются отдельными проектами, с собственными сообществами и веб-сайтами, и не поддерживаются основным сообществом Wine. Подробности можно найти в Wine Wiki.
- CrossOver — Платная коммерческая версия Wine с более надёжной службой поддержки пользователей.
- https://www.codeweavers.com || crossoverAUR
- exe-thumbnailer — Генерирует эскизы для исполняемых файлов Windows (.exe, .lnk, .msi и .dll).
- https://github.com/exe-thumbnailer/exe-thumbnailer || exe-thumbnailerAUR[ссылка недействительна: package not found]
- Lutris — Игровой лончер для всех типов игр, в том числе игр Wine (с управлением префиксами), игр Linux и эмуляторов.
- https://lutris.net || lutris
- PlayOnLinux — Графический префикс менеджер для Wine. Включает скрипты для помощи в установке и настройке программ.
- https://www.playonlinux.com || playonlinuxAUR
- Proton — Иструмент совместимости для Steam на основе Wine и дополнительных компонентов. На странице ProtonDB можно найти список совместимости.
- https://github.com/ValveSoftware/Proton || protonAUR
- PyWinery — Простой графический префикс менеджер для Wine.
- https://github.com/ergoithz/pywinery || pywineryAUR
- Q4Wine — Графический префикс менеджер для Wine. Может экспортировать темы Qt в конфигурацию Wine для лучшей интеграции.
- https://sourceforge.net/projects/q4wine/ || q4wine-gitAUR
- Bottles — Графический менеджер префиксов и запуска программ для Wine на основе GTK.
- https://usebottles.com/ || bottlesAUR
Настройка
Настройка Wine обычно выполняется следующими инструментами:
- winecfg — графический настройщик Wine, запускается командой
winecfg
. - regedit — утилита Wine для редактирования реестра, запускается командой
regedit
. См. статью Useful Registry Keys на сайте WineHQ. - control — реализация Панели управления Windows для Wine, запускается командой
wine control
. - Полный список команд можно найти в статье List of Commands на WineHQ.
WINEPREFIX
По умолчанию Wine хранит файлы настроек и установленные программы Windows в каталоге ~/.wine
. Этот каталог обычно называют «префикс Wine» или «бутылка Wine» (wine bottle — «бутылка вина»). Каталог создаётся/обновляется каждый раз, когда вы запускаете программу Windows или одну из связанных с Wine программ вроде winecfg. Каталог префикса содержит дерево, которое ваши программы будут видеть как диск C:
.
С помощью переменной окружения WINEPREFIX
можно задать произвольный каталог для префикса. Это удобно, если вы хотите использовать разные настройки для разных Windows-программ. Когда программа впервые запускается с новым префиксом, Wine автоматически создает каталог с чистым диском C и реестром.
Например, если вы запустите одну программу командой $ env WINEPREFIX=~/.win-a wine program-a.exe
, а другую — командой $ env WINEPREFIX=~/.win-b wine program-b.exe
, то у каждой программы будет отдельный диск С и отдельный реестр.
Примечание: Префикс Wine не является песочницей! Программа, запущенная в Wine, всё ещё имеет доступ к остальной файловй системе. Например, диск Z:
будет отображаться на /
вне зависимости от текущего префикса.
Чтобы создать нужный префикс без запуска Windows-программы или графического инструмента, выполните:
$ env WINEPREFIX=~/.префикс wineboot -u
WINEARCH
Wine по умолчанию запускает 64-битное окружение. Это поведение можно изменить переменной окружения WINEARCH
. Переименуйте каталог ~/.wine
и создайте новое окружение Wine командой $ WINEARCH=win32 winecfg
. Это окружение будет 32-битным. Если переменная WINEARCH
не указана, то создаётся 64-битное окружение.
WINEARCH
можно совместить с WINEPREFIX
, чтобы создать отдельные окружения для win32
и win64
:
$ WINEARCH=win32 WINEPREFIX=~/win32 winecfg $ WINEPREFIX=~/win64 winecfg
Также WINEARCH
можно совместить с другими программами Wine вроде winetricks (Steam взят для примера):
WINEARCH=win32 WINEPREFIX=~/.local/share/wineprefixes/steam winetricks steam
Узнать архитектуру существующего префикса можно в файле реестра. Следующая команда считывает системный реестр префикса ~/.wine
и возвращает строку #arch=win32
или #arch=win64
в зависимости от типа архитектуры:
$ grep '#arch' ~/.wine/system.reg
Графические драйвера
Вам придётся установить 32-битную версию вашего графического драйвера. Выберите нужный пакет из столбца OpenGL (multilib) в таблице Xorg#Установка драйвера.
Верным признаком того, что ваш драйвер не подходит или неправильно настроен, будет следующее сообщение Wine в окне терминала:
Direct rendering is disabled, most likely your OpenGL drivers have not been installed correctly
Примечание: После установки нужной библиотеки необходимо перезагрузить X.
Звук
При запуске приложений в Wine могут возникнуть некоторые проблемы со звуком. Убедитесь, что в winecfg выбрано только одно звуковое устройство.
Установите необходимые вашему аудиодрайверу пакеты:
- Для ALSA установите lib32-alsa-lib и lib32-alsa-plugins.
- Для PulseAudio установите lib32-libpulse.
- Для OSS установите lib32-alsa-oss.
Дополнительные пакеты:
- Играм, в которых используется продвинутая звуковая система (например, TESV: Skyrim), может потребоваться пакет lib32-openal.
Если winecfg по-прежнему не может обнаружить звуковой драйвер (Selected driver: (none)), настройте его через реестр. Например, если не работает микрофон в 32-битном приложении Windows на 64-битной базовой установке wine-1.9.7, получить полный доступ к звуковому аппаратному обеспечению можно следующим образом: откройте regedit, найдите HKEY_CURRENT_USER → Software → Wine → Drivers, добавьте строку с названием Audio и задайте ей значение alsa. Возможно, также поможет пересоздание префикса.
Поддержка MIDI
MIDI — довольно популярная музыкальная система видеоигр 90-х. Если вы пытаетесь запустить старую игру, то «из коробки» звук скорее всего работать не будет.
В Wine имеется отличная поддержка MIDI. Тем не менее, в первую очередь она должна работать на вашей хостовой системе, как объяснено в статье MIDI. Кроме того, убедитесь, что Wine использует правильный MIDI-разъём.
Прочие зависимости
Некоторым приложениям могут потребоваться дополнительные пакеты для различных целей:
- Проигрывание музыки: lib32-mpg123.
- «Родные» библиотеки обработки изображений: lib32-giflib и lib32-libpng.
- Поддержка шифрования: lib32-gnutls.
- 32-битные видеокодеки: lib32-gst-plugins-base, lib32-gst-plugins-good, lib32-gst-plugins-badAUR и lib32-gst-plugins-uglyAUR.
- NTLM-аутентификация: samba.
Шрифты
Если в приложении Wine шрифты отображаются неразборчиво, проблема может быть в том, что они просто не установлены. Вы можете настроить Wine, чтобы он использовал системные шрифты:
$ cd ${WINEPREFIX:-~/.wine}/drive_c/windows/Fonts && for i in /usr/share/fonts/**/*.{ttf,otf}; do ln -s "$i" ; done
Wine использует FreeType для построения шрифтов, и стандартные настройки FreeType изменились несколько релизов назад. Попробуйте использовать следующее окружение для Wine-программ:
FREETYPE_PROPERTIES="truetype:interpreter-version=35"
Можно также попробовать установить шрифты Microsoft (TrueType) в префикс Wine. Если это не поможет, попробуйте сначала выполнить winetricks corefonts
, а затем, как крайнее средство, winetricks allfonts
.
После выполнения этих команд «убейте» все запущенные сервера Wine и выполните winecfg
. Шрифты должны быть доступны.
Если шрифты выглядат немного смазанными, импортируйте следующий текстовый файл в реестр Wine с помощью regedit:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USERSoftwareWineX11 Driver] "ClientSideWithRender"="N"
Для мониторов с высоким разрешением значения dpi можно задать в winecfg.
См. также Настройка шрифтов#Приложения без поддержки fontconfig.
Сглаживаение шрифтов
Хороший способ улучшить рендеринг шрифтов в Wine — включить сглаживание ClearType. Следующий скрипт включит режим «Subpixel smoothing (ClearType) RGB»:
cat << EOF > /tmp/fontsmoothing REGEDIT4 [HKEY_CURRENT_USERControl PanelDesktop] "FontSmoothing"="2" "FontSmoothingOrientation"=dword:00000001 "FontSmoothingType"=dword:00000002 "FontSmoothingGamma"=dword:00000578 EOF WINE=${WINE:-wine} WINEPREFIX=${WINEPREFIX:-$HOME/.wine} $WINE regedit /tmp/fontsmoothing 2> /dev/null
Подробнее см. оригинальный ответ.
Иконки рабочего стола
Когда установщик приложения Windows пытается создать ярлык, Wine создает файл .desktop
вместо него.
- Ярлыки рабочего стола сохраняются в каталоге
~/Desktop
. - Ярлыки стартового меню сохраняются в каталоге
~/.local/share/applications/wine/Programs/
.
Примечание: Wine не поддерживает установку приложений Windows для всех пользователей, поэтому в каталоге /usr/share/applications
файлы .desktop
не сохраняются. См. описание бага 11112.
Совет: Если пункты меню не создались во время установки или были случайно удалены, попробуйте команду wine winemenubuilder
.
Пункты меню для утилит Wine
По умолчанию, при установке Wine пункты меню и иконки для относящихся к Wine программ (например, winecfg, winebrowser и т.д.) не создаются. Чтобы это исправить, установите мета-пакет wine-installerAUR или wine-installer-gitAUR (у последнего есть дополнительные зависимости) или следуйте инструкциям ниже.
Во-первых, установите любую программу Windows, чтобы Wine создал меню. Затем создайте файлы со следующим содержанием в каталоге ~/.local/share/applications/wine/
:
wine-browsedrive.desktop
[Desktop Entry] Name=Browse C: Drive Comment=Browse your virtual C: drive Exec=wine winebrowser c: Terminal=false Type=Application Icon=folder-wine Categories=Wine;
wine-uninstaller.desktop
[Desktop Entry] Name=Uninstall Wine Software Comment=Uninstall Windows applications for Wine Exec=wine uninstaller Terminal=false Type=Application Icon=wine-uninstaller Categories=Wine;
wine-winecfg.desktop
[Desktop Entry] Name=Configure Wine Comment=Change application-specific and general Wine options Exec=winecfg Terminal=false Icon=wine-winecfg Type=Application Categories=Wine;
После этого создайте следующий файл в каталоге ~/.config/menus/applications-merged/
:
wine.menu
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd"> <Menu> <Name>Applications</Name> <Menu> <Name>wine-wine</Name> <Directory>wine-wine.directory</Directory> <Include> <Category>Wine</Category> </Include> </Menu> </Menu>
Если с этими настройками иконки выглядят уродливо (или не появились вовсе), то их нет среди доступных. Необходимо заменить настройки явным указанием расположения желаемых иконок. Того же можно добиться правым кликом по иконке и изменением настроек. Большой набор иконок для ярлыков можно найти в GNOME-colors.
Удаление пунктов меню
Созданные Wine пункты меню хранятся в каталоге ~/.local/share/applications/wine/Programs/
. Если удалить соответствующий программе файл .desktop, то приложение исчезнет из меню.
Кроме того, чтобы удалить нежелательные расширения Wine, выполните следующие команды (источник — сайт Wine):
$ rm ~/.local/share/mime/packages/x-wine* $ rm ~/.local/share/applications/wine-extension* $ rm ~/.local/share/icons/hicolor/*/*/application-x-wine-extension* $ rm ~/.local/share/mime/application/x-wine-extension*
В KDE, возможно, для полной очистки меню также потребуется удалить файлы wine-*.menu
из каталога /.config/menus/
.
Внешний вид
Оформление в стиле XP можно загрузить отсюда. Руководство по установке можно найти здесь. После установки выберите тему оформления в winecfg.
Пользователи Wine Staging могут вместо этого включить опцию Enable GTK3 Theming в разделе Staging winecfg. Будет выбрана текущая GTK-тема.
Печать
Чтобы использовать принтер (локальный или удалённый) с приложениями Wine в win32 prefixes (например, MS Word), установите пакет lib32-libcups, перезагрузите Wine (wineboot) и перезапустите приложение.
Сеть
Для приложений, работающих через TLS или HTTPS, установите пакет lib32-gnutls.
Wine также могут потребоваться специальные разрешения (capability) на доступ к сети по протоколу ICMP (пинги) (см. WineHQ FAQ):
# setcap cap_net_raw+epi /usr/bin/wine-preloader
Если после этого возникают проблемы (например, при обработке исключений или привилегированных команд), для удаления capability выполните:
# setcap -r /usr/bin/wine-preloader
Использование
Важно: Не устанавливайте и не запускайте приложения Wine с правами root! Подробнее см. Wine FAQ.
Общую информацию об использовании Wine можно найти на странице Wine User’s Guide.
Запуск конкретных приложений Windows в Wine описан на странице Wine Application Database (AppDB).
Wayland
В настоящее время Wine не поддерживает Wayland напрямую, но вы можете использовать XWayland.
Некоторые попытки реализовать поддержку Wayland:
- Экспериментальный драйвер Wayland для Wine, который поддерживает работу OpenGL- и Windows GDI-приложений. См. это и это сообщения почтовой рассылки wine-devel.
- wine-wayland: альтернативная сборка Wine с поддержкой Wayland посредством Vulkan (работает с DirectX 9, 10 и 11 (через #DXVK) и с Vulkan-совместимыми приложениями).
Советы и рекомендации
Wineconsole
Часто появляется необходимость запустить .exe-файл, чтобы пропатчить файлы игры, например, добавить поддержку широкоформатного экрана в старую игру. Запуск .exe-файла в Wine обычным способом ни к чему не приведёт. В этом случае откройте терминал и выполните:
$ wineconsole cmd
Затем перейдите в каталог с .exe-файлом и запустите его.
Winetricks
Winetricks — скрипт, помогающий установить базовые зависимости, необходимые программам Windows. Устанавливаются DirectX 9.x, MSXML (для Microsoft Office 2007 и Internet Explorer), библиотеки Visual Runtime и многое другое.
Установите пакет winetricks или winetricks-gitAUR, после чего выполните:
$ winetricks
Графический интерфейс можно установить с пакетом zenity.
Производительность
CSMT
CSMT — технология Wine, использующая отдельный поток для вызовов OpenGL, что значительно повышает производительность. Начиная с Wine 3.2 CSMT по умолчанию включён. Для более ранних версий Wine его необходимо включить вручную. Для «ванильного» Wine запустите wine regedit
и задайте DWORD-значение 0x01 (включено) для HKEY_CURRENT_USER -> Software > Wine > Direct3D > csmt. Для Wine Staging выполните winecfg
и включите CSMT на вкладке Staging.
Имейте в виду, что для некоторых приложений CSMT может привести к обратному эффекту — к снижению производительности. В этом случае отключите его вручную, создав/изменив значение в реестре на 0x00 (отключено).
Подробная информация:
- Обсуждение на Phoronix Forum с разработчиком CSMT Stefan Dösinger.
Режим OpenGL в играх
В некоторых играх есть поддержка OpenGL, который может работать лучше, чем стандартный DirectX. Хотя способ включения OpenGL варьируется от приложения к приложению, многие игры используют флаг -opengl
:
$ wine /путь/к/3d_игре.exe -opengl
Разумеется, перед запуском приложения в этом режиме необходимо тщательно изучить его документацию и информацию из базы данных Wine AppDB.
DXVK
DXVK — новая многообещающая реализация DirectX версий 9, 10 и 11 поверх Vulkan. Значительно повышает производительность и в некоторых случаях обеспечивает даже лучшую совместимость. Battlefield 1, например, работает только под DXVK. С другой стороны, на данный момент DXVK поддерживает не все игры Wine.
Чтобы использовать DXVK, установите пакет dxvk-binAUR. Команда ниже активирует его для указанного префикса (по умолчанию ~/.wine
):
$ WINEPREFIX=префикс setup_dxvk install
Примечание: В Wine версий до 3.5 необходимо настроить поддержку Vulkan вручную, следуя указаниям на GitHub.
Важно: DXVK замещает DLL-файлы для DirectX 10 и 11. В многопользовательских онлайн-играх это может быть принято за использование читов, что закончится блокировкой аккаунта. Используйте на свой страх и риск!
Gallium Nine
Для открытых драйверов на основе Gallium (в основном карты AMD) существует проект трекера состояний Gallium Direct3D, который ставит целью добиться производительноси, сравнимой с нативными показателями DirectX 9. В большинстве случаев выдаёт вдвое большую производительность, чем стандартный Wine, и меньшее количество визуальных помех. Потреблене времени центрального процессора значительно ниже по сравнению с CSMT.
Чтобы его использовать, установите пакет wine-nine. Это одиночный пакет, подходящий для любой версии Wine. Команда wine ninewinecfg
позволяет проверить, включён Gallium Nine или нет.
Удаление ненужных файловых ассоциаций
Wine используется как приложение по умолчанию для большого количества форматов файлов. Некоторые из них, например, vbs
или chm
, являются специфичными для Windows, и такая привязка вполне логична. С другой стороны, довольно неприятно, когда файл gif
, jpeg
, txt
или js
открывается в запущенном в Wine браузере Internet Explorer или редакторе Notepad.
Ассоциации Wine хранятся в каталоге ~/.local/share/applications/
в виде файлов wine-extension-расширение.desktop
. Удалите те из них, которые не нужны, либо удалите все расширения Wine:
$ rm -f ~/.local/share/applications/wine-extension*.desktop $ rm -f ~/.local/share/icons/hicolor/*/*/application-x-wine-extension*
После этого очистите кэш:
$ rm -f ~/.local/share/applications/mimeinfo.cache $ rm -f ~/.local/share/mime/packages/x-wine* $ rm -f ~/.local/share/mime/application/x-wine-extension*
И обновите его:
$ update-desktop-database ~/.local/share/applications $ update-mime-database ~/.local/share/mime/
В качестве альтернативы можно удалить все файлы, относящиеся к Wine:
$ find ~/.local/share -name "*wine*" | xargs -I '{}' --no-run-if-empty rm -r '{}'
После этого тоже обновите кэш, как показано выше.
Имейте в виду, что Wine может создать новые ассоциации и даже пересоздать удалённые, если того потребует какое-нибудь приложение.
Запрет на создание файловых ассоциаций
Примечание: Указанные действия необходимо выполнять для каждого WINEPREFIX, которому вы желаете запретить обновление файловых ассоциаций, за исключением варианта с редактированием файла /usr/share/wine/wine.inf
(см. ниже).
Данный метод предотвращает создание файловых ассоциаций, но оставляет возможность для создания XDG-файлов .desktop (которые вы видите, например, в меню).
Если вы хотите запретить Wine создавать файловые ассоциации, запустите winecfg и уберите галочку «Manage File Associations» на вкладке Desktop Integration. Подробнее см. Wine FAQ.
Чтобы сделать то же самое, но с помощью реестра, добавьте строку Enable
со значением N
в
HKEY_CURRENT_USERSoftwareWineFileOpenAssociations
Сначала необходимо создать ключ FileOpenAssociations
!
Если вы хотите, чтобы эти настройки автоматически применялись к новым префиксам, отредактируйте файл /usr/share/wine/wine.inf
, добавив следующую строку в раздел [Services]
:
HKCU,"SoftwareWineFileOpenAssociations","Enable",2,"N"
Предотвратить перезапись изменённых файлов при обновлении пакета можно создав хук pacman, который будет вносить изменения автоматически:
/etc/pacman.d/hooks/stop-wine-associations.hook
[Trigger] Operation = Install Operation = Upgrade Type = Path Target = usr/share/wine/wine.inf [Action] Description = Stopping Wine from hijacking file associations... When = PostTransaction Exec = /bin/sh -c '/usr/bin/grep -q "HKCU,"Software\Wine\FileOpenAssociations","Enable",2,"N"" /usr/share/wine/wine.inf || /usr/bin/sed -i "s/[Services]/[Services]nHKCU,"Software\Wine\FileOpenAssociations","Enable",2,"N"/g" /usr/share/wine/wine.inf'
Подробнее см. pacman#Хуки
Неявный запуск бинарников Windows
Пакет wine содержит файл binfmt, который позволяет запускать программы Windows напрямую. Например, команда ./myprogram.exe
будет запускать программу так же, как wine ./myprogram.exe
. Соответствующая системная служба запускается автоматически при старте системы. Если вы ещё не перезагружались после установки Wine, то можете вручную запустить службу systemd-binfmt.service
, чтобы она заработала.
Примечание: Убедитесь, что у двоичного файла Windows есть права на исполнение, иначе он не запустится. Например, выполните chmod +x windows-binary
.
Два монитора с разными разрешениями
Если у вас возникли проблемы с разрешением экрана на втором мониторе, возможно, в системе отсутствует пакет lib32-libxrandr.
Кроме того, установка пакета lib32-libxinerama поможет решить некоторые другие проблемы работы с двумя мониторами в Wine: ненажимаемые иконки и пункты меню, плохая отрисовка интерфейса приложения, зависание курсора мыши и т.п.
Прожиг оптического носителя
Для прожига CD- и DVD-дисков необходимо загрузить модуль ядра sg
.
Монтирование образов оптических дисков
Приложения могут проверять наличие оптического диска в дисководе. Иногда это просто проверка присутствия данных, и в этом случае будет достаточно с помощью winecfg настроить определённый путь в файловой системе выступать в качестве привода CD-ROM. Другие приложения могут проверять название носителя и/или серийный номер, и в этом случае потребуется смонтировать соответствующий образ.
Некоторые утилиты для работы с виртуальными дисками, в том числе основанные на fuse, не умеют работать с такими метаданными — например, Acetoneiso. CDEmu, наоборот, работает вполне корректно.
Показ FPS в играх
Wine отслеживает FPS графических приложений, если установлена переменная окружения WINEDEBUG=fps
. Количество кадров будет выводиться в stdout. Утилита osd_cat
из пакета xosd позволяет отобразить FPS в верхней части экрана поверх окна приложения. См также вспомогательный скрипт.
Отдельная учётная запись для запуска Wine
Поскольку приложения Windows имеют доступ к вашей домашней директории, имеет смысл создать отдельную учётную запись для работы только с Wine.
Первым делом создайте саму учётную запись:
# useradd -m -s /bin/bash wineuser
Затем переключитесь в другую виртуальную консоль и запустите оконный менеджер или окружение рабочего стола (или прото читайте дальше)…
Чтобы теперь запускать Wine от новой учётной записи, необходимо добавить её в список разрешений X server:
$ xhost +SI:localuser:wineuser
Наконец, можно запускать Wine, передав ему с помощью env
необходимые переменные окружения:
$ sudo -u wineuser env HOME=/home/wineuser USER=wineuser USERNAME=wineuser LOGNAME=wineuser wine аргументы
Процесс запуска приложений Windows в Wine можно автоматизировать с помощью скрипта:
/usr/local/bin/runaswine
#!/bin/bash xhost +SI:localuser:wineuser sudo -u wineuser env HOME=/home/wineuser USER=wineuser USERNAME=wineuser LOGNAME=wineuser wine "$@"
Теперь приложение Wine запустится следующей командой:
$ runaswine "C:путькприложению.exe"
Чтобы не вводить пароль каждый раз при запуске Wine, добавьте следующий пункт в файл /etc/sudoers
: имя_основного_пользователя ALL=(wineuser) NOPASSWD: ALL
. Подробнее см. Sudo#Настройка.
Рекомендуется также запустить winecfg
от пользователя Wine, и в окне настроек (раздел «Desktop Integration») убрать привязки ко всем каталогам за пределами домашнего. Так Wine будет иметь доступ только к нему и ни к чему более.
Правда, нужно иметь в виду, что при таком способе работы в приложениях, использующих PulseAudio, может перестать работать звук. В статье PulseAudio/Примеры#Одновременное использование PulseAudio несколькими пользователями описано, как дать пользователю Wine доступ к демону PulseAudio основного аккаунта.
Каталог Temp в tmpfs
По умолчанию Wine записывает временные файлы на физический носитель, но можно использовать для этого файловую систему tmpfs. Удалите текущий каталог для временных файлов и создайте символическую ссылку на новый:
$ rm -r ~/.wine/drive_c/users/$USER/Temp $ ln -s /tmp/ ~/.wine/drive_c/users/$USER/Temp
Запрет на установку Mono/Gecko
Если Gecko и/или Mono нет ни в префиксе, ни в системе в целом, Wine будет запрашивать разрешение на скачивание их из сети. Если ни Gecko, ни Mono вам не нужны, то этот диалог можно отключить. Установите переменную окружения WINEDLLOVERRIDES
в значение mscoree=d;mshtml=d
.
Vulkan
В Wine 3.3 была добавлена поддержка Vulkan. Базовый ICD-загрузчик Vulkan в большинстве приложений работает вполне нормально, но в нём отсутствуют некоторые продвинутые возможности вроде Vulkan layers. Чтобы получить к ним доступ, установите официальный Vulkan SDK (см. шаг 2-4 на GitHub-странице автора патча).
Примечание: ICD-загрузчик Wine был добавлен в версии 3.5, поэтому устанавливать официальный Vulkan SDK нужно только для версий 3.3 и 3.4.
Удаление файловых привязок
По соображениям безопасности полезно удалить предустановленные привязки Wine, чтобы приложения Windows не могли быть запущены напрямую из файлового менеджера или браузера (Firefox предлагает открыть EXE-файлы сразу в Wine!).
Чтобы это сделать, добавьте следующие строки в раздел [options]
файла /etc/pacman.conf
:
NoExtract = usr/lib/binfmt.d/wine.conf NoExtract = usr/share/applications/wine.desktop
Решение проблем
Общие советы по решению возможных проблем можно найти на страницах Wine User’s Guide и Wine FAQ (прежде всего в разделе Решение проблем).
Советы для конкретных приложений можно найти в Wine AppDB.
Проблемы с XWayland
Если вы используете Wine в XWayland, опция «Эмуляция виртуального рабочего стола» на вкладке Graphics в winecfg позволяет решить следующие проблемы:
- мерцание;
- неправильное положение окна;
- неправильное положение курсора мыши и реакция на клики;
- обнаружение клавиатуры.
Смотрите также
- Wine Homepage
- Wine Wiki
- Wine Application Database (AppDB) — Информация о запуске конкретных приложений Windows (известные проблемы, рейтинги, руководства и т.п.).
- Wine Forums — Здесь можно задавать вопросы, но только после прочтения FAQ и AppDB.
- Gentoo:Wine
- Darling — аналогичный проект для программ MacOS
Вы можете установить его с помощью xrandr. Команда: xrandr —output <your output> —primary
Чтобы получить то, что вы поместите в <your output>, вы можете запустить только xrandr, чтобы показать свои параметры. См. Этот пример:
~$ xrandr
Screen 0: minimum 320 x 200, current 2880 x 1200, maximum 8192 x 8192
VGA1 disconnected (normal left inverted right x axis y axis)
LVDS1 connected 1280×800+0+0 (normal left inverted right x axis y axis) 261mm x 163mm
1280×800 60.0*+
1024×768 60.0
800×600 60.3 56.2
640×480 59.9
HDMI1 connected 1600×1200+1280+0 (normal left inverted right x axis y axis) 367mm x 275mm
1600×1200 60.0*+
1280×1024 75.0 60.0
1152×864 75.0
1024×768 75.1 60.0
800×600 75.0 60.3
640×480 75.0 60.0
720×400 70.1
DP1 disconnected (normal left inverted right x axis y axis)
Он устанавливает HDMI1 как первичный с помощью этой команды: xrandr —output HDMI1 —primary
Ссылка: 1.
задан
18 August 2012 в 14:37
поделиться
3 ответа
Вот как я это сделал. Вышеупомянутый ответ — для меня — не сработал.
Сначала я удалил папку Wine с помощью этой команды:
rm -r ~/.wine
Если он сообщает вам, что каталог не пуст, просто добавьте -f (сила). Обратите внимание, что это приведет к удалению любых приложений Windows, установленных в этом префиксе!
Ваша команда должна выглядеть примерно так:
rm -r -f ~/.wine
И затем создать 32-битный префикс с помощью этой команды: [ ! d5]
WINEARCH=win32 WINEPREFIX=~/.wine wine wineboot
ответ дан Cristiana Nicolae
25 May 2018 в 07:27
поделиться
Просто создание каталога wine32 prefix / (без wine64 префикса / каталога] не будет работать. Как было предложено выше (но не полностью выписано) — и если вы хотите избежать необходимости использовать winecfg (который аннулируется при автоматизации — вам нужно как-то закрыть его), вот полное решение: создать wine64, затем каталог wine32. Если вы используете winetricks, чтобы проверить его (он дает предупреждение для каталогов wine64), он будет сообщать оба правильно (wine64 дает предупреждение, так как оно 64, wine32 не делает, так как оно равно 32.). Решение:
rm -Rf ./wine # carefull, this deletes your entire wine config (fine if you want to start afresh)
WINEPREFIX=~/.wine wineboot
… wait …
WINEPREFIX=~/.wine32 WINEARCH=win32 wineboot
После этого вы можете:
WINEPREFIX=~/.wine32 WINEARCH=win32 your_32bit_executable.exe
WINEPREFIX=~/.wine WINEARCH= your_64bit_executable.exe # likely, did not test.
ответ дан Community
25 May 2018 в 07:27
поделиться
Я столкнулся с той же проблемой.
Тип WINEARCH=win32 WINEPREFIX=~/.wine winecfg
Он должен начать загрузку необходимых драйверов. Я считаю, что эта проблема связана с проблемой, возникающей во время обычной загрузки. Для меня это мой интернет упал, поскольку он изначально загружал драйверы.
ответ дан Community
25 May 2018 в 07:27
поделиться
Другие вопросы по тегам:
Похожие вопросы:
Состояние перевода: На этой странице представлен перевод статьи Wine. Дата последней синхронизации: 30 января 2015. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Ссылки по теме
- Steam/Wine
- CrossOver
Wine — свободная реализация программного интерфейса Microsoft Windows (WinAPI), позволяющая запускать приложения Windows в среде Unix-подобных операционных систем. Программы, запущенные в Wine, работают точно так же, как и в своей родной среде без снижения производительности, в отличие от запуска в эмуляторе. Более подробное описание Wine смотрите на домашней странице проекта и на вики-страницах Wine.
Contents
- 1 Установка
- 2 Настройка
- 2.1 WINEPREFIX
- 2.2 WINEARCH
- 2.3 Графические драйверы
- 2.4 Звук
- 2.4.1 Поддержка MIDI
- 2.5 Другие библиотеки
- 2.6 Шрифты
- 2.7 Значки запуска программ
- 2.7.1 Создание пунктов меню для утилит Wine
- 2.7.2 Удаление пунктов меню
- 2.7.3 Неверный раздел в меню KDE 4
- 3 Запуск приложений Windows
- 4 Советы и рекомендации
- 4.1 Сброс ассоциаций файлов Wine
- 4.2 Два монитора с разными разрешениями
- 4.3 exe-thumbnailer
- 4.4 Патч CSMT
- 4.4.1 Дополнительная информация о CSMT
- 4.5 Изменение языка
- 4.6 Установка Microsoft Office 2010
- 4.7 Правильное монтирование образов компакт-дисков
- 4.8 Запись на компакт-диски
- 4.9 OpenGL
- 4.10 Использование Wine как интерпретатор для исполняемых файлов Win16/Win32
- 4.11 Wineconsole
- 4.12 Winetricks
- 4.13 Установка .NET framework 4.0
- 4.14 Треск из колонок при использовании PulseAudio
- 4.15 16-битные программы
- 5 Сторонние оболочки
- 5.1 CrossOver
- 5.2 PlayOnLinux/PlayOnMac
- 5.3 PyWinery
- 5.4 Q4wine
- 6 Смотрите также
Установка
Важно: Если у вас есть права для доступа к какому-либо файлу или ресурсу, то и запущенная вами программа в префиксе Wine тоже их получит. Префиксы Wine не являются так называемыми песочницами. Если важно обеспечение безопасности, используйте средства виртуализации.
Wine может быть установлен с пакетом wine, доступном в официальных репозиториях. Если вы используете 64-битную систему, первым делом не забудьте включить репозиторий Multilib.
Также вы можете установить пакеты wine_gecko и wine-mono для приложений, которые нуждаются в поддержке Internet Explorer и .NET, соответственно. Строго говоря, эти пакеты не обязательно устанавливать, так как Wine может загружать необходимые файлы самостоятельно по мере необходимости. Однако, если установить их сразу, это позволит затем работать без доступа к сети, так как Wine больше не будет загружать файлы для каждого префикса.
Архитектурные различия
Версия пакета Arch i686, используемая по умолчанию, содержит 32-битную сборку Wine, поэтому вы не сможете запускать в нем 64-битные приложения. Пакет Arch x86_64, однако, содержит сборку с флагом --enable-win64
, которая включает в Wine подсистему WoW64.
- В Windows эта сложная подсистема позволяет пользователям запускать 32-битные и 64-битные программы одновременно и даже в одном и том же каталоге.
- В Wine пользователь должен создать отдельные префиксы или каталоги. Более подробную информацию смотрите в Wine64.
Если вы испытываете проблемы с winetricks или программами в 64-битном окружении, попробуйте создать новый 32-битный префикс. Смотрите раздел #WINEARCH. Использование пакета x86_64 с WINEARCH=win32
должно иметь тот же эффект, что и просто использование сборки из пакета i686.
Настройка
Настройка Wine обычно выполняется с помощью следующих инструментов:
- winecfg — инструмент для настройки Wine с графическим интерфейсом. Вы можете запустить его из терминала, набрав
$ winecfg
, или, с указанием префикса:$ WINEPREFIX=~/.some_prefix winecfg
. - control.exe — реализация Панели управления Windows в Wine, которую можно вызвать, выполнив
$ wine control
. - regedit — инструмент для редактирования реестра. Если winecfg или Панели управления недостаточно, смотрите эту статью на WineHQ, в которой перечислены полезные ключи реестра.
WINEPREFIX
По умолчанию, Wine хранит файлы настроек и установленные приложения Windows в каталоге ~/.wine
. Этот каталог называется префиксом Wine (Wine prefix). Он создается и обновляется автоматически по необходимости при запуске программ Windows и программ настройки Wine, например winecfg. Каталог префикса также содержит стандартную структуру корневого раздела каталогов Windows, которая представляется программам Windows как диск C:
.
Вы можете изменить место расположения префикса, создав переменную окружения WINEPREFIX
с указанием нового пути. Это полезно, когда вам необходимо использовать различное окружение для разных приложений Windows. При запуске приложения Windows новый префикс будет автоматически создан на указанном в WINEPREFIX
месте, если его до этого не существовало.
Для примера, если вы запускаете одно приложение с $ env WINEPREFIX=~/.win-a wine program-a.exe
, а другое с $ env WINEPREFIX=~/.win-b wine program-b.exe
, у каждой программы будет свой раздел C:
, соответственно, своя копия всех настроек и реестра. Таким образом, обе программы будут запущены в полностью изолированных друг от друга средах.
Примечание: Тем не менее, префиксы Wine не являются песочницами. Программы, запущенные в Wine могут также получать доступ к оставшейся части системы (например, раздел Z:
обычно соответствует корню файловой системы /
).
Для создания префикса без запуска каких-либо средств настройки Wine или приложений Windows вы можете использовать команду:
$ env WINEPREFIX=~/.customprefix wineboot -u
WINEARCH
Информация в данном разделе применима только если вы используете 64-битную сборку Wine, поставляемую с версией пакета x86_64
.
Если у вас 64-битная операционная система, по умолчанию будет запускаться 64-битная среда Wine. Вы можете изменить это поведение используя переменную окружения WINEARCH
. При создании префикса передайте программе переменную окружения $ WINEARCH=win32
. Например, чтобы создать новый 32-битный префикс на стандартном месте, переименуйте старый каталог ~/.wine
и выполните $ WINEARCH=win32 winecfg
. Будет создан новый 32-битный префикс Wine. Без указания $ WINEARCH=win32
на 64-битных системах создается 64-битный префикс.
Вы можете объединить эту переменную с WINEPREFIX
для создания отдельных 32-битной и 64-битной сред:
$ WINEARCH=win32 WINEPREFIX=~/win32 winecfg
$ WINEPREFIX=~/win64 winecfg
Также вы можете использовать WINEARCH
вместе с другими программами Wine, например с winetricks (Steam использован в качестве примера):
WINEARCH=win32 WINEPREFIX=~/.local/share/wineprefixes/steam winetricks steam
Вы можете добавить переменные окружения WINEPREFIX
и WINEARCH
в файл инициализации вашей командной оболочки, например ~/.bashrc
или ~/.zshrc
, чтобы не указывать их каждый раз при использовании Wine:
export WINEPREFIX=$HOME/.config/wine/
export WINEARCH=win32
Графические драйверы
Для большинства игр потребуются драйверы для графического ускорителя. Обычно это значит, что вам следует использовать проприетарные драйверы, такие как NVIDIA или AMD Catalyst. Открытые реализации драйверов, например ATI также все чаще используются c Wine. Драйверы Intel также должны в большинстве случаев нормально заработать «из коробки».
Смотрите статью Играем на Wine: хорошие и плохие графические драйверы для получения дополнительной информации.
Признаком того, что с вашими драйвером что-то не так, или они не настроен правильно, может служить такое сообщение Wine в окне терминала:
Direct rendering is disabled, most likely your OpenGL drivers have not been installed correctly
Для 64-разрядных систем потребуются дополнительные пакеты из репозитория multilib. Перечень необходимых пакетов вы можете найти в таблице на странице Xorg#Driver installation.
Примечание: Возможно, потребуется перезапустить X после установки пакетов.
Звук
Если возникли проблемы со звуком, первым делом убедитесь, что только одно звуковое устройство выбрано в winecfg
. На данный момент драйвер Alsa наиболее предпочтителен.
Если вы хотите использовать драйвер Alsa в Wine на 64-битной системе, вам необходимо установить пакеты lib32-alsa-lib и lib32-alsa-plugins. Если вы используете PulseAudio, установите также lib32-libpulse.
Если вы хотите использовать драйвер OSS в Wine, вам нужно установить пакет lib32-alsa-oss. Драйвера OSS в ядре недостаточно для работы в Wine.
Если winecfg
все еще не может обнаружить звуковой драйвер, выберите его вручную в реестре.
Игры, которые используют расширенные звуковые системы могут также потребовать установки lib32-openal.
Поддержка MIDI
MIDI была довольно популярной системой в видеоиграх 90-х годов. Если вы запускаете старые игры, скорее всего звук сразу не заработает как надо. Wine имеет отличную поддержку MIDI. Однако, первым делом вам необходимо заставить ее работать на основой системе. Смотрите страницу MIDI для получения дополнительной информации. В конечном итоге убедитесь, что Wine использует правильный звуковой выход MIDI. Подробнее об установке смотрите на странице MIDI на Wine wiki.
Другие библиотеки
-
Некоторые приложения (например, Office 2003/2007) требуют библиотеки MSXML для декодирования HTML и XML, в таких случаях установите lib32-libxml2.
-
Некоторые приложения, которые воспроизводят музыку нуждаются в lib32-mpg123.
-
Некоторые приложения, которые используют родные библиотеки преобразования изображений могут потребовать lib32-giflib и lib32-libpng.
-
Некоторые приложения, требующие поддержки средств шифрования потребуют установки lib32-gnutls.
Шрифты
Если в приложениях Wine плохие шрифты, вероятно, у вас не установлены шрифты TrueType от Microsoft. В этом случае обратитесь к статье Шрифты Microsoft. Если это не помогло, попробуйте выполнить winetricks allfonts
.
После установки выйдите из всех приложений Wine и запустите winecfg
. Шрифты должны стать лучше.
Если шрифты выглядят размыто, импортируйте следующий файл в реестр Wine с помощью regedit:
[HKEY_CURRENT_USERSoftwareWineX11 Driver]
"ClientSideWithRender"="N"
Смотрите также раздел Настройка шрифтов#Приложения без поддержки fontconfig.
Если у шрифтов приложений Wine отсутствует сглаживание, то самый простой способ его включить через winetricks:
$ winetricks fontsmooth-rgb
$ winetricks settings fontsmooth=rgb
Значки запуска программ
При установке приложений Windows в Wine должны создаваться соответствующие значки запуска программ в меню и на рабочем столе. Например, если программа установки (напр. setup.exe) создает обычные ярлыки Windows на рабочем столе и в меню «Пуск», то при их создании будут автоматически созданы соответствующие стандартные файлы .desktop для запуска программ в Wine.
Совет: Если знаки запуска не появляются при установке программ или куда-то пропали, вам сможет помочь утилита winemenubuilder.
Создание пунктов меню для утилит Wine
По умолчанию при установке Wine значки для запуска для программ, поставляемых с Wine (например для winecfg, winebrowser и пр.) не создаются на рабочем столе и в меню. В этом разделе описано, как создать их самостоятельно.
Первым делом, установите какое-нибудь приложение Windows для создания основного меню. После того, как основное меню создано, создайте следующие файлы в ~/.local/share/applications/wine/
:
wine-browsedrive.desktop
[Desktop Entry]
Name=Диск C:
Comment=Запуск обозревателя в диске С:
Exec=wine winebrowser c:
Terminal=false
Type=Application
Icon=folder-wine
Categories=Wine;
wine-uninstaller.desktop
[Desktop Entry]
Name=Удаление приложений
Comment=Удаление приложений Windows, установленных в Wine
Exec=wine uninstaller
Terminal=false
Type=Application
Icon=wine-uninstaller
Categories=Wine;
wine-winecfg.desktop
[Desktop Entry]
Name=Настройка Wine
Comment=Изменение настроек Wine и отдельных приложений
Exec=winecfg
Terminal=false
Icon=wine-winecfg
Type=Application
Categories=Wine;
Также создайте следующий файл в ~/.config/menus/applications-merged/
:
wine.menu
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"[http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd](http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd)">
<Menu>
<Name>Приложения</Name>
<Menu>
<Name>wine-wine</Name>
<Directory>wine-wine.directory</Directory>
<Include>
<Category>Wine</Category>
</Include>
</Menu>
</Menu>
Если значки пунктов меню не отображаются или отображаются некорректно, вероятно, что они отсутствуют в текущем наборе значков. В таком случае, следует явно указать полный путь к желаемому значку в системе. Это можно сделать в панели настроек меню. Также вам может понравиться отличный набор иконок, который поддерживает используемые здесь значки, доступный на странице GNOME-colors.
Удаление пунктов меню
Пункты меню, создаваемые Wine располагаются в ~/.local/share/applications/wine/Programs/
. Для удаления пункта меню просто удалите соответствующий файл .desktop.
Кстати, вы также можете удалить все нежелательные сопоставления расширений файлов, созданные Wine, удалив файлы по следующим путям (взято с сайта Wine):
$ rm ~/.local/share/mime/packages/x-wine*
$ rm ~/.local/share/applications/wine-extension*
$ rm ~/.local/share/icons/hicolor/*/*/application-x-wine-extension*
$ rm ~/.local/share/mime/application/x-wine-extension*
Неверный раздел в меню KDE 4
В KDE4 пункты меню Wine могут появляться в разделе меню «Lost & Found» вместо стандартного раздела Wine. Это происходит потому, что в kde-applications.menu
отсутствует опция MergeDir
.
Отредактируйте файл /etc/xdg/menus/kde-applications.menu
, добавив в конец файла <MergeDir>applications-merged</MergeDir>
после <DefaultMergeDirs/>
:
<Menu>
<Include>
<And>
<Category>KDE</Category>
<Category>Core</Category>
</And>
</Include>
<DefaultMergeDirs/>
**<MergeDir>applications-merged</MergeDir>**
<MergeFile>applications-kmenuedit.menu</MergeFile>
</Menu>
Также вы можете просто создать символическую ссылку на каталог, в который смотрит KDE:
$ ln -s ~/.config/menus/applications-merged ~/.config/menus/kde-applications-merged
Запуск приложений Windows
Важно: Не запускайте и не устанавливайте приложения в Wine с правами суперпользователя! На странице Running Wine as root вы можете найти официальное предупреждение.
Для запуска приложения Windows наберите:
Чтобы установить приложение с помощью установщика MSI, используйте встроенную утилиту msiexec:
$ msiexec /i *путь_до_msi*
Советы и рекомендации
Совет: В дополнение к ссылкам, предоставленным вначале статьи, следующие материалы могут также быть вам интересны:
- The Wine Application Database (AppDB) — информация о запуске отдельных приложений Windows (известные неполадки, рейтинги, руководства и т. п.)
- The WineHQ Forums — здесь вы можете получить помощь, если вы не смогли с чем-либо разобраться даже после прочтения FAQ и AppDB.
Сброс ассоциаций файлов Wine
Wine берет на себя роль приложения по умолчанию для многих форматов файлов. Некоторые (к примеру, vbs
или chm
) относятся только к Windows, однако более распространенные форматы (gif
, jpeg
, txt
, js
и т.д.) Wine пытается открыть в своих реализациях Internet Explorer или Notepad, что может реально надоедать.
Ассоциации файлов Wine задаются в файле ~/.local/share/applications/
, а команда rm ~/.local/share/applications/mimeinfo.cache
позволяет быстро восстановить предыдущие настройки. Также вы можете выборочно удалить отдельные файлы .desktop из этого каталога. Имейте ввиду, что обновления Wine могут восстановить любые удаленные файлы и все придется делать по новой.
Два монитора с разными разрешениями
Если у вас появились проблемы при использовании нескольких мониторов с разными разрешениями, вероятно дело в недостающем пакете lib32-libxrandr.
exe-thumbnailer
Эта небольшая надстройка будет отображать встроенные в исполняемые файлы .exe значки, когда они доступны, а также подскажет, что запуск программы будет осуществлен в Wine. Подробности вы можете найти на Wine wiki. Пакет gnome-exe-thumbnailer доступен в AUR.
Патч CSMT
В настоящий момент разработчики Wine экспериментируют с оптимизацией потоков ввода-вывода и потоков выполнения. Вы можете наблюдать значительное улучшение производительности, используя экспериментальную версию Wine. Множество игр могут запускаться также быстро, как на Windows или даже быстрее. Этот патч известен как CSMT и работает с графическими ускорителями NVidia и AMD.
Примечание: Так как это экспериментальная версия, не все может работать, как ожидается. Пожалуйста, сообщайте о своем удачном и неудачном опыте разработчикам для помощи в разработке новых версий.
Простой путь состоит в использовании playonlinux. После установки игры активируйте версию Wine 1.7.4-CSMT в меню Tools → Manage Wine Versions.
Скопируйте следующие настройки в секцию Miscellaneous/Command to exec before running the program
файла конфигурации вашей игры:
export WINEDEBUG=-all
export LD_PRELOAD="libpthread.so.0 libGL.so.1"
export __GL_THREADED_OPTIMIZATIONS=0
export __GL_SYNC_TO_VBLANK=1
export __GL_YIELD="NOTHING"
export CSMT=enabled
Убедитесь, что опция StrictDrawOrdering
выключена в Tools
→ General
.
Дополнительная информация о CSMT
обсуждение на форуме Phoronix с участием разработчика CSMT Стефана Дёсингера
презентация CSMT с бенчмарками
Здесь вы найдете игровые видео с демонстрацией возможностей CSMT.
Изменение языка
Некоторые программы могут не позволять выбирать язык, полагаясь на настройку системной локали. Wine передает параметры окружения (включая настройки локалей) приложению, поэтому все должно работать «из коробки». Если вы хотите принудительно заставить программу использовать другую локаль, вызовите Wine с переменной LC_ALL
:
LC_ALL=*xx_XX.encoding* wine *путь/к/программе*
Например,
LC_ALL=it_IT.UTF-8 wine *путь/к/программе*
Установка Microsoft Office 2010
Примечание: К сожалению, Microsoft Office 2013 пока не запускается.
Microsoft Office 2010 работает без каких-либо проблем (проверено на Microsoft Office Home и Student 2010, Wine 1.5.27 и 1.7.5). Активация через Интернет также работает.
Начните с установки wine-mono, wine_gecko, samba, и lib32-libxml2.
$ export WINEPREFIX=~/.wine # Wine prefix to use
$ export WINEARCH=win32
$ wine /path/to/office_cd/setup.exe
Если вы не хотите устанавливать Office в стандартный префикс (~/.wine
), создайте новый, как указано в разделе #WINEPREFIX. Вы также можете поместить указанные переменные окружения в файл инициализации вашей командной оболочки, о чем также написано в разделе.
Как только установка завершится, откройте Word или Excel для активации через Интернет. После активации закройте программу, запустите winecfg и установите riched20
(на вкладке Libraries) to (native,builtin)
. Это позволит работать PowerPoint.
Дополнительную информацию смотрите в этой статье на WineHQ.
Примечание: Чтобы заработал OneNote, запустите winetricks wininet
и убедитесь, что для библиотеки wininet
в winecfg установлено значение (native,builtin)
.
Примечание: Если активация через Интернет не заработала и вы хотите выполнить ее по телефону, убедитесь, что для библиотеки riched20
в winecfg установлено (native,builtin)
, иначе вы не сможете выбрать страну из списка.
Примечание: playonlinux дает возможность полностью установить Office 2003, 2007 и 2010 без каких-либо дополнительных действий. Вам будет необходимо лишь указать путь до setup.exe или установочного образа диска и процесс установки будет выполнен автоматически. Кроме того, установка Office 2010 из playonlinux исправляет некоторые проблемы, приводившие к появлению ошибок наподобие «Word cannot open the doument».
Правильное монтирование образов компакт-дисков
Некоторые приложения проверяют, что компакт-диск находится в дисководе. Они могут только лишь проверять данные, в таком случае может быть достаточно указать соответствующий путь в системе как привод CD-ROM в winecfg.
Однако, другие приложения могут проверять также метаданные, такие как имя диска или серийный номер, и в этом случае образ должен быть монтирован с указанием этих специальных параметров.
Инструменты создания виртуальных приводов CD-ROM, основанные на fuse не работают с метаданными (например, Acetoneiso). Программа CDEmu, в свою очередь, обрабатывает их правильно.
Запись на компакт-диски
Чтобы записать данные на CD и DVD, вам необходимо загрузить модуль ядра sg
.
OpenGL
Множество игр и приложений имеют поддержку режима OpenGL, который может работать лучше чем стандартный режим DirectX. В то время, как способы включения рендеринга через OpenGL могут различаться от случая к случаю, многие игры просто принимают опцию -opengl
:
$ wine /path/to/3d_game.exe -opengl
В общем случае, вам следует посмотреть документацию на ваше приложение, а также искать дополнительную информацию в базе приложений AppDB.
Использование Wine как интерпретатор для исполняемых файлов Win16/Win32
Чтобы указать ядру использовать Wine как интерпретатор для всех исполняемых файлов Win16/Win32, наберите:
echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
Чтобы изменения сохранились после перезагрузки, создайте файл /etc/binfmt.d/wine.conf
со следующим содержимым:
# start Wine for Windows executables
:DOSWin:M::MZ::/usr/bin/wine:
systemd автоматически монтирует файловую систему /proc/sys/fs/binfmt_misc
используя proc-sys-fs-binfmt_misc.mount
(и automount) и запускает файл службы systemd-binfmt.service
чтобы загружать ваши настройки при старте системы.
Теперь попробуйте запустить программу Windows:
$ chmod +x *exefile.exe*
$ ./*exefile.exe*
Если все настроено правильно, программа exefile.exe будет запущена.
If all went well, exefile.exe should run.
Wineconsole
Бывает необходимо запускать файлы .exe для того, чтобы пропатчить файлы какую-либо игру. Например, мод для поддержки широкоэкранного формата изображения для какой-нибудь старой игры. Иногда при запуске файла .exe ничего не происходит. В этом случае, попробуйте запускать программу из консоли Wine:
Теперь перейдите к каталогу с .exe файлом и запустите его оттуда.
Winetricks
Winetricks — скрипт, который позволяет быстро устанавливать в префикс компоненты, необходимые для запуска приложений Windows. Такие компоненты включают библиотеки DirectX 9, MSXML (который необходим Microsoft Office 2007 и Internet Explorer), пакеты Visual C++ Redistributable и многое другое.
Последнюю версию Winetricks вы можете установить с пакетом winetricks. Пакет winetricks-svn предоставляет наиболее свежую версию, находящуюся в разработке.
После установки запустите Winetricks:
Установка .NET framework 4.0
Первым делом создайте новый 32-битный префикс, если вы используете 64-разрядную систему:
$ WINEARCH=win32 WINEPREFIX=~/win32 winecfg
Теперь используйте Winetricks для установки необходимых пакетов:
$ WINEARCH=win32 WINEPREFIX=~/win32 winetricks -q msxml3 dotnet40 corefonts
Треск из колонок при использовании PulseAudio
Если вы слышите треск в приложениях Wine при использовании PulseAudio, попробуйте раскомментировать строку ; default-fragment-size-msec = 25
в файле /etc/pulse/daemon.conf
и установить значение 5
для этой опции:
default-fragment-size-msec = 5
Смотрите здесь для получения дополнительной информации.
16-битные программы
При запуске старых программ для Windows 9x programs, может возникнуть следующая ошибка:
modify_ldt: Invalid argument
err:winediag:build_module Failed to create module for "krnl386.exe",
16-bit LDT support may be missing.
err:module:attach_process_dlls "krnl386.exe16" failed to initialize,
aborting
В этом случае, следующая команда может помочь решить проблему:
echo 1 > /proc/sys/abi/ldt16
Смотрите также список рассылки Fedora.
Сторонние оболочки
Оболочки для запуска Wine не поддерживаются официально, однако могут быть полезны.
CrossOver
CrossOver имеет собственную страницу.
PlayOnLinux/PlayOnMac
PlayOnLinux является графической программой для управления приложениями Windows и DOS. Он использует специально создаваемые скрипты для настройки и запуска программ в раздельных префиксах и даже умеет использовать отдельные версий Wine для запуска каждого конкретного исполняемого файла (это вызвано проблемами с обратной совместимостью версий). Если вам нужно знать, какая версия Wine работает лучше всего для конкретной игры, обратитесь к Wine Application Database. Пакет playonlinux доступен в официальных репозиториях.
PyWinery
PyWinery — простая графическая утилита для управления префиксами, которая позволяет вам настраивать отдельные префиксы и запускать в них приложения. Вы можете установить PyWinery с пакетом pywinery из AUR.
Q4wine
Q4Wine — графический менеджер префиксов Wine, который также позволяет настраивать префиксы. Из достоинств следует отметить возможность экспорта тем Qt в конфигурацию Wine. Пакет q4wine доступен в официальных репозиториях.
Смотрите также
- Официальный сайт Wine
- Wine AppDB
- Настройка графического адаптера и OpenGl в Wine и ускорение его работы
- FileInfo — поиск заголовков PE/COFF в файлах exe/dll/ocx в Linux.
- Wine на Gentoo’s Wiki
В последнее время Wine изменился и в лучшую сторону, доработали Mono и теперь он работает хорошо.
Надеюсь Wine x64 вы установите без инструкции, через Установка и удаление программ.
Переход wine c 64 на 32
rm -fr ~/.wine
env WINEARCH=win32 wineboot
После установки нужно найти в приложения значок Настройка Wine или в консоли выполнить команду
winecfg
Wine предложит установить пакет Mono — соглашаемся (ОК), после пакет Gecko x64 и Gecko x32 — соглашаемся (ОК), откроется окно настройки Wine, можете его закрыть — пока оно не нужно. Можно все настроить через графический интерфейс, но это долго и если какой сбой то не поймешь где он случился. Установим через консоль (терминал).
Установим шрифты.
winetricks corefonts
Первая длинная одна команда (скопировали, вставили в консоль нажимаем Enter). Будет скачивать нужные библиотеки, будут появляться установщики, соглашаемся с лицензионными соглашениями и устанавливаем. Если случился сбой (error mfc40) или зависла установка в консоли нажимаем Ctrl+C (остановим процесс), выполняем еще раз эту команду. Должно все установится (проверено). Быстрота установки зависит от вашей скорости интернет соединения.
winetricks directx9 d3dx9 d3dx9_26 d3dx9_28 d3dx9_31 d3dx9_35 d3dx9_36 d3dx9_42 d3dx9_43 d3dx10 d3dx10_43 d3dx11_42 d3dx11_43 d3dxof devenum dinput8 dinput dirac directmusic directplay dmsynth dsound
Вторая команда
winetricks dxdiagn gdiplus gfw mfc40 mfc42 msxml6 quartz
Третья
winetricks vb5run vb6run vcrun2005 vcrun2008 vcrun2010 vcrun2012 vcrun2013 vcrun2015 vcrun6 vcrun6sp6
Четвертая
winetricks wsh57 wsh56vb xact xact_jun2010 xinput
Далее выбираем поменять настройки и ставим
ddr=opengl
fontfix
glsl=enabled
multisampling=enabled
mwo=enabled
nocrashdialog
orm=fbo
psm=0
psm=1
psm=2
psm=3
rtlm=auto
strictdrawordering=desabled
videomemorysize= (отмечаете значение в соответствии с памятью вашей видеокарты, если больше видеопамяти чем 2048, то отмечаете его потом поправите в реестре)
vsm=0
vsm=1
vsm=2
vsm=3
Выбираем запустить winecfg
Версию Wine ставим (из выпадающего списка) Windows-7 или выше.
На вкладке — Библиотеки- в существующих значениях ищем — dinput — выделяем и жмем.
Изменить, в выпадающем меню ставим — встроенная, затем сторонняя, повторяем действие и с -dinput8- устраняет проблемы мышки в играх.
У кого проблемы со звуком, можно изменить параметр — dsound — на встроенная.
WINEARCH=win32 WINEPREFIX=~/название_префикса winecfg
WINEPREFIX=~/название_префикса C:/путь/до/программы
Дополнительно
Запуск:
wine /i программа.exe
Установка msi:
msiexec /i программа.msi
Эмуляция процесса загрузки windows:
wineboot
Убивает все процессы wine:
wineserver -k
- Из рубрики
- Обсуждают
- Популярно