Найти в Дзене
Easy Linux - о Linux просто

Основы Wine. Ставим Winamp

Приветствую тебя авантюрист. Что самое важное при переходе на другую операционную систему? Верно, возможность использовать привычный тебе софт. На сегодняшний день есть довольно много программ эмуляции: VirtualBox, QEMU, HYPER-V и т.д. У эмуляторов есть несколько существенных недостатков, например, необходимость установки и запуска полноценной гостевой операционной системы параллельно с вашей. Из чего вытекают соответствующие траты ресурсов. У эмуляторов нет необходимого уровня интеграции в родительскую ОС: отдельный рабочий стол, нет возможности переключаться между окнами приложения, используя родительскую ОС и т.д. Но хотелось бы как-то запустить «чужеродное» приложение как «родное», то есть нативно. И это вполне реально. Такие инструменты есть практически у любой операционной системы. В Windows есть WSL, в Linux и MAC есть wine и его форки. Wine Первое, что скажет вам любой уважающий себя линуксоид, - «Wine это не эмулятор», и он будет прав. Само название Wine это рекурсивный акрони

Приветствую тебя авантюрист. Что самое важное при переходе на другую операционную систему? Верно, возможность использовать привычный тебе софт. На сегодняшний день есть довольно много программ эмуляции: 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