Wine (Русский) - ArchWiki

Jump to content

# Wine (Русский)

From ArchWiki

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

- CrossOver
- Wine package guidelines

Состояние перевода: На этой странице представлен перевод статьи Wine. Дата последней синхронизации: 11 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Wine — слой совместимости, позволяющий запускать приложения Microsoft Windows в Unix-подобных операционных системах. Программы, запущенные в Wine, работают так же, как и "родные" — без потерь производительности и увеличения потребления памяти, характерных для эмуляторов.

Важно

- Wine не изолирован от вашей системы.
- Если в рамках вашей учётной записи у вас есть доступ к определённому файлу или ресурсу, то программы, запущенные в Wine, тоже его получат. Некоторые меры предосторожности на этот случай описаны в разделе #Отдельная учётная запись для запуска Wine и статье Безопасность#Запуск приложений в песочнице.
- Wine может запускать в том числе и вредоносные программы (см. Wine FAQ).

## Установка

Чтобы установить Wine, подключите репозиторий multilib и установите пакет wine (development-версия), wine-stableAUR (stable) или 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

- icoextract — Генерирует эскизы для исполняемых файлов Windows (.exe и .dll).

  https://github.com/jlu5/icoextract || icoextractAUR

- Lutris — Игровой лончер для всех типов игр, в том числе игр Wine (с управлением префиксами), игр Linux и эмуляторов.

  https://lutris.net || lutris

- PlayOnLinux — Графический префикс менеджер для Wine. Включает скрипты для помощи в установке и настройке программ.

  https://www.playonlinux.com || playonlinuxAUR

- Proton — Иструмент совместимости для Steam на основе Wine и дополнительных компонентов. На странице ProtonDB можно найти список совместимости.

  https://github.com/ValveSoftware/Proton || protonAUR[ссылка недействительна: package not found]

- 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_USER\Software\Wine\X11 Driver]
    "ClientSideWithRender"="N"

Для мониторов с высоким разрешением значения dpi можно задать в winecfg.

См. также Настройка шрифтов#Приложения без поддержки fontconfig.

#### Сглаживаение шрифтов

Хороший способ улучшить рендеринг шрифтов в Wine — включить сглаживание ClearType. Следующий скрипт включит режим "Subpixel smoothing (ClearType) RGB":

    cat << EOF > /tmp/fontsmoothing
    REGEDIT4

    [HKEY_CURRENT_USER\Control Panel\Desktop]
    "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-приложений. См. это[устаревшая ссылка 2024-12-15 ⓘ] и это[устаревшая ссылка 2024-12-15 ⓘ] сообщения почтовой рассылки 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-nineAUR. Это одиночный пакет, подходящий для любой версии 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_USER\Software\Wine\FileOpenAssociations

Сначала необходимо создать ключ `FileOpenAssociations`!

Если вы хотите, чтобы эти настройки автоматически применялись к новым префиксам, отредактируйте файл `/usr/share/wine/wine.inf`, добавив следующую строку в раздел `[Services]`:

    HKCU,"Software\Wine\FileOpenAssociations","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

Затем переключитесь в другую виртуальную консоль и запустите оконный менеджер или окружение рабочего стола (или прото читайте дальше)...

Примечание Описанный подход работает только в Xorg с доступом к root. Подробнее о запуске команды `xhost` от обычного пользователя см. Xorg#Использование Xorg без прав суперпользователя.

Чтобы теперь запускать 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

Categories:

- Emulation (Русский)
- Gaming (Русский)

Hidden categories:

- Pages with broken package links
- Pages with dead links

Wine (Русский)
Add topic