Bottles - как Wine, только лучше

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

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark. Реклама ИП Скоромнов Д.А. ИНН 331403723315

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

Но Bottles это не просто графический менеджер префиксов, каждая "бутылка" представляет предварительно настроенное окружение с базовым набором библиотек и зависимостей, которые удобно управляются из единого графического интерфейса и вам больше не нужен Winetricks. Таким образом Bottles берет на себя все то, что вы делали в Wine руками и позволяет сосредоточиться непосредственно на запуске Windows-программ, а не на подготовке среды.

Установка Bottles из Flatpak

Основной канал распространения Bottles - это Flatpak, современный способ доставки ПО в Linux системах, что обеспечивает вам всегда самую последнюю версию приложения в любом дистрибутиве.

Во многих дистрибутивах Flatpak уже установлен, а если это не так, вы можете без труда установить его по инструкциям с официального сайта, мы рассмотрим процесс установки на примере Debian или Ubuntu.

В данных системах просто достаточно установить пакет из официального репозитория:

1sudo apt install flatpak

Для интеграции с Центром приложений GNOME дополнительно установите пакет:

1sudo apt install gnome-software-plugin-flatpak

Если же вы используете KDE, то для интеграции с  Discover выполните:

1sudo apt install plasma-discover-backend-flatpak

Теперь подключим официальный репозиторий пакетов Flatpak - Flathub:

1flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

После чего обязательно перезагрузите систему, теперь можно устанавливать программы из репозитория и мы установим Bottles:

1flatpak install flathub com.usebottles.bottles

Если вы ранее ничего из Flatpak не устанавливали, то с первой загрузкой кроме приложения будут скачаны и установлены основные общие пакеты, что может занять продолжительное время.

После первого запуска Bottles вам также придется еще немного подождать - будут скачаны и установлены основные компоненты программы, общие библиотеки и зависимости, а также настроены шаблоны.

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

Что такое бутылки, раннеры и компоненты DLL

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

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

В актуальной поставке доступны следующие раннеры:

  • Soda - фирменный движок Bottles, собранный на базе Wine от Valve с добавлением патчей Staging и Proton. Это выбор по умолчанию для прикладного софта (офис, графика, утилиты). Обеспечивает максимальную стабильность и предсказуемость.
  • Caffe -движок на базе чистого Wine upstream с добавлением бэкпортов патчей Proton и Staging. Хорошая альтернатива Soda, если какому-то рабочему приложению требуются свежие патчи из upstream-ветки Wine, но при этом всё еще нужны оптимизации Proton.
  • Vaniglia - максимально «ванильный», чистый Wine upstream, включающий в себя только классические патчи Staging. Нужен для старого, капризного софта, ожидающего поведения классического «чистого» Wine.
  • Wine GE (GloriousEggroll) - модифицированный игровой движок на базе Proton Experimental, специально адаптированный для запуска игр вне клиента Steam. Главный игровой движок в Bottles. В отличие от обычного Proton, он не требует запущенного в фоне Steam Runtime и содержит огромное количество специфических хаков для видеороликов в играх и повышения FPS.
  • Kron4ek - кастомные сборки Wine от известного в Linux-сообществе разработчика Kron4ek, включающие ветки Staging и TkG-патчи.
  • Lutris - раннеры, собранные командой дружественного игрового менеджера Lutris.
  • Proton GE - оригинальный Proton от GloriousEggroll, сильно завязанный на экосистему Steam.

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

Компоненты DLL - это стандартный набор общих трансляторов и библиотек которые по умолчанию применяются к каждой бутылке для улучшения работы графической подсистемы и ввода-вывода, их всего четыре.

Разберем их назначение подробнее:

  • DXVK - Транслирует вызовы DirectX 9, 10 и 11 в современный графический API Vulkan. Vulkan в Linux работает гораздо эффективнее, чем старый графический стек Windows через обычную эмуляцию, что позволяет поднять FPS в играх до уровня оригинальной ОС, а иногда и выше.
  • VKD3D - Отвечает за трансляцию новейшего DirectX 12 в Vulkan.
  • DXVK-NVAPI - Реализует поддержку специфических технологий Nvidia (через библиотеку nvapi) поверх Vulkan. Это открывает доступ к включению таких технологий, как DLSS (апскейлинг) и Ray Tracing (трассировка лучей) прямо в Linux.
  • LatencyFleX - Альтернативная библиотека для снижения инпут-лага (задержки ввода). Помогает сделать управление в динамичных шутерах и соревновательных играх более отзывчивым, синхронизируя работу процессора и видеокарты.

Уже только исходя из одного этого можно сказать, что Bottles не просто графическая надстройка над Wine, а отдельный, гораздо более мощный и продвинутый продукт на основе привычных технологий.

Как создать и использовать бутылку

Создать бутылку совсем не сложно, достаточно указать ее название, да выбрать шаблон использования - приложения или игры. Также доступна пользовательская настройка, но там кроме раннера вы можете только указать разрядность или импортировать конфигурацию из файла.

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

Бутылка создана, что дальше? Откроем ее, здесь нам сразу доступны основные инструменты. Чтобы запустить бинарник достаточно просто нажать кнопку Запустить файл, а чтобы попасть в виртуальную файловую систему бутылки - Обзор.

После того как вы нажмете Запустить файл откроется окно в корне виртуальной файловой системы бутылки с предложением выбрать файл для запуска, но если вы хотите установить программу из инсталлятора, то копировать его в бутылку нет необходимости, у Bottles есть доступ к файловой системе в пределах вашего домашнего каталога.

В нашем случае мы просто указали на инсталлятор AIMP, а дальше запустилось привычное окно Windows-приложения, также как и при использовании Wine, но теперь никакой консольной магии с указанием префиксов.

После установки Bottles сам определяет все установленные в бутылку программы (а их может быть несколько) и отображает их в одноименном блоке ниже, теперь вам просто достаточно выбрать нужную и нажать на кнопку запуска. Здесь же, нажав на многоточие, можно выполнить дополнительные действия, например, удалить программу или добавить ее ярлык в системное меню (рабочий стол).

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

Также бывает так, что автоматически определившаяся программа не запускаеся, в этом случае попробуйте запустить ее напрямую через кнопку Запустить файл, в случае удачи просто удалите (а лучше скройте) старый ярлык и добавьте новый.

Если мы промотаем это окно вниз, то получим доступ к настройкам бутылки и инструментам управления ею, таким как командная строка или редактор реестра.

В Параметрах можно изменить тип и версию раннера, версии компонентов DLL, настройки взаимодействия с оборудованием, параметры трансляции, версию Windows и многое другое. Часть из них знакома по классическому WineHQ, другая специфична только для Bottle. В любом случае - настроек много, можно тонко настроить среду под свои потребности.

В разделе Зависимости можно найти множество библиотек и компонент для Windows, которые могут вам понадобиться для запускаемого приложения. В классическом WineHQ они либо устанавливать руками, либо использовался Winetriks. Bottle не только предоставляет его возможности, но и дает в руки инструмент управления зависимостями - вы можете не только видеть список установленных, но и переустанавливать или удалять их.

Еще одной приятной особенностью является централизованное управление Компонентами DLL, при их обновлении вам будет предложено выбрать бутылки внутри которых вы хотите ее обновить. Никакой ручной работы, если бутылок много, то это здорово экономит время.

Если бутылка вам больше не нужна - просто удалите ее, вместе с ней автоматически будут подчищены все "хвосты" в системе - ярлыки на рабочем столе и в меню и т.д.

Снапшоты, экспорт и импорт

Хорошо, когда все получается, но всегда может что-то пойти не так. И особенно обидно если это произойдет в самом конце процесса настройки, когда оставались просто последние штрихи.

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

Сам снимок делается очень просто - переходим в нужный пункт меню и вводим имя снимка. Но это далеко не все, Bottles поддерживает не только снимки - коммиты, но и ветвления, точно также как в Git. Вы можете спокойно сделать основную и тестовую ветку и переключаться между ними по необходимости.

Другая ситуация - вы настроили бутылку и хотите повторить эти настройки для другой бутылки. Снова повторять все шаги? В этом нет необходимости, сделайте экспорт настроек в YAML-файл, а если вы хотите перенести полностью бутылку во всем установленным ПО, то выполните полную резервную копию.

В первом случае вы получите файл с настройками, которые можете импортировать при создании бутылки или резервную копию, которую легко развернуть через импорт.

С помощью этих инструментов вы можете не только делать резервные копии или перемещать бутылки, но и делиться своими настройками или полностью готовыми бутылками с друзьями и коллегами. Без сложных инструкций, просто выложив в общий доступ файл.

Что в итоге выбрать? WineHQ или Bottle? WineHQ отлично пододет если вам нужно запустить в среде Linux одно-два простых Windows приложения и вы готовы один раз потратить на это время. Если же делать это приходится часто и приложения попадаются разные - ваш выбор Bottle, который берет на себя всю рутину и позволяет сосредоточиться на процессе.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark. Реклама ИП Скоромнов Д.А. ИНН 331403723315

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал