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

Особенности реализации поддержки ARM64
Новый функционал для устройств с архитектурой ARM64, включая ноутбуки на базе ARM и одноплатные компьютеры, реализован через экспериментальный пакет формата cpak. Работа над расширением возможностей системы заняла у команды разработчиков крайне короткий срок: после открытия соответствующего запроса первая тестовая сборка была готова всего через три дня, а уже 7 сентября состоялся официальный релиз обновлений.
Для корректной работы Windows-софта на ARM-системах в Bottles реализованы следующие механизмы:
- Использование Soda версии 11.0-10 в качестве Wine-основы, поддерживающей нативную архитектуру ARM64 и ARM64EC.
- Интеграция инструмента FEX, который необходим для выполнения программ, скомпилированных под архитектуры x86 и x86_64.
- Автоматическая загрузка версией cpak подходящей сборки непосредственно под платформу пользователя.
Выбор формата cpak, базирующегося на контейнерах OCI, объясняется тем, что на данный момент это единственный путь, объединяющий само приложение, Wine и нативную инфраструктуру CI для ARM.
Обновления в составе Soda 11.0-10
Помимо поддержки новой архитектуры, релиз содержит важные исправления и функциональные улучшения. В частности, была устранена проблема, приводившая к аварийному завершению работы Battle.net при запуске из-за некорректной инициализации XInput в отсутствие игрового идентификатора Steam.
Значительные изменения коснулись работы с виртуальной реальностью. Теперь 64-битные OpenXR-приложения для Windows получили возможность прямого подключения к хост-средам исполнения, таким как Monado или WiVRn, без необходимости обязательного запуска Steam или SteamVR.
Установка тестовой версии
На текущем этапе ознакомиться с работой Bottles на устройствах ARM64 можно только через формат cpak. Разработчики отдельно уточняют, что подготовка Flatpak-версии для данной платформы всё еще находится в процессе разработки. Для установки текущей тестовой сборки cpak пользователям необходимо выполнить команду в терминале:
cpak install github.com/bottlesdevs/bottles
Формат cpak принципиально отличается от Flatpak: он рассматривает приложения как OCI-контейнеры и устанавливается непосредственно из Git-репозиториев, не полагаясь на централизованные магазины, специфические среды выполнения или порталы прав доступа, ограничиваясь только манифестом с перечнем разрешений и зависимостей.
Базовый функционал Bottles
Для тех, кто только начинает знакомство с Bottles, стоит напомнить, что программа существенно упрощает жизнь пользователям Linux, скрывая сложный процесс настройки Wine за интуитивно понятным интерфейсом. Утилита позволяет в один клик устанавливать критически важные компоненты Windows, такие как среды выполнения .NET и Visual C++. Система управления позволяет гибко переключаться между различными «раннерами» (исполняемыми средами) Wine и Proton для каждого отдельного «бутыля». Дополнительную ценность представляет поддержка UMU (Unified Wine Launcher), что дает возможность запускать игры Proton вне окружения Steam, а встроенная система снимков состояния (snapshots) позволяет создавать точки отката для любого вашего эксперимента.
Хронология разработки и участия сообщества
Примечательно, что столь масштабное внедрение поддержки ARM64 произошло в рекордные сроки. Инициатором запроса выступил пользователь под ником TCB13: всего через три дня после публикации тикета был готов тестовый кандидат, а сам автор запроса подтвердил работоспособность Bottles на своем собственном ARM64-оборудовании. После этого статус задачи был оперативно изменен на «выполнено», что подчеркивает высокую степень взаимодействия команды Мирко Бромбина с сообществом.
Особенности архитектуры cpak
Важно понимать, почему разработчики сделали ставку именно на cpak в данном тестировании. Как отмечает Мирко Бромбин, этот формат стал единственным решением, где приложение, базовая среда Wine и нативная инфраструктура CI для ARM оказались доступны одновременно. В отличие от привычного Flatpak, который опирается на сложную систему сред выполнения (runtimes) и порталов (portals), cpak работает иначе: он монтирует OCI-образ напрямую, а за разграничение прав доступа и определение зависимостей отвечает компактный манифест. Установка при этом происходит непосредственно из Git-репозитория, минуя использование централизованных магазинов приложений.





