30.06.2022

Выпуск Bottles 2022.1.28, пакета для организации запуска Windows-приложений в Linux

Представлен выпуск проекта Bottles 2022.1.28, развивающего приложение для упрощения установки, настройки и запуска Windows-приложений в Linux на базе Wine или Proton. Программа предоставляет интерфейс для управления префиксами, определяющими Wine-окружение и параметры для запуска приложений, а также инструменты для установки зависимостей, необходимых для корректной работы запускаемых программ. Код проекта написан на языке Python и распространяется под лицензией GPLv3. Программа поставляется в формате Flatpak и в пакетах для Arch Linux.

Вместо скрипта Winetricks в Bottles для установки дополнительных библиотек применяется полноценная система управления зависимостями, работа которой напоминает управление зависимостями в пакетных менеджерах дистрибутивов. Для запускаемого Windows-приложения определяется список зависимостей (DLL-библиотеки, шрифты, runtime и т.п.), которые необходимо загрузить и установить для нормальной работы, при том, что у каждой зависимости могут быть свои зависимости.

Bottles предоставляет репозиторий с информацией о зависимостях для различных программ и библиотек, а также инструментарий для централизованного управления зависимостями. Все установленные зависимости отслеживаются, поэтому при удалении программы, можно удалить и связанные зависимости, если они не используются для запуска других приложений. Подобный подход позволяет обойтись без установки отдельной версии Wine для каждого приложения и использовать единое Wine-окружение для запуска как можно большего числа приложений.

Для работы с Windows-префиксами в Bottles применяется концепция окружений, предоставляющих готовые настройки, библиотеки и зависимости для определённого класса приложений. Предлагаются базовые окружения: Gaming — для игр, Software — для прикладных программ и Custom — чистое окружение для проведения собственных экспериментов. В окружении для игр включены DXVK, VKD3D, Esync, на системах с гибридной графикой активирована дискретная графическая карта, а в PulseAudio включены настройки для улучшения качества звука. В окружении для приложений включены настройки, подходящие как для мультимедийных программ, так и офисных приложений.

При необходимости можно установить несколько разных версий wine, proton и dxvk, и на лету переключаться между ними. Возможен импорт окружений из других менеджеров Wine, таких как Lutris и PlayOnLinux. Окружения запускаются с использованием sandbox-изоляции, отделены от основной системы и имеют доступ только в необходимым данным в домашнем каталоге. Предоставляется поддержка версионного контроля, автоматически сохраняющего состояние перед установкой каждой новой зависимости и позволяющего откататься на одно из прошлых состояний в случае проблем.

Среди изменений в новом выпуске:

  • Добавлен новый бэкенд для управления Wine, состоящий из трех компонентов: WineCommand, WineProgram и Executor.
  • Предложено несколько обработчиков WineProgram:
    • reg, regedit — для работы с реестром, позволяет одним вызовом менять несколько ключей.
    • net — для управления сервисами.
    • wineserver — для проверки работы управляющего процесса Bottles.
    • start, msiexec и cmd — для работы с ярлыками .lnk и файлами .msi/.batch.
    • taskmgr — менеджер задач.
    • wineboot, winedbg, control, winecfg.
  • Реализован менеджер исполнения (Executor), при запуске исполняемого файла автоматически вызывающий необходимый обработчик в зависимости от расширения файла (.exe, .lnk, .batch, .msi).
  • Предоставлена возможность запуска команд в полном или сокращённом окружении.
  • Добавлена поддержка синхронизации с использованием системного вызова futex_waitv (Futex2), появившегося в ядре Linux 5.16. Добавлен обработчик Caffe, основанный на Wine 7 и поддерживающий механизм синхронизации Futex2.
  • Для инсталляторов реализована возможность изменения файлов конфигурации (json, ini, yaml).
  • Добавлена поддержка скрытия элементов в списке программ.
  • Добавлен новый диалог для показа содержимого файлов-манифестов для зависимостей и инсталляторов.
  • В список доступных инсталляторов добавлена функция поиска.

Дополнительно можно отметить
публикацию выпуска проекта Proton 7.1-GE-1, в рамках которого энтузиастами формируются независимые от компании Valve расширенные сборки пакета для запуска Windows-приложений Proton, отличающиеся более свежей версией Wine, задействованием FFmpeg в FAudio и включением дополнительных патчей, решающих проблемы в различных игровых приложениях.

В новой версии Proton GE осуществлён переход на Wine 7.1 с патчами из Wine-staging 7.1 (в официальном Proton продолжает использоваться Wine 6.3). Перенесены все изменения из git-репозиториев проектов vkd3d-proton, dxvk и FAudio. Решены проблемы в играх Forza Horizon 5, Resident Evil 5, Persona 4 Golden, Progressbar95 и Elder Scrolls Online.

Источник.