Перейти к содержанию
Mercury
Русский
Дизайн книга
Меню
Русский

Выберите способ установки mx

Скачайте нативный mx и стартовое приложение с закреплёнными зависимостями в пустой каталог.

Для первой страницы нужны нативный исполняемый файл mx для Linux x86_64 и стартовое приложение с закреплёнными зависимостями Mercury 4.0.0. Репозиторий, Rust, Node.js, npm CLI, Elixir и BEAM не требуются. mx собирает JavaScript для браузера; браузер по-прежнему исполняет JavaScript.

Выбор пути

Сохраните работающий mx или инструменты существующего приложения. Для простой страницы без CLI используйте браузерный путь. Для нативной разработки на TSX выберите один из способов начальной установки ниже.

Статус публикации: @fiberfx/mx@0.1.0 и нативные архивы ещё ожидают публикации и проверки установки у потребителя. Команды ниже задают предполагаемый порядок установки; имя пакета или URL сами по себе не подтверждают доступность. Проверьте метаданные выпуска и остановитесь, если артефакта нет. Не сообщайте об успешной нативной установке без её выполнения.

Начальная установка через npm

Планируемый корневой пакет @fiberfx/mx содержит обёртку на Node и необязательные платформенные пакеты. Для Linux x64 пакет @fiberfx/mx-linux-x64 содержит нативные файлы; обёртка находит установленный файл через require.resolve и запускает его. Не удаляйте Node: каждый вызов установленного через npm mx проходит через эту обёртку. В npm-пути нет postinstall и загрузки бинарных файлов из GitHub Releases: платформенный пакет получает npm. Не исключайте необязательные зависимости. Проверки есть только для бинарного файла Linux x64; ему нужна glibc 2.39 или новее. Оба полученных исполняемых файла, mx и Hyperscript LSAP, требуют версию символа ELF GLIBC_2.39; на машине сборки использовалась glibc 2.41. Это измеренные требования файлов, а не выполненная проверка у потребителя с glibc 2.39. Другие платформенные пакеты запланированы, но не собраны и недоступны. Поддержка других архитектур, musl, macOS и Windows не подтверждена.

После публикации, в каталоге без mercury-native-tools, используйте отдельный префикс:

set -eu
mkdir mercury-native-tools
cd mercury-native-tools
npm install --prefix "$PWD/.mx-tools" --global --ignore-scripts @fiberfx/mx@0.1.0
export PATH="$PWD/.mx-tools/bin:$PATH"
mx --version

Префикс находится внутри нового каталога; PATH меняется только в текущей оболочке. Сохраните пакетные файлы существующего проекта. После запуска mx получите стартовое приложение описанным ниже способом, проверьте манифест выпуска и используйте mx install, mx verify, mx dev и mx build. npm устанавливает обёртку на Node и нативный платформенный пакет; для вызова mx через эту обёртку Node нужен и после установки. Архивный путь и образ запускают нативные файлы без Node.

Если mx уже работает (в том числе после установки через npm), не заменяйте его архивной копией. После публикации стартового архива скачайте только приложение и манифест в новый каталог:

set -eu
mkdir mercury-native-app
cd mercury-native-app
curl -fLO https://mercury.jonnify.com/downloads/mercury-first-page.tar.gz
curl -fLO https://mercury.jonnify.com/downloads/sha256.sum
sha256sum --check --ignore-missing sha256.sum || exit 1
tar -xzf mercury-first-page.tar.gz
cd mercury-first-page
mx install
mx verify

Перед распаковкой проверка должна вывести mercury-first-page.tar.gz: OK; --ignore-missing пропускает строку нативного архива, который в этом пути не скачивается. Ошибка суммы останавливает последовательность. Остальные команды ниже относятся к полной архивной установке.

Что потребуется

Для кандидата нативного архива нужна среда Linux x86_64 с glibc 2.39 или новее, командной оболочкой, curl, tar, sha256sum, доступом по HTTPS и браузером для проверки результата. Требуемая версия glibc зафиксирована в DYNAMIC_DEPENDENCIES.txt выпуска; проверка у потребителя ещё не выполнена. Установка на macOS и Windows требует отдельных проверок; этот Linux-файл там запускать не следует.

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

Загрузка и проверка

Запустите команды там, где ещё нет каталога mercury-scratch. Они создают новый каталог, прекращают выполнение при ошибке и проверяют оба архива до распаковки и запуска:

set -eu
mkdir mercury-scratch
cd mercury-scratch
curl -fLO https://mercury.jonnify.com/downloads/mx-linux-x86_64.tar.gz
curl -fLO https://mercury.jonnify.com/downloads/mercury-first-page.tar.gz
curl -fLO https://mercury.jonnify.com/downloads/sha256.sum
sha256sum --check sha256.sum
tar -xzf mx-linux-x86_64.tar.gz
tar -xzf mercury-first-page.tar.gz
export PATH="$PWD/bin:$PATH"
mx --version
cd mercury-first-page
mx install
mx verify

Обе строки проверки должны завершиться с OK. Отсутствующий файл или несовпадение суммы останавливают последовательность. Нативный архив содержит bin/mx и сведения о выпуске и лицензиях; архив приложения — каталог mercury-first-page/. PATH меняется только в текущей оболочке. Файлы её настройки не затрагиваются.

В приложении есть index.html, app/main.tsx, package.json, mx.mod и mx.sum. Зависимости @fiberfx/hyperscript, @fiberfx/core и @fiberfx/ui закреплены на 4.0.0. Команда mx install получает пакеты через публичный источник mx; mx verify сверяет установленные файлы с записанными суммами. Сохраните mx.sum.

Запуск первой страницы

Из mercury-first-page/ выполните:

mx dev

Откройте локальный адрес, который выведет mx. Остановите сервер сочетанием Ctrl-C и соберите приложение:

mx build

В уроке Первая страница Mercury приведены код компонента, ожидаемое поведение и проверки сборки.

Что подтверждают проверки

Суммы архивов подтверждают совпадение скачанных байтов с опубликованным манифестом. Доверие к самому манифесту по-прежнему зависит от HTTPS и издателя. Файл mx.sum закрепляет содержимое зависимостей для последующих установок. Эти суммы не доказывают наличие записи в аутентифицированной базе контрольных сумм. mx verify проверяет содержимое установленных пакетов, но не взаимодействие со страницей.

Добавление зависимостей

Стартовому приложению с готовым mx.sum исключение не нужно. Если у новой версии пакета ещё нет записи в mx.sum, mx может отказать с сообщением nothing vouches for these bytes. Предпочтительны доверенная закреплённая сумма или настроенная аутентифицированная база контрольных сумм. Если вы осознанно принимаете публичный источник пакетов как основание для первой загрузки, исключение на одну команду позволяет получить новые записи зависимостей registry.npmjs.org/fiberfx/*:

MXNOSUMDB=registry.npmjs.org/fiberfx/* mx mod tidy

При этом команда пропускает аутентификацию через базу контрольных сумм для указанного пространства имён. Проверьте и сохраните полученный mx.sum: последующее совпадение сумм не подтверждает задним числом подлинность первой загрузки. Не экспортируйте переменную глобально и не добавляйте её в обычную установку стартового приложения. Формат модуля описан в уроке Модули.