Найти тему
Дюк Юсупов

Софт для Linux: Эмуляторы. Часть 1

Оглавление

Эта статья из цикла "Линукс обычного пользователя". Не хотелось очень сильно увеличивать объём предыдущей статьи на тему домашнего Linux, поэтому часть про Linux и игры получилась несколько незаконченной и даже обрезанной в части возможностей Steam. Ну это ничего, дело поправимое, я всё равно заранее решил рассказать про эмуляцию в Linux в отдельном материале. И вот оно.

Wine Is Not an Emulator

Начнём тему эмуляторов с Wine. Хотя многие скажут, что это не эмулятор и даже в названии это отражено, но я всё-таки с такой позицией не могу полностью согласиться. Да, Wine не является полноценным эмулятором операционной системы, как те же виртуальные машины (например, VM VirtualBox от Oracle). Однако, он эмулирует вызовы библиотек Windows, что позволяет запускать приложения (16, 32 и 64-битные) написанные собственно для Windows и, которые обычно под Linux запустить нельзя (кстати, Wine и для Windows есть - с помощью него можно запускать какие-то совсем устаревшие программы, которые в современных версиях Windows уже не работают). Ну и уж если Wine эмулирует что-то, чтобы запустить то, что запустить обычно нельзя - ну значит это эмулятор. Да, такой вот недоэмулятор ОС, зато работает непосредственно в Linux, без необходимости выделять отдельное место на диске под другую ОС или под виртуальный диск для полноценной виртуальной машины. Идея хорошая и реализация неплохая. Есть, конечно же, и нюансы связанные с самой этой реализацией, но поскольку это сам по себе костыль, то и придираться особо не будем. Главное, что есть возможность запустить что-то, что вам супер-пупер необходимо, но есть только для Windows.

С установкой Wine в Linux Mint не всё хорошо и просто, т.е. поставить его как большинство программ из менеджера программ не удастся - это просто невозможно сделать:

-2

И придётся идти на сайт Wine, чтобы узнать, как его можно установить. Там мы откроем страницу загрузки и на этом наши приключения только начнутся: далее мы ещё выберем для какой версии Linux нам это надо - для Linux Mint надо выбрать Ubuntu. А дальше надо выполнить определённые и привычные действия для Ubuntu или Linux Mint (далее приведены действия для Linux Mint 19).

Сначала надо разрешить 32-битную архитектуру приложений на 64-битных системах, у кого это ещё не включено:

sudo dpkg --add-architecture i386

Потом установить ключи репозитория для Wine:

wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key

Ну и подключить собственно сам репозиторий:

sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'
sudo apt update

И наконец-то запустить установку Wine:

sudo apt install --install-recommends winehq-stable

Это всё можно сделать и с помощью GUI программы Synaptic, настроив для этого предварительно источники приложений (скачав предварительно ключ по вышеуказанному адресу):

Однако, при попытке установить Wine мы получим ошибку: не хватает библиотеки FAudio и она не устанавливается из репозитория. Придётся самостоятельно качать эту библиотеку по адресу, указанному на странице форума Wine. Для Linux Mint нам надо скачать два файла .deb: для архитектуры i386 и amd64, и установить их обычным способом:

И только после этого установка пойдёт:

Будет загружена куча модулей - и обойдётся это нам в 1 гигабайт жёсткого диска. Немало, немало... При этом по логике создателей пакета не надо "загаживать" меню системы дополнительными записями в стиле "Wine был тут", поэтому всё придётся делать через командную строку, либо вручную добавлять в меню нужные команды. И ведь обычному пользователю надо ещё догадаться, что конфигурацию Wine можно изменить с помощью команды winecfg, ведь в меню её нет:

Ну и при запуске любого исполняемого файла для Windows (exe, com, msi и т.д.) управление будет перехвачено Wine и, если это установочный файл, то будет произведена установка в профиль Wine по умолчанию, а если просто исполняемый - то он будет запущен. И вот пример запущенного файлового менеджера Total Commander:

-7

Что приятно, так это то, что диски в Wine уже подмонтированы и кроме своего основного каталога .wine в папке пользователя (Диск C) можно видеть каталоги пользователя Linux (документы, рисунки, музыка, видео) подмонтированные в папке пользователя в Windows, и корневую папку Linux, подключенную как диск Z - что открывает широкие возможности по применению ПО (почему бы и не использовать свой любимый двухоконный файловый менеджер, раз в Linux с ними такая беда?).

-8

Самое главное, для чего и стоит устанавливать "чистый" Wine, а не другие пакеты, основанные на нём и заточенные под конкретные нужды, что тут у пользователя будет развязаны руки в плане разных настроек. В частности, одним из преимуществ использования "чистого" Wine является работа с так называемыми "префиксами" - по сути разными "песочницами" со своими настройками и файловой системой. Поскольку программы могут быть самыми разнообразными и какие-то работают только до определённой версии Windows, каким-то нужны специфические настройки реестра и т.п., то логично при возникновении проблем с определённым ПО - вынести это в отдельный профиль (он же префикс, в терминах Wine). Префикс созданный по умолчанию хранится в каталоге .wine в папке пользователя, но никто не мешает создать, например, там же каталог .wine2 и настроить его для использования Wine:

WINEPREFIX="/home/логин/.wine2/" winecfg

А затем устанавливать и использовать ПО с использованием этого префикса:

WINEPREFIX="/home/логин/.wine2/" wine программа.exe

Для удобной же настройки Wine и управления префиксами могут пригодиться разные GUI, написанные специально для этого. Например, Q4Wine позволяет создавать префиксы, настраивать их, устанавливать в эти префиксы ПО:

Ну и запускать ПО Wine - проводник, диспетчер задач, редактор реестра, средство установки и удаления программ, панель управления и прочее:

-10

Для удобной установки в префиксы разного рода библиотек, шрифтов, ПО и некоторых игр может помочь Winetricks:

Например, можно установить DirectX 9 и попробовать установить под Wine какую-нибудь игру. Ну и использование Wine совместно с Winetricks позволит вам запустить большинство ПО для Windows. Алгоритм достаточно простой - в консоли пытаемся запустить нужную программу - получаем ошибку о нехватке той или иной библиотеки, идём в Wintricks - устанавливаем и повторяем до полного удовлетворения :)

Проблемы могут возникнуть в ситуации, когда ПО использует какие-либо недокументированные особенности библиотек Windows, либо какие-то совсем новые фреймворки, которые ещё не оттестированы и не поддерживаются.

Как я уже говорил до этого, поддерживается и API DirectX, что позволяет в том числе и играть в Windows-игры. Но использовать чистый Wine для этого не очень удобно - скорее всего вам придётся помучится и почитать форумы для запуска какой-нибудь привередливой игры. Но есть путь гораздо проще - использовать специальные приложения, разработанные на основе Wine, которые уже содержат в себе настройки для большинства игр для Windows, которые можно запустить в Linux.

PlayOnLinux

Один из известных проектов, основанных на Wine. Он заточен именно на установку приложений и игр со специальными настройками, чтобы они практически гарантированно работали в Linux. Минус ровно один - поскольку настройки применяются PlayOnLinux, то приходится доверяться им, внести изменения не получится...

Устанавливать данный проект, как и Wine, следует не из стандартного менеджера программ Linux Mint (вы получите слишком старую версию), а также через сайт данного продукта. Там для Linux Mint 19 рекомендуется следующий набор команд:

wget -q "http://deb.playonlinux.com/public.gpg" -O- | sudo apt-key add -
sudo wget http://deb.playonlinux.com/playonlinux_bionic.list -O /etc/apt/sources.list.d/playonlinux.list
sudo apt-get update
sudo apt-get install playonlinux

После установки пользователь может попробовать загрузить через данное ПО какую-либо программу или игру. Для каждой такой программы или игры будет использован свой собственный "префикс" Wine и будет автоматически установлен требуемый набор библиотек и внесены необходимые изменения в реестр и в файловую систему Windows в этом префиксе. Получается, что данная программа направлена в основном на обычных пользователей Linux, которые не хотят разбираться с теми или иными нюансами настройки программ Linux в чистом Wine.

Есть и другие подобные форки Wine, например, платные Cedega (заточен под игры) или форки для профессионального ПО, такие как CrossOver, WINE@Etersoft, WINE-LXP. Как решение за деньги - оно немного... странное, потому что тут надо чётко понимать, за что именно платить. Для офиса это бывает оправдано, а вот для дома - ну я даже не знаю. А другие бесплатные варианты (типа WineWizard) зачастую уже прекратили своё существование. Но зато появляются и другие форки.

Valve Proton

Один из форков Wine, созданный компанией Valve, добавляющий пользователю возможность запускать Windows-игры в библиотеке Steam в Linux. Это один из логичных шагов компании, создавшей SteamOS на базе Debian - одного из дистрибутивов Linux (и "дедушка" Linux Mint).

Изначально в настройках возможность запускать игры, написанные для другой ОС предусмотрена только для ограниченного списка поддерживаемых игр, но на свой страх и риск пользователь Linux поддержку может расширить на все продукты в библиотеке Steam:

После включения в библиотеке Steam будут отображены все игры, которые есть у пользователя, и их все можно попробовать установить. Но вот поиграть можно будет в то, что сможет заработать и ещё придётся смириться с потерей скорости в требовательных играх - эмуляция всё-таки "бесплатной" не бывает. Хотя Proton чем и хорош, так тем что он связал воедино Wine и реализации DirectX 10-11 на базе проекта DXVK и DirectX 12 на базе vk3d (это, в принципе, и так уже часть Wine), которые обеспечивают ретрансляцию вызовов DirectX в API Vulkan, а это не так сильно влияет на производительность и тотальной "просадки" всё-таки не наблюдается.

И в целом это просто отличное решение для обычного пользователя, который хочет поиграть и не хочет заморачиваться всякими "терминалами", не любит "курить форумы". Тут не надо самостоятельно устанавливать Wine, библиотеки и прочее ПО. Прямо-таки "коробочное" решение, всё-в-одном. Рекомендую, однозначно.

И так получилось слишком длинно, поэтому тут поставим многоточие, а про другие эмуляторы расскажем в следующей части...

P.S. Эта статья из цикла "Linux обычного пользователя" и, если она вас заинтересовала, то вы можете прочитать и другие статьи по этой теме. Если понравилось - ставьте палец вверх, ну а не понравилось - ставьте палец вниз и пишите в комментарии, что именно. Если возникнут вопросы - тоже пишите в комментарии, обязательно постараюсь ответить. Ну и подписывайтесь, если эта тема вам интересна.