Beadbox на Windows + WSL2
Если ваш проект находится в WSL2 — где-либо под \\wsl.localhost\ или \\wsl$\ — установите Linux-версию Beadbox внутри WSL и запускайте её через WSLg. Нативная сборка Beadbox.exe для Windows не поддерживает работу с путями WSL2. Это руководство ориентировано на Ubuntu 24.04 LTS; Ubuntu 22.04 не поддерживается (см. раздел «Предварительные требования»).
Почему Linux-версия Beadbox в WSL
Когда ваш воркспейс находится по пути вроде \\wsl.localhost\Ubuntu\home\you\my-project, Beadbox.exe, работающий в Windows, вынужден обращаться через мост файловой системы 9P при каждом вызове bd CLI. bd CLI инициализирует Go-рантайм и переинициализирует встроенное хранилище Dolt при каждом вызове, а ядро Linux внутри WSL2 обеспечивает семантику flock(), которую сторона Windows не может надёжно соблюдать.
В результате возникают два режима отказа: «прогретые» вызовы, занимающие около 1240 мс (значительно превышая 500-миллисекундный интервал опроса Beadbox), и периодические ошибки flock, когда два процесса одновременно обращаются к воркспейсу. Более чистое решение — запускать Beadbox там, где уже находится воркспейс, то есть внутри WSL2, и позволить WSLg отрисовывать GUI на Windows.
Предварительные требования
Это руководство ориентировано на Ubuntu 24.04 LTS внутри WSL2. Ubuntu 22.04 работать не будет — .deb-пакет Beadbox зависит от libwebkit2gtk-4.1, который нативно поставляется только в 24.04 и более новых версиях. На более старых дистрибутивах WSL2 шаг установки завершится ошибкой о неудовлетворённой зависимости.
Перед шагом 1 нужно выполнить два предварительных условия:
По умолчанию используйте WSL2, а не WSL1. WSLg отрисовывает GUI-приложения только на WSL2. Выполните это один раз в PowerShell перед установкой дистрибутива:
wsl --set-default-version 2Установите Ubuntu 24.04 (или обновите существующий дистрибутив). Этот шаг интерактивный — загрузка образа занимает несколько минут, а по её завершении вам будет предложено создать имя пользователя и пароль Linux:
wsl --install Ubuntu-24.04Убедитесь, что дистрибутив работает на WSL2:
wsl --list --verbose
В выводе рядом с Ubuntu-24.04 должно отображаться VERSION 2. Если показывается 1, переведите его: wsl --set-version Ubuntu-24.04 2.
Установка Linux Beadbox в WSL2
Эти команды выполняются в терминале вашего Ubuntu 24.04 WSL2. Откройте его командой wsl -d Ubuntu-24.04 из PowerShell или выберите дистрибутив в выпадающем меню Windows Terminal.
1. Установить beads CLI
Beadbox является обёрткой над bd CLI, поэтому вам нужны оба инструмента. Сначала установите bd:
curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bashПроверьте командой bd --version. Должна отобразиться строка с версией bd.
2. Скачать .deb-пакет Beadbox
Скачайте последний .deb для Linux со страницы релизов на GitHub:
VER=$(curl -sSL https://api.github.com/repos/beadbox/beadbox/releases/latest | sed -n 's/.*"tag_name":[[:space:]]*"v\{0,1\}\([^"]*\)".*/\1/p')
curl -L -o beadbox.deb "https://github.com/beadbox/beadbox/releases/download/v${VER}/beadbox_${VER}_Linux_amd64.deb"3. Установить .deb
Сначала обновите индекс apt — свежие дистрибутивы WSL2 поставляются с устаревшим списком пакетов, иначе установка завершится ошибкой 404 на транзитивных зависимостях. Затем установите .deb в той же команде:
sudo apt-get update && sudo apt install ./beadbox.debЕсли apt по-прежнему сообщает о недостающих зависимостях после обновления, выполните sudo apt --fix-broken install и попробуйте снова.
Запуск через WSLg
WSLg поставляется вместе с WSL2 на Windows 10 и 11 и отрисовывает Linux GUI-приложения прямо на рабочем столе Windows. Никакой настройки X server, никакой дополнительной конфигурации — просто запустите приложение:
beadboxПервый запуск может занять несколько секунд, пока WSLg согласовывает дисплей. После этого Beadbox ведёт себя как любое другое нативное окно: закрепляйте его на панели задач, переключайтесь на него по alt-tab, перетаскивайте между мониторами. Когда вы открываете воркспейс, указывайте путь со стороны Linux (~/my-project), а не со стороны Windows. Внутри WSL ~/ — это правильный домашний каталог.
Совет: если вам нужен ярлык в меню «Пуск», .deb устанавливает запись .desktop, которую Windows автоматически отображает как «Beadbox (Ubuntu)» или подобное. Найдите её в меню «Пуск» после установки.
Уже столкнулись с ошибкой flock?
Если вы установили Beadbox.exe и попытались открыть воркспейс в WSL, скорее всего, вы увидели ошибку, упоминающую flock, сбой встроенного режима или невозможность загрузить воркспейс. Решение простое:
- Закройте воркспейс в Beadbox.exe (или полностью завершите приложение). Нативная сборка для Windows не будет работать с этим воркспейсом.
- Выполните шаги установки выше внутри вашего дистрибутива WSL2, чтобы установить Linux-версию Beadbox.
- Откройте Beadbox изнутри WSL (выполните
beadboxв терминале WSL) и откройте воркспейс по его пути в Linux (~/my-project).
Вы можете оставить Beadbox.exe установленным для проектов, расположенных на стороне Windows (пути вроде C:\Users\you\my-project). Сборка для Windows для них подходит — Linux-сборка нужна только для проектов, размещённых в WSL.
Устранение неполадок
Предупреждения libEGL / Mesa при запуске
При первом запуске beadbox в терминале могут появиться предупреждения от libEGL, Mesa или GL-драйверов об отсутствии аппаратного ускорения или переключении на программный рендеринг. Это нормально для WSLg — WSL2 не предоставляет ваш Windows GPU напрямую Linux-стороне, поэтому графический стек переходит на программные пути. Приложение запускается без проблем и работает с полной скоростью Beadbox; эти предупреждения — шум, а не ошибки.
Контекст и ссылки
Обе сборки (Windows .exe и Linux .deb) собираются из одной и той же кодовой базы Beadbox. Причина, по которой .exe не может работать с воркспейсом WSL, носит структурный характер — это не баг, который мы планируем исправить. Расчёт задержек и мост файловой системы работают против такой схемы.
Если вам нужны архитектурные подробности этого решения, проектные документы и трассировщик задержек, исключивший отвергнутые варианты, приведены ниже.