Время на прочтение
7 мин
Количество просмотров 579K
Введение
Статья посвящена Wine и всем аспектам его использования. В сети находится очень
много информации, есть различные руководства по настройке и многое другое. Я
постараюсь объединить все для того чтобы любой человек смог достичь
максимального успеха, в пределах своих способностей и конечно возможности
программы. Итак — начнем.
Wine — это отдельная реализация Windows API, а не эмулятор, как большинство
думают. Не единожды повторялось, но и здесь будет уместно. Это и делает проект
уникальным и интересным для пользователей различных систем, открывает различные
пути для реализации своих идей. Уникальность заключается в том, что с помощью
этой программы можно запускать Windows приложения в Ubuntu и в других
Linux системах, а также во FreeBSD и в Mac OS X. Правда и тут есть
свои «подводные камни». Некоторые думают что будет легко перейти с одной
системы на другую, в данном случае мы рассматриваем Windows и Linux.
Заблуждение заключается в том что люди думают что у них получиться запустить из
под Wine различный софт, к которому они привыкли и им удобно в нем работать.
Как не крути просто так ничего не бывает. Чтобы заработал наш любимый софт под
Wine нужно попотеть, перечитать кучу руководств и взвесить этот объём
информация. Конечно не совсем софтом придется «пыжиться», но готовым надо быть ко всему. Проект Wine развивается очень быстро, но до стабильной работы ему
очень далеко. Но думаю что в скором будущем весь основной софт, а также игры
будут работать на нем стабильно.
Установка Wine
Первый вопрос человека который только что перешёл на Linux (в нашем случае
Ubuntu): «Как я буду запускать программы из Windows?». Он начинает поиск на эту
тему и естественно натыкается на Wine.
Второй вопрос: «Как его поставить?». Есть два способа: Поставить из
официальных репозиториев или скомпилировать самому из исходников. Мы рассмотрим
оба варианта.
Вариант 1: Установка из репозитория.
Тут все очень просто. Идем в Приложения // Стандартные // Терминал:
sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine1.3
Ждем завершения установки…
Всё! Wine установлен и можно пробовать устанавливать игры и программы.
Вариант 2: Компилирование из исходников.
1.Скачиваем исходники с официального сайта, там они присутствуют. В моё случае
это Wine 1.3.11 (http://sourceforge.net/projects/wine/files/Source/wine-1.3.11.tar.bz2/download).
2. Распаковываем исходники.
Дальше вводим в терминале следующие команды:
переходим в директорию, в которую был распакован архив с исходными текстами:
cd wine-1.3.11/
Перед компиляцией надо включить поддержку OpenGL. Если мы этого не сделаем
приложения которым нужен OpenGL работать не будут. В терминале:
gedit tools/wineinstall
Находим строку, начинающуюся с CONFARGS=, и после вписываем в нее нужные
параметры сборки. В нашем случае строка будет выглядеть так:
CONFARGS="--with-opengl --disable-debug --disable-trace"
Получаем зависимости:
sudo apt-get install auto-apt checkinstall
sudo auto-apt -y run ./configure
Собираем:
make
Устанавливаем через создание пакета, вместо make install
sudo checkinstall
Всё. Ждем окончания установки.
Есть ещё промежуточный вариант, для джедаев на debian-based дистрибутивов. Кратко:
apt-get source wine1.3
sudo apt-get build-dep
Теперь самое интересное: скачиваем нужную версию wine с официального сайта, распаковываем, и копируем туда директорию debian из директории с исходниками оригинального пакета wine1.3. Делаем
debuild
и у нас появляется *.deb пакет для убунты/дебиана со всеми нужными патчами для дистрибутива, почти как из официального репозитория, но только новая версия. К тому же её ещё потом можно спокойно удалить так же через apt-get.
Рассмотрим плюсы и минусы каждого из вариантов.
Вариант 1.
Плюсы:
1. За нас уже все собрано и пыжиться не надо, все уже готово к употреблению.
Минусы:
1. Мы не сможем применить патч, например для улучшения работы какой нибудь игрушки.
2. Не стабильная работа на некоторых видеокартах.
Вариант 2.
Плюсы:
1. Возможность применить патчи для улучшения работы
2. Стабильная работа с не стабильными драйверами видеокарт.
Минусы:
1. Нет меню в Приложениях, что не удобно. Приходиться все делать из консоли,
выходить в настройки Wine например.
2. Процесс установки слишком долгий, зависит от мощности вашего компьютера.
1. Нет меню в Приложениях, что не удобно. Приходиться все делать из консоли, выходить в настройки Wine например.»
Можно самому добавить через Система — Параметры — Главное меню
Я отдаю предпочтение второму варианту. Wine установленный таким образом работает
лучше, чем установленный из репозиториев. Но это лишь мое маленькое ИМХО.
Установка программ и игр
Сперва мы идем на appdb.winehq.org Сверху, в поисковике вбиваем
название игры или программы и смотрим что там написано. Обычно там описаны
тесты на различных системах, рекомендации для стабильной работы и многое другое.
Если программа работает без проблем, значит с чистой душой её устанавливаем
простым кликом. Если это какая нибудь серьёзная игра или программа и без
шаманства с бубном не обойтись — значит надо создавать отдельный префикс* для
наших танцев. * Все файлы вайна хранятся в префиксе, или ещё называемом бутылкой (по анологии с вином/wine). Там внутри этой бутылки имеются все файлы диска C, реестр, индивидуальные настройки и так далее.
Таких бутылок может быть сколько угодно.
Просто может быть какой-то софт, который ведёт себя очень капризно под вайном и для него нужны какие-то костыли, которые будут мешать нормальной работе других приложений вайна. Тогда просто этот софт ставим в отдельную бутылку (префикс) и любые настройки не будут влиять на другие программы.
Когда вайн запускается в первый раз без указанного префикса, используется ~/.wine. Если префикс не существует вайн создаст его и наполнит дефолтным содержимым создаст и наполнит файлами каталоги C:\windows, C:\Program Files, C:\users. Плюс будет создан чистый реестр.
Идем в наш домашний каталог и создаем новую директорию. Например .wine2.
Дальше идем в терминал и вводим:
WINEPREFIX="/home/username/.wine2/" winecfg
Всё. Отдельный префикс создан. Там хранятся различные конфигурации реестра и сами программы.
Установку программы также производим через консоль.
WINEPREFIX="/home/username/.wine2/" wine /media/DVD/setup.exe
Идет процесс установки и самое главное в отдельный префикс.
Потом мы запускаем уже установленную программу, также из консоли и смотрим вывод.
В выводе могут быть ошибки, о том что нет нужных компонентов и библиотек. В
установке недостающих компонентов нам поможет winetricks (см. ниже)
Что это дает? Это дает стабильную работу приложений в своем префиксе, если
масса программ будет работать в одной префиксе, он рано или поздно засориться
что приведет к сбою других программ. Поэтому нужно использовать отдельные
префиксы, если не хотите все настраивать по много раз.
Winetricks
В правильной настройке префикса нам поможет winetricks.
Winetricks — это скрипт, который устанавливает различные компоненты, которые
требуются для работы приложения, например DirectX, Vcredist и многое другое.
Как это скрипт работает? Он скачивает библиотеки и компоненты с
Microsoft-овских ресурсов. Именно так, и не как по другому. Зачем этот скрипт
нужен? Это очень упрощает работу с Wine-ом. Без скрипта мы бы сами лазили и
искали нужные компоненты, а тут уже все сделано, надо только поставить галочку
и нажать «Установить» Также этот скрипт помогает редактировать реестр,
вписывать туда различные ключи. И помимо этого в winetricks есть много настроек
и функций.
Для ознакомления с ним просто введите в терминале winetricks
Редактирование реестра
В терминале вводим:
regedit
Мы в реестре. Редактировать нам ничего не надо, мы будет только добавлять.
Идем в HKEY_CURRENT_USER/Software/Wine/Direct3D.
Если каталога Direct3D нет, то не отчаиваемся. Я это пишу чтобы читатель понял
где-то надо редактировать или добавлять.
В терминале:
winetricks ddr=opengl orm=fbo glsl=disabled videomemorysize=1024
(1024 меняете на свое)
Все эти параметры появиться в реестре. Это можно посмотреть в папке указанной выше.
Что это дает? Это улучшает производительность в играх, скорость и вообще игры
работают от этого лучше, но это только для игр.
PlayOnLinux
Также существует PlayOnLinux. Это отдельная программа, которая использует Wine,
но там более все автоматизированно и настроено. Программа сама скачает нужный
Wine, установит компоненты и создаст отдельный префикс. Но это не значит что
все будет идеально работать. Может вообще не работать. Так что я отдаю свое
предпочтение обычному Wine, ручной настройке и работе собственного мозга, а не
автоматизированной программе.
Плюсы:
Все автоматизированно и нам по сути делать ничего не надо.
Можно держать несколько версий Wine и применять их для различных префиксов.
Программа сама создает префиксы.
Минусы:
Все что делает программа, устанавливает и скачивает предугадать невозможно.
Все что делает программа можно сделать самому, ручками, это + к знаниям человека.
Программа «Робот» никогда не сравнится с человеческим мозгом.
Монтирование образов CD/DVD-дисков
В Windows есть для этого утилита под названием Daemon-Tools. Это очень удобная
и не заменимая утилита. У человека возникает вопрос: Есть ли аналог этой
чудо-утилиты? Ответ: Есть и на много лучше Windows утилиты. Называется она
Cdemu. Для её установки нам требуется ввести всего лишь три команды:
sudo add-apt-repository ppa:cdemu/ppa
sudo apt-get update
sudo apt-get install cdemu-daemon cdemu-client gcdemu
Добавляем аплет на панель, указываем путь к образу и радуемся жизни. Не каких
проблем не будет и Wine будет отлично определять образ. Если аплета не находим не торопитесь перезагружаться.
В терминале вводим команды:
sudo service cdemu-daemon start
Если сервис не стартует при старте системы («The daemon is configured not to start at system startup»), можно исправить так:
sudo update-rc.d cdemu-daemon enable
Запуск игр в отдельном Х-сервере
Этому можно посветить целую книгу, но я остановился на одном способе, которым всегда пользуюсь:
Переходим в виртуальный терминал:
Ctrl + Alt + F1
login: ******
password: ******
Запускаем вручную новую копию X-сервера:
xinit -- :2
wine путь/папке/c/игрой/game.exe
Прирост от этого не большой, но лично мне этого хватает. Ещё раз повторю:
способов запуска в отдельном х-сервере много и каждый человек волен сам выбирать.
Заключение
Все эти советы, азы, которые должен знать каждый человек который хочет
использовать Wine для достижения своих целей. Все остальное в ваших руках. Если
вы хотите достичь цели не смотря ни на что, а надежда уже уходит, не
отчаивайтесь никогда, ибо решение может находиться у вас «перед носом». Усидеть
на двух стульях возможно, но для этого нужно желание и стальные нервы. Желание
— тысяча возможностей, не желание — тысяча причин.
Данный материал написан для «Первого конкурса русскоязычных статей для ОС
Ubuntu» (konkurs.ubuntu.ru)
Автор статьи Владимир Качармин aka rootboot
Контакты: Skype root.boot2, email verda.info@gmail.com
1.1.4. ������� �����
������� ��������� � ������� Wine ����� ���� ���������� ��������� �������:
- ��������� �� �������� Wine
Downloads � ���������� ��������� ��� ������� � ����� ��������� Wine. ��� ���������� ��� ����������� ������������ ���������������� ������� rpm �����. - ��������� Wine, ��������� ������� winecfg. � ����������� ������� Wine ������ ����� �������� � ������.
- ����� ��������� ���� ���������, ��������� �������� �������� Wine, ������� �� �������� �������� Windows 3.1, ��������� ������� wine winefile.
- ��������� Wine ��� ������ ������� wine filespec/appname.exe
- ������ �������, ������� �� ���������, ����� ������� ��������� �����-���� ���������. ������ ���-�� �����: wine /media/cdrom/setup.exe, ��� ����� ��������.
1.2. ��� ����� Wine
1.2.1 Windows � ������
��������� ��������� ������� ��� ��������� ������������ ������, � ����������� �� ��� �� ����� �������� �� ��������, ��� ������� ��� �� �������������. ��������� ��� Windows, �������� �� ������ �������� ��� ������, ��� ��� �������� ����������, «�� ��������» �������, ���� ��� �� «����������» ������ Windows. ����� �����, ������ ��������� �� ���������� ��� �� Windows, ������ ��� Windows ���������� ������ � ���������������� ��� �� ����������.
��� ����, ��� ������ ������������ Windows � ������ ����������� ������, ����� �������� ������������ ����� ��������������� ��������. ������ �������� �������� ���������� � Windows � ������ �� ���� � ��� �� ���������, ��� �������� �������� «������� ��������». ����� ����� Windows ���������, ������������ ��������� ��������� � Windows � ��������� ���������; ����� ����� ������ ���������, ������������ ������������� ��������� � ������. ��� �������� ������ �������� — �� ������ ������������ �������� ������� ���������� ������ ������������ ������, �� � ��������� � ������ �������� �� ����� �������� ������������. ����� ����, ������� Windows � ����� ������������ ������ �� ���������� ������� �������������� ���������: ����������� ����������� ������, ��������� ��������� ������ �������� �����, Windows «�� �����» ����������� �������� �������� ������, �������� �������������� ���������� ����� ������������� ���������.
1.2.2. ��� ����� Wine, � ��� �� ��� �������?
Wine ��������� ��������� Windows ��������� �� ����� �����-�������� ������������ ��������, �������� ������.
� ����� ����, Wine ������������ ����� ���������� ����������
���������� ���������������� ���������� (����. Application Programming Interface, API)
Windows, ���������� ������� ����� ����� Windows ���������� � ������. �������� Wine ���������� �������������; ����� Windows ��������� �������� ��������� ����� ��������, ������� � ����� ��������� ��� ������, Wine «���������» ���������� ���� ��������� �� ����, �������� ��� ������� ������. ��������, ���� ��������� ������ ������� ������� �������� ������, ��� ��������� ����, �� Wine ����������� Windows ���������� � �� ������ ���������� � ����� ������� �������� ���������, ��������� ����������� �������� X11.
���� ������� ������ � ��������� ���� Windows ���������, Wine ����� ����� ���� ������������ ��� �������������� ��������� � ������, ������� ������ �������� ������� �����. ��� ������� ����� ������������������� ���������, Wine ��� ����� ���������, ������ � ���������� Windows �������� ����� ������ ������ ���������� ����� �����������. �������� Winelib User Guide ��� ���������� � ���� �����.
1.2.3. �������� Wine
� �������� ������ �������� Wine ��������� ����������� ����� �������� � ����������� ����� ��������, ������� ����� ���������. ��� ��������� ������ ���� �������:
- ��������� ������� Win32 (Win 95/98, NT/2000/XP), Win16 (Win 3.1) � DOS ��������
- �������������� ����������� ������������� DLL ������ �� ��������
������������ (�����, ����� ������ � ������ Windows) - ����������� �������, ������������ �� X11, ����������� ��������� ������ �� ����� � ��������, ��� � �� ��������� �������
- ������� ���� ������ ����, ���� ����������� ����
- ��������� DirectX ��� ���
- �������� ��������� ��� ��������� �������� ���������, ������� OSS � ALSA
- ��������� �������������� ��������� �����
- ������: �������� ���������� PostScript (psdrv) ��� ������������ ��������� ������� PostScript ��� �����
- �����, ��������� ����������������� �����
- ��������� �������� ��������� Winsock TCP/IP
- ��������� ��� ��������, ������� CD ��������, � ������ ���������, ������������ ��������� ASPI (SCSI)
- ����������� ��������� ������� � ����������� ������
- ������������������� ������� �������, ���������, ������������ ������� ��������� � ���������� ��� �������� ������ ��������������
1.3. ������ Wine
1.3.1. Wine �� Wine HQ
���������� �����������: ��� � ������� ��� «HQ» ������� � ���� HeadQuarters (����-��������).
Wine �������� �������� � ��������� ��������� ������, � � ��� ���� ����������� ������� ����� ��������� ������.
����������� ������ Wine ���������� � ���� ������������� ������� (�������� ������ � �����), � ����� ���� ������� � ���������, ��� � ���� ��������������� ��������� �����, ��� � � ���� ��������� ����, �������� � ����������. ����� ����, �� ������ ���������� ������, ����������� � ����������, ��������� �������� �� �������� ����� � ����������� Git. ��������� � ��������� �����, Getting Wine, ��� ���������� ��������.
1.3.2. ������ ������ Wine
���������� ��������� ��������, ��� ��� ����� ������� ���� ������������� �� ����������� ������� ���� Wine. ��������� �� ��� �������� ������������� ����������, �������������� ����������, ������� ��������������� ������ Wine.
��� �������� �������� ���������� � ���������� �� ����������� ������ Wine, ��������� ������ �������������, ���������� ������������, � ������������ ���������. ���� ��� ��������� �������� ����, ����� ���� ��� ����� ���������� �������� ��������.
��� ���� ����������� ������ ����:
CodeWeavers CrossOver Office
CrossOver Office ��������� ��� ���������� ���� ������� Windows ���������� � ����� ������, ��� ���� �� ��������� �������� ��������� (Microsoft Operating System license).CrossOver ����� ������� � ������������� ���������, ����������� ������������� Windows ���������� ����� � ������.
������ ���������������: ������������; ��������������� ������ ������������������� ������������.
CodeWeavers CrossOver Office Server Edition
CrossOver Office Server Edition ��������� ��� ��������� ���� ������� Windows ���������� � �������������� ������-������������ ������� ��������� ��� ��������, ��� ������������� ����������� �������� ��������� (Microsoft Operating System licenses) ��� ������ ���������� ������. CrossOver Office Server Edition ��������� ��� ������������� ������� ��������� ����� ������������ �������������, � ��� ��� � ������ �������.
1.4. ������ ������� ������� ���� �� ����������
���������� ��������� �������� ��������� ���������, ����� Wine. ���� �� ����������� ������������ Wine ��� ������� �����-���� ���������, �� ����� �������� ���, ����� �������� � ������ ������� � ��������.
1.4.1. ����������� ������������ ����������
������ ������������� ����������� Windows ���������� ��� ������ Wine, �����
������ ����� ������ ���������. ��������� Windows ����������, ����� ��� �����-������, �������� ����������� ������ �����������, ��������� ����������� ������������� ������, ����� ����� ������� ��������� �����������. ������ ����, ������������ ����� Windows �������� ���� ����� ����������� � ������, ��� ������ �������� �� Wine, �� ����� Windows.
1.4.2. ������ ������������ �������
�������� ��������� ������ ��������� Windows ���������� — ��� ��������� ��� ��� Windows. ������ ����������� ������������, ��������� ��������, �������� �������������, ������������� ������������� �����, ����� ��������� ��� �����������. ������ ������� ��� ������� Wine.
����� ����������� ������������ ReactOS, ������� �������� ������ ��������� (� ��������� ������) ������������� Windows. ReactOS �������� ������� ������ � �������� Wine, �, ������ ����, ����� ��������� ���������� Windows ��� ������, ��� ������������ ��������� �� ��� ����� ReactOS. ����� ����, ReactOS ���������� ������������� � ������� ��������� Windows, ��� ��������� ������������ «������» ��� �������������� ������ ���������.
1.4.3. ����������� ������
������ ���� ����� ������������� ����� ������������ ������� �� ���� ������, �����, ������ �����, ��������� ����������� ������ �� ����������� ������, � ���������� ����� ������������ ������� �� ���. ����� �������, �� ������� ������������ �������� ������, � � �� �� �����, � ����������� ������, ������������ Windows �� ����� ��� �����������, ������������ � �� ����� � ��� �� «������». ����������� ������ ��������� ��� ������������� � ��������� �� ������ ��������� ������ Windows, �� ����� � ��� �� ������������, �� ����� ������ ������������ �������, ������� ReactOS.
������������ ��������� ��������� ����� ����������� �����, ��������� ���� ����� ����������� «������» x86 �� ���� ����������. �� ����� �� ���������� ����������� ������� Bochs � QEMU, ��������� ���������� ��������� Windows � ReactOS. ������, ������������ ����������� ������ �������� VMware � ��������������� VirtualPC.
� ������ � ������������ �������� ���� ������������ ����������. � ������� �� Wine, ��� ��������� �������� �����������, ��� ��� ��� ������ � ���� ��������� ������ ��������, ������� ����� ���� ������ �������. ����� ����, ������ ���������� ������ ����������� ������, �� ��������� ��������� ������������� ���������� � ������� ���������. ��������, �� ������ ����� ������ ���������� ���� Windows, ��� ������ ���������� Windows ����� ������� ������, � �� ���� ����������, ��� �������� Windows ����� ������������ ������ ������ ����������� ������.
Состояние перевода: На этой странице представлен перевод статьи 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
- 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
- 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-приложений. См. это и это сообщения почтовой рассылки 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_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
Затем переключитесь в другую виртуальную консоль и запустите оконный менеджер или окружение рабочего стола (или прото читайте дальше)…
Чтобы теперь запускать 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
Загрузить PDF
Загрузить PDF
Из этой статьи вы узнаете, как установить и запустить Wine на компьютере с Linux. Wine — это программа, которая позволяет запускать программы для Windows на компьютере под управлением другой (не Windows) операционной системы.
-
1
Откройте терминал. Выберите «Терминал» в системном меню или в списке установленных программ.
- В большинстве дистрибутивов Linux можно нажать Ctrl+Alt+T, чтобы открыть терминал.
- В некоторых дистрибутивах Linux строка терминала находится в верхней части экрана.
-
2
Активируйте 32-разрядную архитектуру. Если на компьютере установлен 64-разрядный процессор, активируйте 32-разрядный режим. Для этого:
- введите
sudo dpkg --add-architecture i386
в терминале и нажмите ↵ Enter; - введите пароль администратора и нажмите ↵ Enter.
- введите
-
3
Свяжите загрузчик компьютера с веб-сайтом Wine. Это позволит компьютеру найти правильные файлы для загрузки. Для этого:
- введите
wget -nc https://dl.winehq.org/wine-builds/Release.key
и нажмите ↵ Enter; - введите
sudo apt-key add Release.key
и нажмите ↵ Enter; - введите пароль администратора.
- введите
-
4
-
5
Обновите загруженные пакеты. Введите
sudo apt-get update
и нажмите ↵ Enter. -
6
Выберите загрузку. По состоянию на март 2018 года стабильную версию Wine можно загрузить, если ввести
sudo apt-get install --install-recommends winehq-stable
и нажать ↵ Enter.[1]
- Возможно, будущие версии Wine будут поддерживать несколько разных типов стабильной загрузки.
-
7
Подтвердите загрузку. Введите y и нажмите ↵ Enter, а затем введите пароль администратора (если будет предложено). Начнется загрузка и установка Wine на компьютере.
-
8
Подождите, пока Wine загрузится и установится. На это уйдет 10 минут.
Реклама
-
1
Создайте домашний каталог Windows. Введите
winecfg
, нажмите ↵ Enter, а затем найдите подтверждающее сообщение «created the configuration directory ‘home/name/.wine» (создан каталог конфигурации home/name/.wine).- Если вам предлагается установить какие-либо недостающие пакеты, нажмите «Установить» и дождитесь, когда пакеты установятся.
-
2
Выберите версию Windows. Откройте меню «Версия Windows» внизу окна «Конфигурация Wine», а затем выберите версию Windows (например, «Windows 7»), которую вы хотите использовать.
- Если данная опция неактивна, сначала нажмите на вкладку «Приложения» в верхней части окна.
-
3
Нажмите Применить. Эта кнопка находится в нижней части окна. Настройки будут сохранены.
-
4
Щелкните по OK. Эта кнопка находится в нижней части окна. Окно закроется.
-
5
Загрузите программу для Windows в формате EXE. Найдите EXE-файл нужной программы (например, 7-zip) и скачайте его. Теперь можно установить программу.
- На веб-сайте Wine можно просмотреть полный список программ, совместимых с Wine.
Реклама
-
1
Откройте папку «Downloads». Вы найдете ее в папке «Home». Также папку «Downloads» можно открыть из меню «Приложения».
-
2
Найдите загруженный EXE-файл. Для этого прокрутите содержимое папки «Downloads».
-
3
Щелкните по файлу правой кнопкой мыши. Откроется выпадающее меню.
-
4
Нажмите Открыть с помощью Wine. Эта опция находится в верхней части меню. Откроется окно установки.
-
5
Щелкните по Установить. Эта опция находится внизу окна установки. Запустится установка программы на компьютер.
- Чтобы установить некоторые программы, нужно ввести дополнительные данные.
- Чтобы изменить папку, в которую будет установлена программа, нажмите «⋯» в правой части окна, а затем выберите другую папку на компьютере.
-
6
Щелкните по Закрыть, когда появится запрос. Эта опция станет доступной, когда программа устновится.
-
7
Запустите программу. Сделайте это в разделе «Приложения» системного меню.
Реклама
Советы
- Также можно установить пользовательский интерфейс Wine под названием PlayOnLinux, который позволяет устанавливать, удалять и получать доступ к программам Wine. Для этого откройте терминал, когда установите Wine, введите
sudo apt install playonlinux
, введите пароль и подтвердите загрузку, введя y. - Регулярно проверяйте сайт Wine на наличие обновлений.
Реклама
Предупреждения
- Wine является довольно совершенной программой, но в ней, как правило, нельзя запустить игры и мощные программы с нормальной частотой кадров.
Реклама
Об этой статье
Эту страницу просматривали 76 221 раз.
Была ли эта статья полезной?
О 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.
- По умолчанию создаются 64-х битные префиксы.
- Компоненты эталонного префикса, из которого создаются все прочие создаваемые пользователем префиксы, находятся в /usr/lib64/wine/x86_64-windows/.
- Wine-префиксы на жаргоне называют «бутылками».
Особенности и ограничения префиксов
- Название префикса может быть любым, но для избежания затруднений следует придерживаться следующего:
- Название префикса принято начинать с .wine. Пример: .wine_nalogul. В этом случае сразу понятно, что это Wine-префикс и что в него установлена программа Налогоплательщик ЮЛ.
- Название должно содержать только латинские буквы и арабские цифры. Из символов можно применять знак точки, расположенный в самом начале названия, что означает скрытый каталог.
- Название не должно содержать пробелы, иначе путь придётся экранировать кавычками, чтобы интерпретатор мог корректно его обработать. В противном случае можно легко столкнуться со следующей ошибкой: wine: invalid directory in WINEPREFIX: not an absolute path
- Можно создавать префиксы в любых желаемых каталогах, принадлежащих пользователю.
- Ограничений по количеству префиксов нет.
- Категорически недопустимо создание префиксов с правами суперпользователя. Это крайне небезопасно — программы в префиксе получают доступ ко всем файлам системы. Так же обычный пользователь не сможет взаимодействовать с префиксом, так как им будет владеть суперпользователь.
- Wine поддерживает одновременную работу множества Windows-программ, запущенных в одном или нескольких префиксах.
- Не смотря на то, что Wine позволяет запускать исполняемые файлы Windows-программ из любого места пространства пользователя, правильнее это делать, разместив исполняемый файл внутри префикса. Оптимальным вариантом будет размещение в его корневом каталоге: home/$USER/.wine/drive_c. Такой подход связан с тем, что некоторые Windows-программы становятся неработоспособными, если расположены вне пространства префикса. Поэтому лучше предупредить возникновение подобных проблем и располагать исполняемые файлы внутри префикса.
- Крайней нежелательно размещать префикс на разделе с файловой системой NTFS (основная файловая система OC Windows). Данная файловая система не поддерживает систему прав и атрибутов Linux, что приведёт к проблемам с запуском программ.
- НЕДОПУСТИМО устанавливать в префикс Windows-драйвера для видеокарт, переферийных устройств, звуковых карт и подобного оборудования. Потенциально это может привести к сбою устройства, а в случае таких устройств, как мышь и клавиатура — полной неработоспособности.
- Wine-префикс не предоставляет существенной изоляции Windows-процессов от пространства Linux-пользователя, поэтому не стоит пытаться запускать вредоносные программы для Windows, так как потенциально они способны нанести вред Linux-системе. К примеру, запущенный в префиксе шифровальщик может зашифровать не только префикс, но и выйти за его пределы, зашифровав все каталоги и файлы, принадлежащие Linux-пользователю, так как все процессы, запущенные в префиксе, выполняются с правами пользователя.
- Настоятельно не рекомендуется устанавливать всё в один префикс, оптимальнее создавать новый под каждую программу. Это особенно критично, если для работы той или иной программы требуется установить несвободный Windows-компонент. В таком случае может получиться так, что компонент, улучшающий работоспособность одной программы, будет приводить к сбоям других программ, что сильно усложнит отладку и выяснение причин сбоев. В свою очередь, использование отдельных префиксов для каждой программы, требующей установку несвободных Windows-компонентов, позволит полностью избежать подобных проблем.
- Префиксы можно свободно перемещать и копировать, что удобно для создания резервных копий подготовленных под ту или иную задачу экземпляров.
Создание префиксов
Как было ранее отмечено, можно создавать собственные префиксы и не ограничиваться стандартным /home/$USER/.wine. Пример создания нового префикса (выполнять от обычного пользователя):
WINEPREFIX="/home/$USER/.wine_new" wineboot -i
Пояснения:
- WINEPREFIX — это переменная окружения, которой требуется передать путь до каталога размещения компонентов префикса. В примере был передан путь до каталога wine_new причём он не обязательно должен существовать заранее.
- wineboot -i — утилита отвечает за создание префикса, подготовку его к работе, имитацию перезагрузки и выключения ОС Windows. Ключ «-i» инициирует создание префикса. Примечание: префикс так же будет автоматически создан при попытке его обновления (wineboot -u), конфигурирования (winecfg) и прочих действий.
По умолчанию создаются 64-х битные префиксы, причём в них могут выполняться и 32-х битные программы. Но бывают случаи, когда требуется «чистый» 32-битный префикс. Его можно создать следующим образом:
WINEARCH=win32 WINEPREFIX="/home/$USER/.wine32_new" wineboot -i
Пояснения:
- WINEARCH — с помощью этой переменной окружения можно управлять разрядностью создаваемых префиксов. При передаче значения «win32» будет создан 32-х битный префикс.
Примечание: У ранее созданного префикса нельзя поменять разрядность.
Запуск программ
Примечание: Прямой запуск «.exe» в Альт отключен в целях безопасности. Если прямой запуск необходим, потребуется вручную настроить выполнение MIME-типа «.exe» с помощью Wine.
Алгоритм действий для запуска той или иной Windows-программы:
- Разместить исполняемый файл в корне префикса (./drive_c/программа.exe).
- Запустить: wine /home/$USER/.wine/drive_c/программа.exe
- Если не запускается, ознакомиться с историями успешного запуска на appdb.winehq.org и на altlinux.org.
- По необходимости с помощью winetricks установить необходимые проприетарные Windows-компоненты (С++ redistributable, .NET Framework, Microsoft Media Foundation и т.д.).
Запуск на примере клиента Steam с созданием отдельного префикса с названием .wine_steam. Команды выполняются с правами обычного пользователя. Создание префикса:
WINEPREFIX=/home/$USER/.wine_steam wineboot -i
Поместить в префикс ранее загруженный установочный файл SteamSetup.exe:
mv /home/$USER/Downloads/SteamSetup.exe /home/$USER/.wine_steam/drive_c/
Запустить исполняемый файл с указанием абсолютного пути:
WINEPREFIX=/home/$USER/.wine_steam wine /home/$USER/.wine_steam/drive_c/SteamSetup.exe
Альтернативный вариант. Wine позволяет использовать имитацию Windows-путей, где точкой отсчёта является том «C:» — корень Wine-префикса ./drive_c. Пример:
WINEPREFIX=/home/$USER/.wine_steam wine 'C:/SteamSetup.exe'
Примечание: Путь в стиле DOS-Windows следует экранировать кавычками.
Результат:
После установки будет создана кнопка запуска 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-компоненты:
- msxml3
- msxml4
- msxml6
- corefonts
Windows-компоненты удобнее всего устанавливать с помощью winetricks, который устанавливается вместе с прочими Wine-пакетами при установке посредством epm play wine.
За раз можно установить несколько Windows-компонентов, перечислив их через пробел. Пример установки с помощью winetricks:
WINEPREFIX=/home/$USER/.wine32nalogul winetricks -q msxml3 msxml4 msxml6 corefonts
Пояснения:
- -q — «тихий» режим установки. При его использовании пропускаются диалоги «мастера установки», что избавляет от рутины. В данном случае установка может занять довольно длительное время — до пары десятков минут.
- Все перечисленные Windows-компоненты будут загружены из интернета в автоматическом режиме. Установочные файлы компонентов разместятся в home/$USER/.cache/winetricks После установки их можно удалить.
Налогоплательщик ЮЛ относится к программам, которые не могут запуститься без задействования start /unix, имитирующего файловые ассоциации Windows Explorer (файловый менеджер ОС Windows) и устраняющего проблемы с интерпретацией UNIX-путей. Команда на запуск выглядит подобным образом:
WINEPREFIX=/home/$USER/.wine32nalogul wine start /unix 'C:/Налогоплательщик ЮЛ/INPUTDOC/inputdoc.exe'
Пояснения:
- В связи с тем, что в пути до исполняемого файла программы есть пробел, путь необходимо экранировать кавычками — ‘C:/Налогоплательщик ЮЛ/INPUTDOC/inputdoc.exe’.
- Из-за необходимости использования start /unix потребуется отредактировать команду в кнопке запуска:
- Из-за наличия пробела в пути, там же в настройках кнопки запуска, необходимо экранировать кавычками путь в строке «Рабочий каталог».
Результат запуска «Налогоплательщик ЮЛ»:
Прямое указание рабочего каталога
Существуют программы, которым необходимо напрямую указывать рабочий каталог (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-префикса аналогична Windows.
- В реестре хранятся различные настройки среды префикса.
- Дерево реестра из оригинальной ОС Windows не совместимо с реестром Wine и наоборот.
- В реестр Wine-префикса можно импортировать отдельные записи из reg-файлов, предназначенных для Windows.
- В Wine реализованы стандартные Windows-утилиты для работы с реестром.
- regedit — утилита с графическим интерфейсом, идентичным оригинальной программе.
- reg — утилита для манипуляций с записями в реестре через терминал.
- Файлы реестра Wine можно редактировать обычным текстовым редактором.
- Ключи реестра 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
- Описание WINE@Etersoft
- Установка WINE@Etersoft на 64-битные ОС
- Документация по WINE@Etersoft на русском языке
- Q4Wine
- Ассоциация файлов с родными приложениями Linux: [1], [2]
- Ярлычки программ