Приветствую тебя авантюрист. Что самое важное при переходе на другую операционную систему? Верно, возможность использовать привычный тебе софт. На сегодняшний день есть довольно много программ эмуляции: VirtualBox, QEMU, HYPER-V и т.д. У эмуляторов есть несколько существенных недостатков, например, необходимость установки и запуска полноценной гостевой операционной системы параллельно с вашей. Из чего вытекают соответствующие траты ресурсов. У эмуляторов нет необходимого уровня интеграции в родительскую ОС: отдельный рабочий стол, нет возможности переключаться между окнами приложения, используя родительскую ОС и т.д.
Но хотелось бы как-то запустить «чужеродное» приложение как «родное», то есть нативно. И это вполне реально. Такие инструменты есть практически у любой операционной системы. В Windows есть WSL, в Linux и MAC есть wine и его форки.
Wine
Первое, что скажет вам любой уважающий себя линуксоид, - «Wine это не эмулятор», и он будет прав. Само название Wine это рекурсивный акроним, который расшифровывается как - «Wine Is Not Emulator». В отличие от эмулятора тебе не нужно настраивать никакие виртуальные машины и устанавливать туда реальные, настоящие операционные системы. Wine реализует свой собственный Win API и подсовывает его Windows приложениям во время исполнения. Когда Windows приложение обращается к какой-то Win API функции, Wine подсовывает ему аналог реализованный средствами Linux системы. «Чужеродное» приложение, используя подкинутый Win API, будет работать нативно в вашей системе, ничего не замечая. Это довольно сильно утрировано, но, чтобы понять суть, тебе этого хватит.
Довольно много информации есть на официальном сайте Wine — http://winehq.org. Настоятельно рекомендую посетить его и изучить. Например там есть подробные инструкции как установить Wine на любую ОС. Или есть база данных о том какие приложения и как удалось запустить через Wine - appdb.winehq.org.
Так же стоит отметить, что Wine поставляется в трех редакциях: stable, devel, staging. Stable - это стабильная ветка, staging - это что-то среднее между devel и stable. В ней есть больше функционала, чем в stable версии, но меньше багов и ошибок, чем в devel версии. Ну а devel - это ветка разработки, в ней все самые свежие нововведения, но стабильность их никто пока не гарантирует. Для повседневного использования более чем хватает stable ветки. Если у тебя возникают проблемы, то стоит попробовать другие ветки.
Практика
Практику будем делать на Manjaro Linux. Первым делом нам нужно установить Wine и все необходимые для него зависимости. Для этого советую использовать следующую большую команду от проекта Port Proton:
sudo pacman -S wine-staging giflib lib32-giflib libpng lib32-libpng
libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal
lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse
libgpg-error lib32-libgpg-error alsa-plugins lib32-alsa-plugins alsa-lib
lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo sqlite lib32-sqlite
libxcomposite lib32-libxcomposite libxinerama lib32-libgcrypt libgcrypt
lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader
lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3
lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs
vulkan-icd-loader lib32-vulkan-icd-loader
Здесь есть абсолютно все необходимое для запуска любых приложений в том числе 32-битные библиотеки. Обратите внимание, что рекомендуется ставить именно wine-staging ветку.
Отлично, теперь стоит проверить все ли корректно встало и какой версии. Для этого выполним команду
wine --version
Если все хорошо, то ты увидишь версию и ветку твоего wine
Префиксы
Префикс - это каталог в твоей файловой системе, где хранятся файлы необходимые для работы запускаемого Windows приложения. Именно в префиксе хранятся файлы реестра, файлы некоторых Windows библиотек, ресурсов и т.д. Именно в префиксе находится каталог drive_c, который, как ты уже наверно догадался, будет подкинут запускаемой программе и именно этот каталог она будет считать как диск C. Вся соль в том, что ты можешь создавать неограниченное количество этих самых префиксов. Указывать префикс необходимо при запуске Windwos программы через переменную окружения WINEPREFIX="Путь". Зачем может понадобиться много префиксов, спросишь ты? Дело в том, что для запуска некоторых программ нужны какие-то компоненты, а для запуска других, наоборот, эти компоненты выдают ошибку. Или одна программа запускается, если сказать ей, что она работает на Windows 7, а другая только если на Windows 10. Отсюда и вытекает необходимость рекомендация ставить каждую новую программу в новый префикс, дабы не помешать настроенным уже ранее программам. Да и в случае чего ты просто удалишь префикс как каталог и все. Если ты будешь использовать один и тот же префикс для всего софта, то велика вероятность что в какой-то момент с запуском приложений могут появиться проблемы из-за вновь установленного софта или компонентов.
При установке Wine создается префикс по-умолчанию. Как правило, находиться он здесь
~/.wine
Чтобы сконфигурировать новый префикс есть утилита winecfg. Команда
WINEPREFIX="~/.newprefix" winecfg
создаст новый префикс в домашнем каталоге в папке .newprefix.
Еще один момент, по умолчанию winecfg создает 32-битные префиксы. Иногда необходимо создать 64-битный префикс. Что бы сделать префикс 64-битным нужно при его создании указать через переменные окружения WINEARCH=WIN64. Например, так
WINEARCH=WIN64 WINEPREFIX="~/.newprefix" winecfg
Установка дополнительных модулей и библиотек в префикс
Голый префикс может запустить довольно много всего интересного, но тебе неизбежно придется устанавливать те или иные компоненты, например, diritex, VisualС++ runtime library, шрифты, поддержка Vulkan и т.д. Специально для этого была создана утилита winetricks. Она устанавливается автоматически при установке Wine (в других дистрибутивах winetricks, возможно, нужно будет установить отдельно). Ее можно запустить в GUI режиме (без параметров), а можно использовать в режиме командной строки. Не рекомендую использовать GUI, но в качестве ознакомления все же советую разик запустить и посмотреть что там есть вообще. В режиме командной строки работает все очень просто указываем ранее созданный префикс и указываем, что ставим. Например команда ниже установит VisualС++ runtime library 2013 и основные шрифты.
WINEPREFIX="~/.newprefix" winetricks -q vcrun2013 corefonts
Больше информации можно получить на том же официальном сайте Wine wiki.winehq.org/Winetricks. Список пакетов для указания в командной строке можно получить командой list, например
winetricks apps list
выведет список всех возможных пакетов для установки в префикс.
Запуск
Когда префикс создан, все, что нам нужно, это запустить программу указав префикс, который мы будем использовать. Например, давайте установим windows программу winamp и запустим её. Скачиваем установщик, создаем префикс "~/.wa" устанавливаем туда установщик и запускаем установленную программу.
WINEPREFIX="~/.wa" WINEARCH=WIN32 winecfg
WINEPREFIX="~/.wa" WINEARCH=WIN32 wine "Путь к установщику"
WINEPREFIX="~/.wa" WINEARCH=WIN32 wine "Путь к установленной программе"
#linux
#easy_linux
#wine
#winamp
Оригинал: https://vk.com/@easy_linux-osnovy-wine