Skip to content
Apothem
Практические рецепты

Переменные окружения установщика

Управляйте скриптовым установщиком (место установки, источник, окружение, профиль, проверка) с помощью переменных окружения.

Цель: управлять install.sh / install.ps1 без редактирования скрипта, задавая переменные окружения перед его запуском.

Предварительные условия

  • POSIX-оболочка (bash) или PowerShell 5.1+. Приведённые ниже примеры для PowerShell запускают pwsh (PowerShell 7+). В Windows PowerShell 5.1 вместо этого выполните powershell -NoProfile -ExecutionPolicy Bypass -File install.ps1.
  • Переменные читаются один раз в начале установщика, поэтому задайте их в той же команде (или сначала экспортируйте их), затем запустите установщик.

Переменные установщика

ПеременнаяЧем управляетПо умолчанию
APOTHEM_HOMEМесто установки клонированного дерева исходного кода$HOME/.apothem
APOTHEM_REPOУдалённый Git-репозиторий для клонированияhttps://github.com/ahmed-g-gad/apothem
APOTHEM_REFGit-ссылка для переключения; если не задана, выбирается последний подписанный тег vMAJOR.MINOR.PATCH, значение-тег закрепляет его, main выбирает подвижную ветку. Ссылка, которая не является тегом, например main, прерывает выполнение, если не задано APOTHEM_ALLOW_UNVERIFIED=1.не задана (последний подписанный тег)
APOTHEM_ALLOW_UNVERIFIEDПри значении 1 понижает сбой проверки подписи тега с фатального прерывания до предупреждения0 (проверка; при сбое — прерывание)
APOTHEM_VERIFYsignature проверяет GPG-подпись тега релиза; checksum устанавливает архив релиза для платформы после сверки его SHA-256 с SHA256SUMS релиза (это проверка целостности, а не доказательство того, кто его опубликовал)signature
APOTHEM_RELEASE_BASEБазовый адрес загрузки для режима контрольных сумм<APOTHEM_REPO>/releases/download
APOTHEM_SOURCEЯвно заданное локальное дерево исходного кода вместо клонированияне задана (клонирование)
APOTHEM_HARNESSОкружение уровня пользователя для установки (antigravity, claude-code, codex, hermes, open-claw, opencode, qwen-code). Установщик не передаёт --project, поэтому окружение уровня проекта завершается ошибкой project.required; устанавливайте такие окружения после этого командой apothem install --harness NAME --project PATH.claude-code
APOTHEM_PROFILEПуть к YAML-файлу общего профиля$HOME/.config/apothem/profile.yaml
APOTHEM_SKIP_VERIFYПри значении 1 пропускает шаг проверки после установки0 (проверка выполняется)
APOTHEM_AUTO_INSTALL_DEPSПри значении 1 автоматически, без запроса, устанавливает недостающие предварительные требования click / rich0 (запрос; в неинтерактивном конвейере — отказ)
APOTHEM_BIN_DIRКаталог для размещаемого шима команды apothem$HOME/.local/bin (POSIX); %LOCALAPPDATA%\Microsoft\WindowsApps (Windows)
NO_COLORОтключает цветной вывод, если задана с любым значением (no-color.org); цвет также всегда отключён, когда вывод направлен не в терминал (в конвейер, файл или журнал CI)не задана (цвет только в интерактивном терминале)

APOTHEM_SOURCE имеет приоритет над клонированием: если переменная указывает на чекаут, содержащий src/apothem, установщик использует его напрямую, никогда не обращается к APOTHEM_REPO / APOTHEM_REF и пропускает определение тега и проверку подписи (ничего не загружается, поэтому проверять нечего).

Если APOTHEM_HOME указывает на существующий каталог, который не является git-клоном, установщик отказывается его удалять: переместите его в сторону, направьте APOTHEM_HOME в другое место или передайте --yes (-Yes в Windows), чтобы разрешить замену. Устаревший пустой каталог заменяется и без этого флага.

Модель доверия

Если APOTHEM_REF не задана, установщик определяет последний подписанный тег релиза и проверяет его подпись с помощью git verify-tag до материализации какой-либо конфигурации; неподписанный или подделанный тег прерывает установку. Если открытый ключ сопровождающего, которым подписан тег, отсутствует в локальной связке ключей, установка вместо этого прерывается с инструкциями по импорту ключа — импортируйте ключ и сверьте его отпечаток со значением, опубликованным в SECURITY.md. Закрепите известный релиз с помощью APOTHEM_REF=<tag>, взяв тег со страницы релизов; закреплённый тег проверяется так же. Выберите подвижную ветку с помощью APOTHEM_REF=main вместе с APOTHEM_ALLOW_UNVERIFIED=1; такая установка не проверяется, а main без этой переменной прерывает установку, потому что ветка не является подписанным тегом. Задайте APOTHEM_ALLOW_UNVERIFIED=1 отдельно, чтобы продолжить после сбоя проверки с предупреждением (для изолированной от сети среды, локального использования или использования до появления подписанного релиза).

Pinned, verified install
APOTHEM_REF=vMAJOR.MINOR.PATCH bash install.sh
Check the archive digest when the signing key is not imported
APOTHEM_VERIFY=checksum bash install.sh
Proceed without verification (interim / air-gapped)
APOTHEM_ALLOW_UNVERIFIED=1 bash install.sh

Шаги (POSIX bash)

  1. Установите окружение уровня пользователя, отличное от окружения по умолчанию:

    APOTHEM_HARNESS=codex bash install.sh
  2. Закрепите место установки и выберите подвижную ветку main. Ветка не является подписанным тегом, поэтому установщику также нужен APOTHEM_ALLOW_UNVERIFIED=1:

    APOTHEM_REF=main APOTHEM_ALLOW_UNVERIFIED=1 APOTHEM_HOME=/opt/apothem bash install.sh
  3. Используйте локальный чекаут и собственный профиль, пропустив проверку:

    APOTHEM_SOURCE=/work/apothem \
    APOTHEM_PROFILE=/work/profile.yaml \
    APOTHEM_SKIP_VERIFY=1 \
    bash install.sh

Шаги (PowerShell)

Задайте каждую переменную через $env: перед запуском установщика:

$env:APOTHEM_HARNESS = 'codex'
pwsh -NoProfile -File install.ps1
$env:APOTHEM_ALLOW_UNVERIFIED = '1'
$env:APOTHEM_REF = 'main'
$env:APOTHEM_HOME = 'C:\opt\apothem'
pwsh -NoProfile -File install.ps1
$env:APOTHEM_SOURCE = 'C:\work\apothem'
$env:APOTHEM_PROFILE = 'C:\work\profile.yaml'
$env:APOTHEM_SKIP_VERIFY = '1'
pwsh -NoProfile -File install.ps1

Проверка

Установщик выводит ✓ Harness <name> installed, затем (если не задано APOTHEM_SKIP_VERIFY=1) ✓ verify passed. Подтвердите это независимо:

apothem verify --harness codex

Для окружения уровня проекта, например Cursor, выполните установку и проверку самостоятельно после установщика, с --project:

apothem install --harness cursor --project /path/to/project
apothem verify --harness cursor --project /path/to/project

Если профиля ещё не было, установщик создаёт его из примера и продолжает установку и проверку в том же запуске. Поля идентичности в примере — заполнители, поэтому установка выводит примечание; отредактируйте $APOTHEM_PROFILE, затем выполните apothem update --harness <name>, чтобы применить свою идентичность. --dry-run без профиля выполняет предварительный просмотр с подставленным примером и ничего не записывает.

Связанные материалы

On this page