Как заставить работать wine на 64 битной системе
Всем привет! Столкнулся с неожиданной проблемой запуска вайн. При попытке установить игру выдаёт ошибку: Скрипт определил, что ваш IP-адрес принадлежит России. Если во время загрузки файлов вы увидите ошибки несоответствия сертификата, перезапустите скрипт с опцией ‘–torify’ или скачайте файлы вручную, например, используя VPN. Как запустить с такой опцией? Ещё была ошибка типа не поддерживается 64 бита. Нужен 32 битный префикс. Гуглил, нашёл команду WINEPREFIX=«$HOME/prefix32» WINEARCH=win32 wine wineboot и появляется такая ошибка: it looks like wine32-development is missing, you should install it. as root, please execute «apt-get install wine32-development» wine: ‘/root/prefix32’ is a 32-bit installation, it cannot support 64-bit applications. Пытался отдельно 32 битный вайн установить, безуспешно. Вот итог. Чтение списков пакетов… Готово Построение дерева зависимостей
Чтение информации о состоянии… Готово Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите, неосуществимо, или же вы используете нестабильную версию дистрибутива, где запрошенные вами пакеты ещё не созданы или были удалены из Incoming. Следующая информация, возможно, вам поможет:
Следующие пакеты имеют неудовлетворённые зависимости: wine32-development:i386 : Зависит: libwine-development:i386 (= 3.6-1) но он не будет установлен E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты. Ах да. Бубунта 18.04.
tariel
16.12.19 17:00:51 MSK
Ошибка создания 32-bit префикса Wine
Раньше как-то не замечал подобную проблему, а недавно столкнулся — нужно было создать 32-битный префикс Wine в уже существующей папке (к примеру maindir) в ОС Ubuntu 64-bit, «со спокойной совестью» ввел в терминале знакомую команду
env WINEARCH=»win32″ WINEPREFIX=»$HOME/maindir» winecfg
и к моему удивлению получил в ответ
wine: WINEARCH set to win32 but ‘/home/pike/maindir’ is a 64-bit installation .
Оказывается, если каталог существует, то создать в нем 32-битный префикс Wine в 64-битной ОС Ubuntu невозможно, будет выдаваться ошибка:
wine winearch set to win32 but is a 64-bit installation (можно создать только 64-bit префикс),
т.е дефолтный Wine должен сам создавать 32-битный префикс-каталог — env WINEARCH=»win32″ WINEPREFIX=»$HOME/wineprefix» winecfg , где папка wineprefix еще не существует.
Замечено! Если использовать свою версию Wine из домашней директории, то все проходит нормально — подобных казусов не наблюдается!
Выход нашел такой, если очень нужно создать 32-bit префикс в уже существующей папке (без ее удаления), то можно поступить следующим образом: создайте в папке будущего префикса (в моем случае это в /home/user/maindir) текстовый файл с содержанием:
| WINE REGISTRY Version 2 |
| #arch=win32 |
и сохраните его как system.reg
Теперь моя команда env WINEARCH=»win32″ WINEPREFIX=»$HOME/maindir» winecfg отработала нормально.
Порядок вывода комментариев:
2 Soliton (29.04.2013 10:20)
0
Спам
err:mscoree:LoadLibraryShim error reading registry key for installroot
Не обращайте внимания, такая «бодяга» у многих пишется. Wine как правило работает отлично.
p11-kit: couldn’t load module: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so:
/usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: невозможно
открыть разделяемый объектный файл: Нет такого файла или каталога
Тоже распространенная ошибка, как правило не на что не влияет, метод устранения описан в этой ветке http://ubuntu-wine.ru/forum/5-35-1 , а можете оставить все как есть.
1 forex150 (24.04.2013 16:15)
0
Спам
Здраствуйте. Подскажите пожалуйсто почему когда я ввожу команду WINEARCH=win32 WINEPREFIX=~/.wine winecfg он пишет ошибки.
WINEARCH=win32 WINEPREFIX=~/.wine winecfg
wine: created the configuration directory ‘/home/dmin/.wine’
p11-kit: couldn’t load module: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога
fixme:storage:create_storagefile Storage share mode not implemented.
err:mscoree:LoadLibraryShim error reading registry key for installroot
err:mscoree:LoadLibraryShim error reading registry key for installroot
err:mscoree:LoadLibraryShim error reading registry key for installroot
err:mscoree:LoadLibraryShim error reading registry key for installroot
fixme:storage:create_storagefile Storage share mode not implemented.
fixme:iphlpapi:NotifyAddrChange (Handle 0x113e8d0, overlapped 0x113e8dc): stub
wine: configuration in ‘/home/dmin/.wine’ has been updated.
p11-kit: couldn’t load module: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога
Wine (Русский)
Состояние перевода: На этой странице представлен перевод статьи 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 с более надёжной службой поддержки пользователей.
- icoextract — Генерирует эскизы для исполняемых файлов Windows (.exe и .dll).
- Lutris — Игровой лончер для всех типов игр, в том числе игр Wine (с управлением префиксами), игр Linux и эмуляторов.
- PlayOnLinux — Графический префикс менеджер для Wine. Включает скрипты для помощи в установке и настройке программ.
- Proton — Иструмент совместимости для Steam на основе Wine и дополнительных компонентов. На странице ProtonDB можно найти список совместимости.
- PyWinery — Простой графический префикс менеджер для Wine.
- Q4Wine — Графический префикс менеджер для Wine. Может экспортировать темы Qt в конфигурацию Wine для лучшей интеграции.
- Bottles — Графический менеджер префиксов и запуска программ для Wine на основе GTK.
Настройка
Настройка 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 $/drive_c/windows/Fonts && for i in /usr/share/fonts/**/*.; 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.
Сглаживаение шрифтов
Хороший способ улучшить рендеринг шрифтов в Wine — включить сглаживание ClearType. Следующий скрипт включит режим «Subpixel smoothing (ClearType) RGB»:
cat /tmp/fontsmoothing REGEDIT4 [HKEY_CURRENT_USER\Control Panel\Desktop] "FontSmoothing"="2" "FontSmoothingOrientation"=dword:00000001 "FontSmoothingType"=dword:00000002 "FontSmoothingGamma"=dword:00000578 EOF WINE=$ WINEPREFIX=$ $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-installer AUR или wine-installer-git AUR (у последнего есть дополнительные зависимости) или следуйте инструкциям ниже.
Во-первых, установите любую программу 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
Если с этими настройками иконки выглядят уродливо (или не появились вовсе), то их нет среди доступных. Необходимо заменить настройки явным указанием расположения желаемых иконок. Того же можно добиться правым кликом по иконке и изменением настроек. Большой набор иконок для ярлыков можно найти в 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
Графический интерфейс можно установить с пакетом 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-bin AUR . Команда ниже активирует его для указанного префикса (по умолчанию ~/.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_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'
Неявный запуск бинарников 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
Retrieved from «https://wiki.archlinux.org/index.php?title=Wine_(Русский)&oldid=782565»
- Emulation (Русский)
- Gaming (Русский)
WINE
Wine — Wine Is Not Emulator — это свободная реализация среды ОС Windows поверх Linux (*UNIX) подсистем. Исполнение Windows-программ производится напрямую без какой-либо эмуляции и с минимальными накладными расходами.
- Официальный сайт: winehq.org
- Руководство пользователя: Wine_User’s_Guide
- Отчёты пользователей с описанием опыта запуска тех или иных Windows-программ: appdb.winehq.org
- Отчёты по запуску игр: protondb.com
Установка Wine
Wine состоит из нескольких основных и вспомогательных пакетов:
- wine — среда Wine для выполнения 64-битных программ.
- i586-wine — 32-х битная среда Wine.
- wine-common — основные утилиты среды Wine (wineboot, winecfg, wineconsole, wineserver и т.д.).
- wine-programs — вспомогательные программы (notepad, winefile, winemine).
- wine-gecko — свободная реализация Internet Explorer на основе браузерного движка Gecko.
- wine-mono — свободная реализация .NET Framework. Охватывает версии .NET, начиная с 1.x до 4.8.x.
- winetricks — скрипт, предоставляющий различные опции по управлению средой Wine. Чаще всего используется для упрощения установки несвободных компонентов Windows и ряда Windows-программ от сторонних разработчиков.
На этапе установки дистрибутива
Если во время установки дистрибутива Альт были выбраны Эмуляторы или Виртуализация и Запуск программ Windows, то Wine будет установлен автоматически (после может потребоваться установка некоторых 32-битных библиотек — см. пункт Нюансы по i586-wine):
wine wine-common i586-libnss-mdns i586-libnss-myhostname i586-xorg-dri-* wine-mono wine-gecko winetricks i586-wine i586-wine-cpcsp_proxy virtualbox
Установка вручную
Если Эмуляторы или Виртуализация и Запуск программ Windows во время установки не были выбраны, то Wine можно установить вручную (после может потребоваться установка некоторых 32-битных библиотек — см. пункт Нюансы по i586-wine):
$ su - # apt-get update # apt-get install wine-full i586-wine
cabextract libOSMesa wine wine-common wine-full wine-gecko-* wine-mono-* wine-programs winetricks i586-wine i586-*
Установка с помощью Epm
Примечание:
Epm — единая команда управления пакетами, разработанная в компании Etersoft (основная статья — Epm). Позволяет устанавливать как пакеты из репозитория ALT Linux, так и чужие пакеты (предназначенные для другой ОС на базе Linux). Для установки epm в ALT Linux:
$ su - # apt-get update # apt-get install eepm
Внимание! Установка из репозитория Десятой платформы p10 может быть неудачна, в случае возникновения ошибки выполните установку wine вручную или обновите epm из стороннего репозитория.
su - apt-get update epm play wine
С помощью скрипта Epm будут установлены все вышеперечисленные пакеты, а также выполнена установка некоторых 32-битных библиотек — см. пункт Нюансы по i586-wine).
Нюансы по i586-wine
На момент 2023 года поддержка выполнения 32-х битных программ в 64-х битной среде (Windows-on-Windows) находится на завершающем этапе разработки, но пока не используется в сборке для репозитория платформы. Поэтому всё ещё требуется отдельная установка 32-х битой среды Wine и попутного комплекта 32-х битных Linux-библиотек. Всё необходимое устанавливается при варианте установки посредством epm play wine .
В случае, когда пакет i586-wine отсутствует, при запуске 32-х битной программы будет выведено предупреждение и программа не заработает: It looks like i586-wine is missing, you should install it. As root, please execute «apt-get install i586-wine»
В случае, когда пакет i586-wine был установлен отдельно, могут потребоваться некоторые 32-х битные библиотеки (в основном 32-х битные графические драйвера). Это легко исправить выполнением следующей команды:
epm play i586-fix
Если пакет i586-wine был установлен после создания префикса, то префикс придётся удалить и пересоздать, иначе программы в нём перестанут работать и будет выведена ошибка: wine: could not load kernel32.dll, status c0000135
Пример пересоздания префикса. Команды выполняются с правами обычного пользователя. Полное удаление:
rm -r /home/$USER/.wine
Пересоздание префикса по стандартному пути /home/$USER/.wine:
wineboot -i
Основы по использованию Wine
Префиксы
Wine управляет префиксами (prefix), которые можно назвать отдельными экземплярами ОС Windows.
- Стандартный префикс располагается в /home/$USER/.wine.
- Префикс содержит в себе файлы реестра, каталоги, набор библиотек и программ, расположенных по той же структуре, как и в оригинальной Windows.

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

-
- .update-timestamp — метка времени.
- system.reg, user.reg и userdef.reg являются файлами реестра Windows.
Особенности и ограничения префиксов
- Название префикса может быть любым, но для избежания затруднений следует придерживаться следующего:
- Название префикса принято начинать с .wine. Пример: .wine_nalogul. В этом случае сразу понятно, что это Wine-префикс и что в него установлена программа Налогоплательщик ЮЛ.
- Название должно содержать только латинские буквы и арабские цифры. Из символов можно применять знак точки, расположенный в самом начале названия, что означает скрытый каталог.
- Название не должно содержать пробелы, иначе путь придётся экранировать кавычками, чтобы интерпретатор мог корректно его обработать. В противном случае можно легко столкнуться со следующей ошибкой: wine: invalid directory in WINEPREFIX: not an absolute path
Создание префиксов
Как было ранее отмечено, можно создавать собственные префиксы и не ограничиваться стандартным /home/$USER/.wine. Пример создания нового префикса (выполнять от обычного пользователя):
WINEPREFIX="/home/$USER/.wine_new" wineboot -i
- WINEPREFIX — это переменная окружения, которой требуется передать путь до каталога размещения компонентов префикса. В примере был передан путь до каталога wine_new причём он не обязательно должен существовать заранее.
- wineboot -i — утилита отвечает за создание префикса, подготовку его к работе, имитацию перезагрузки и выключения ОС Windows. Ключ «-i» инициирует создание префикса. Примечание: префикс так же будет автоматически создан при попытке его обновления (wineboot -u), конфигурирования (winecfg) и прочих действий.
По умолчанию создаются 64-х битные префиксы, причём в них могут выполняться и 32-х битные программы. Но бывают случаи, когда требуется «чистый» 32-битный префикс. Его можно создать следующим образом:
WINEARCH=win32 WINEPREFIX="/home/$USER/.wine32_new" wineboot -i
- WINEARCH — с помощью этой переменной окружения можно управлять разрядностью создаваемых префиксов. При передаче значения «win32» будет создан 32-х битный префикс.
Примечание: У ранее созданного префикса нельзя поменять разрядность.
Запуск программ
Примечание: Прямой запуск «.exe» в Альт отключен в целях безопасности. Если прямой запуск необходим, потребуется вручную настроить выполнение MIME-типа «.exe» с помощью Wine.
Алгоритм действий для запуска той или иной Windows-программы:
- Разместить исполняемый файл в корне префикса (./drive_c/программа.exe).
- Запустить: wine /home/$USER/.wine/drive_c/программа.exe
Запуск на примере клиента Steam с созданием отдельного префикса с названием .wine_steam. Команды выполняются с правами обычного пользователя. Создание префикса:
WINEPREFIX=/home/$USER/.wine_steam wineboot -i
Поместить в префикс ранее загруженный установочный файл SteamSetup.exe:
mv /home/$USER/Downloads/SteamSetup.exe /home/$USER/.wine_steam/drive_c/
Запустить исполняемый файл с указанием абсолютного пути:
WINEPREFIX=/home/$USER/.wine_steam wine /home/$USER/.wine_steam/drive_c/SteamSetup.exe
Альтернативный вариант. Wine позволяет использовать имитацию Windows-путей, где точкой отсчёта является том «C:» — корень Wine-префикса ./drive_c. Пример:
WINEPREFIX=/home/$USER/.wine_steam wine 'C:/SteamSetup.exe'
Примечание: Путь в стиле DOS-Windows следует экранировать кавычками.

После установки будет создана кнопка запуска Steam. В ней автоматически прописывается команда на запуск установленной программы из конкретного префикса, что облегчает последующий запуск. Пример команды из кнопки запуска:
env WINEPREFIX="/home/$USER/.wine_steam" wine C:\\\\users\\\\Public\\\\Desktop\\\\Steam.lnk
Видно, что запуск производится из нужного префикса и с Windows-ярлыка Steam.lnk. Можно создавать собственные кнопки запуска, чтобы каждый раз не набивать (или копировать откуда-то) команду на запуск той или иной Windows-программы.
Подобным образом производится запуск любых программ с исполняемым файлом .exe.Запуск bat-файлов — «батников»
Ранее для запуска необходимо было задействовать start, но с выходом Wine 8.0 эта опция стала применяться автоматически. Теперь достаточно запускать в обычном режиме:
WINEPREFIX=/home/$USER/.wine wine 'C:/script.bat'
Альтернативный устаревший вариант:
WINEPREFIX=/home/$USER/.wine wine start 'C:/script.bat'
Установка программы из установочного пакета msi
Ранее запуск таких пакетов отличался от запуска .exe, но ныне, начиная с Wine 8.0, запуск производится без задействования дополнительных опций.
Пример установки программы Налогоплательщик ЮЛ (версия 4.81) с созданием префикса с названием wine32nalogul Команды выполняются с правами обычного пользователя. Для этой программы желательно использовать 32-х битный префикс, причём это становится необходимым, если планируется использовать печать с двумерным штрих-кодом PDF-417. Создание 32-х битного префикса:
WINEARCH=win32 WINEPREFIX=/home/$USER/.wine32nalogul wineboot -i
Поместить в префикс ранее загруженный установочный файл nalogul481.msi
mv /home/$USER/Downloads/nalogul481.msi /home/$USER/.wine32nalogul/drive_c/
Запустить установочный пакет msi с указанием пути в стиле DOS-Windows:
WINEPREFIX=/home/$USER/.wine32nalogul wine 'C:/nalogul481.msi'
Альтернативный устаревший вариант с задействованием msiexec:
WINEPREFIX=/home/$USER/.wine32nalogul wine msiexec /i 'C:/nalogul481.msi'
Ещё один вариант — с задействованием start:
WINEPREFIX=/home/$USER/.wine32nalogul wine start 'C:/nalogul481.msi'

Использование winetricks для установки Windows-компонентов
В предыдущем разделе был рассмотрен запуск установщика «Налогоплательщик ЮЛ», но для полноценной работы программы, в связи с её специфической реализацией, (на момент 2023 года) требуются проприетарные Windows-компоненты:
Windows-компоненты удобнее всего устанавливать с помощью winetricks, который устанавливается вместе с прочими Wine-пакетами при установке посредством epm play wine .
За раз можно установить несколько Windows-компонентов, перечислив их через пробел. Пример установки с помощью winetricks:
WINEPREFIX=/home/$USER/.wine32nalogul winetricks -q msxml3 msxml4 msxml6 corefonts
- -q — «тихий» режим установки. При его использовании пропускаются диалоги «мастера установки», что избавляет от рутины. В данном случае установка может занять довольно длительное время — до пары десятков минут.
- Все перечисленные Windows-компоненты будут загружены из интернета в автоматическом режиме. Установочные файлы компонентов разместятся в home/$USER/.cache/winetricks После установки их можно удалить.
Налогоплательщик ЮЛ относится к программам, которые не могут запуститься без задействования start /unix, имитирующего файловые ассоциации Windows Explorer (файловый менеджер ОС Windows) и устраняющего проблемы с интерпретацией UNIX-путей. Команда на запуск выглядит подобным образом:
WINEPREFIX=/home/$USER/.wine32nalogul wine start /unix 'C:/Налогоплательщик ЮЛ/INPUTDOC/inputdoc.exe'
- В связи с тем, что в пути до исполняемого файла программы есть пробел, путь необходимо экранировать кавычками — ‘C:/Налогоплательщик ЮЛ/INPUTDOC/inputdoc.exe’.
- Из-за необходимости использования start /unix потребуется отредактировать команду в кнопке запуска:

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

Прямое указание рабочего каталога
Существуют программы, которым необходимо напрямую указывать рабочий каталог (working directory), иначе они не смогут найти все необходимые для запуска ресурсы, так как те находятся в каталоге уровнем выше, в то время как поиск ресурсов производится сначала в каталоге с исполняемым файлом, после в его подкаталогах рекурсивно в глубину, а затем в C:\windows. Следовательно, такие программы окажутся неработоспособными при прямом запуске. В этом случае потребуется вручную указать рабочий каталог — отправную точку для рекурсивного поиска всех нужных программе ресурсов.
Это можно осуществить двумя способами: создать кнопку запуска и указать в ней путь до рабочего каталога или прямо указать в команде на запуск. На примере игры STALKER Clear Sky рассмотрим второй способ.
- Создан префикс с названием .wine64clearsky
- Путь установки игры в префиксе: C:/Program Files (x86)/STALKER Clear Sky
- Исполняемый файл игры xrEngine.exe находится в каталоге ./STALKER Clear Sky/bin.
- Ресурсы игры находятся в каталогах:
- ./STALKER Clear Sky/levels
- ./STALKER Clear Sky/Localization
- ./STALKER Clear Sky/patches
- ./STALKER Clear Sky/resources
Отправная точка для успешного поиска ресурсов находится уровнем выше (каталог ./STALKER Clear Sky/, чем расположение исполняемого файла (./STALKER Clear Sky/bin/xrEngine.exe), тем самым при прямом выполнении игра не найдёт ресурсы:

Это решается следующим образом:
WINEPREFIX=/home/$USER/.wine64clearsky wine start /d 'C:/Program Files (x86)/STALKER Clear Sky/' ./bin/xrEngine.exe
- start /d — с опцией /d по указанному пути обозначается рабочий каталог, который станет отправной точкой в рекурсивном поиске ресурсов для запуска программы.
- С тем учётом, что рабочий каталог указан, можно указать относительный путь до исполняемого файла. В данном случае ./bin/xrEngine.exe.
Благодаря этому, программа сможет найти все необходимые для запуска ресурсы.
Установка, запуск и удаление программ в графическом режиме
winefile — файловый менеджер Wine с графическим интерфейсом, схожий по функционалу с Windows Explorer (Проводник Windows). С его помощью можно осуществлять различные операции над файлами и каталогами в префиксе, включая запуск Windows-программ.
Пример запуска файлового менеджера для префикса с названием .wine32nalogul:
WINEPREFIX=/home/$USER/.wine32nalogul wine winefile

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

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

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

Альтернативным способом открытия «Установка/удаление программ» (uninstaller) является прямой запуск. Пример:
WINEPREFIX=/home/$USER/.wine32nalogul wine uninstaller
Принудительное завершение работы сбойных программ
Бывают случаи, когда работу сбойной программы довольно неудобно завершать штатными средствами Linux, особенно в случаях, когда программа приводит к зависанию завершения работы процессов префикса: services.exe, winedevice.exe, plugplay.exe и т.д. Принудительно завершить работу всех программ в префиксе можно следующим образом:
WINEPREFIX=/home/$USER/.wine wineboot -k
Альтернативный вариант с тем же эффектом:
WINEPREFIX=/home/$USER/.wine wineserver -k
Выполнение этих команд является эквивалентом нажатия кнопки Reset, при этом будет «принудительно перезагружен» только указанный префикс, а не вся система.
Более мягким вариантом, а так же удобным способом ознакомиться со всеми активными процессами префикса, является использование штатной программы taskmgr — «Диспетчер задач». Пример запуска для префикса с названием .wine32nalogul:
WINEPREFIX=/home/$USER/.wine32nalogul wine taskmgr
Демонстрация содержимого вкладок (объединены в одну картинку):

Удаление префиксов
Самым удобным способом является удаление посредством winetricks:
WINEPREFIX=/путь/до/префикса winetricks annihilate
В этом случае будут удалены:
- Каталог префикса вместе со всем содержимым.
- Кнопки запуска и миниатюры для программ, установленных в удаляемый префикс.
Тем самым не остаётся никаких остаточных файлов.
Если по какой-то причине префикс был удалён вручную, останутся некоторые файлы, которые придётся зачистить так же вручную. Место хранения кнопок запуска:
~/.local/share/applications/wine/
Место хранения миниатюр, включая тех программ, что установлены в Wine:
~/.local/share/icons/hicolor/
Так же можно удалить ненужные Windows-установщики, загруженные winetricks при установке Windows-компонентов в префикс:
~/.cache/winetricks/
Возможности, предоставляемые Wine
Wine позволяет запускать 32- и 64-битные исполняемые файлы (PE executable), имеющие расширение .exe и предназначенные для выполнения в Windows-совместимом окружении. Wine предоставляет все необходимые для запуска программ динамические библиотеки (.dll-файлы), а также поддерживает установку и работу дополнительных компонент (библиотек), требуемых программами. Такая установка может выполняться через инструмент установки сторонних дополнений winetricks или же непосредственно инсталлятором программы.
В частности, поддерживаются такие интерфейсы как
- GDI;
- GDIPlus;
- Print;
- CryptoAPI (частично);
- Internet Explorer (частично);
- DirectX;
- видео- и аудио-кодеки;
- .NET (в реализации Mono);
- кодирование и раскодирование изображений в форматах JPEG, PNG, GIF, TIFF, BMP;
- OpenGL;
- ODBC;
- LDAP (частично);
В частности, поддерживается установка и работа следующих сторонних дополнений:
- библиотек времени выполнения (runtime) для программ, собранных в средах разработки Visual C++ версий от 2003 до 2019 включительно, а также версии 6;
- Microsoft Data Access Components (MDAC 2.7, MDAC 2.8)
- MS Jet 4.0
- Microsoft .NET версий от 1.1 до 4.8 включительно;
- .NET Core версий 2.2 и 3.0;
- Microsoft Visual FoxPro версий от 6.0 до 9.0 включительно.
Реестр в Wine
Каждый Wine-префикс имеет собственный экземпляр реестра Windows. Основные особенности:
- Реестр префикса состоит из нескольких файлов: system.reg, user.reg и userdef.reg.
- Файлы располагаются в корневом каталоге префикса. Пример: ~/.wine/
- В реестр Wine-префикса можно импортировать отдельные записи из reg-файлов, предназначенных для Windows.
- regedit — утилита с графическим интерфейсом, идентичным оригинальной программе.
- reg — утилита для манипуляций с записями в реестре через терминал.
- Файлы реестра Wine можно редактировать обычным текстовым редактором.
Пример запуска regedit для префикса с названием .wine:
WINEPREFIX=/home/$USER/.wine wine regedit

Переключение транслятора
Для работы программ, задействующих DirectX, в Wine используется специальный транслятор, который преобразует вызовы API DirectX в OpenGL или Vulkan.
Трансляция в OpenGL имеет значительные накладные расходы, что выражается в потерях до 40% производительности в отдельных случаях и до 20% в среднем. Имеет высокую совместимость со старыми видеокартами.
Транслятор на основе Vulkan более производительный, но требует относительно современного оборудования: видеокарты от 2016 года с поддержкой спецификации Vulkan 1.3. Потери редко превышают 20% и, благодаря более продвинутым качественным драйверам и подсистемам, производительность частенько несколько выше (до 10%), чем в Windows.
Кроме отмеченных трансляторов, в Wine присутствует свободная реализация GDI, который можно задействовать для правильной отрисовки графики в некоторых программах 90-х и начала 2000-х годов. К примеру, Parkan Хроника империи.
По заявлению разработчиков, в 2022 году между трансляторами был достигнут паритет по поддержке спецификаций DirectX, поэтому предпочтительно задействовать Vulkan-транслятор. При этом стоит отметить, что OpenGL-транслятор всё-таки имеет более высокую совместимость со старыми программами (по крайней мере, на момент 2023 года).
На момент 2023 года Vulkan-транслятор не используется по умолчанию и его необходимо задействовать вручную. Актуальным способом является переключение через переменную окружения WINE_D3D_CONFIG.
WINE_D3D_CONFIG='renderer=vulkan' WINEPREFIX=/home/$USER/.wine wine 'C:/Program Files (x86)/STALKER Clear Sky/STALKER Clear Sky.lnk'
- Переменной окружения WINE_D3D_CONFIG необходимо передать значение ‘renderer=vulkan’.
- Vulkan-транслятор будет задействован для конкретной программы.
Примечание: Таким же способом можно задействовать GDI — WINE_D3D_CONFIG =’renderer=gdi’
Ассоциация файлов с родными приложениями Linux
Нужна для возможности открытия документов из приложений в Wine через нативные программы в Линуксе.
Для этого создайте файл /usr/local/bin/winenative со следующим содержимым:
#!/bin/sh $1 "`wine winepath -u "$2"`"
Сделайте его исполняемым: chmod +x /usr/local/bin/winenative
Затем от пользователя запускаем редактор реестра: wine regedit . В HKEY_CLASSES_ROOT ищем ключ — pdffile для PDF-файлов, pngfile для PNG изображений и т.п., в нем будет shell > open. В open может быть ddeexec, который нужно удалить (если оставить, необходимая программа хоть и откроется, однако выскочит сообщение от Wine — Ошибка DDE.). Нам необходимо создать или изменить ключ command. Значение ключа выставляем:
"Z:\usr\local\bin\winenative" xdg-open "%1"Должно получиться так:
После этого настроенный тип файла будет открываться в программе по умолчанию в Линуксе.
Для настройки нестандартных для Linux файлов — например doc/docx — настройка немного отличается. Нужно полностью создать следующую цепочку:
HKEY_CLASSES_ROOT\docfile\shell\open\command
с аналогичным значением: «Z:\usr\local\bin\winenative» xdg-open «%1» . После этого создать ветку HKEY_CLASSES_ROOT\doc со значением docfile
Варианты Wine
В дистрибутивах ALT Linux представлено несколько вариантов Wine:
- wine — сборка Wine с добавлением патчей проекта Wine-staging и доработанного силами ALT Linux Team и компании Etersoft. Именно эта сборка является основной для дистрибутивов ALT Linux, так как имеет лучшую функциональность и поддерживается разработчиками.
- wine-stable — сборка стабильного релиза Wine c добавлением патчей проекта Wine-staging и доработанного силами ALT Linux Team и компании Etersoft. Именно эта сборка является основной для дистрибутивов ALT Linux, так как имеет лучшую функциональность и поддерживается разработчиками.
- wine-vanilla — сборка оригинального Wine от WineHQ без каких-либо изменений.
У компании Etersoft есть ещё одна — коммерческая — версия: WINE@Etersoft, которая также совместима с дистрибутивами ALT Linux (впрочем, как и с другими дистрибутивами Linux). WINE@Etersoft сертифицируется на предмет совместимости как с операционной системой, так и с приложениями, что позволяет получить поддержку и гарантии работоспособности.
Полезные команды
wine cmd # Windows terminal / execute bat batch scripts, etc. (CLI) wine control # Wines equivalent of the Windows Control panel (GUI) wine eject # Eject a disc from the specified optical drive (CLI) winepath # mangle Windows Unix paths (CLI) wine reg # registry editor (CLI) wine taskmgr # same as Windows task manager utility (GUI) wine uninstaller # global program installer / uninstaller (GUI) wine winefile # alternative Wine file manager (GUI) wine explorer # desktop (GUI)
Ссылки по теме
- Несколько архитектур в одной ОС (Arepo/Biarch)
- 32-битный OpenGL на 64-битной системе с драйвером Intel
- 32-битный OpenGL на 64-битной системе с драйвером NVIDIA