インストーラーの環境変数
環境変数でスクリプトインストーラー(インストール先、ソース、ハーネス、プロファイル、検証)を制御します。
目標: 実行前に環境変数を設定することで、スクリプトを編集せずに 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_REF | チェックアウトする Git ref。未設定の場合は、最新の署名付き vMAJOR.MINOR.PATCH タグを解決します。タグの値を指定するとそのタグに固定され、main は移動するブランチを選びます。main のような、タグではない ref は、APOTHEM_ALLOW_UNVERIFIED=1 が設定されていない限り中止します。 | 未設定(最新の署名付きタグ) |
APOTHEM_ALLOW_UNVERIFIED | 1 に設定すると、タグ署名の検証失敗を、致命的な中断から警告へ格下げします | 0(検証する、フェイルクローズ) |
APOTHEM_VERIFY | signature は、リリースタグの 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 / rich の前提条件を、確認なしで自動的にインストールします | 0(確認する。非対話のパイプでは拒否する) |
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(Windows では -Yes)を渡して置き換えを承認してください。
古い空のディレクトリは、このフラグなしで置き換えられます。
信頼モデル
APOTHEM_REF が設定されていない場合、インストーラーは最新の署名付きリリースタグを解決し、いずれかの構成をマテリアライズする前に git verify-tag でその署名を検証します。署名されていないタグや改ざんされたタグは、インストールを中断させます。
メンテナーの公開鍵がローカルのキーリングにない署名付きタグの場合は、代わりに鍵のインポート手順を案内して中断します — 鍵をインポートし、そのフィンガープリントを SECURITY.md で公開されている値と照合してください。
既知のリリースを固定するには APOTHEM_REF=<tag> を使い、タグはリリースページから取得します。固定したタグも同じ方法で検証されます。
移動するブランチを選ぶには、APOTHEM_REF=main に加えて APOTHEM_ALLOW_UNVERIFIED=1 を指定します。このインストールは検証されません。main だけを指定すると、ブランチは署名付きタグではないため中止します。
検証の失敗を警告付きで通過させるには、APOTHEM_ALLOW_UNVERIFIED=1 だけを設定します(エアギャップ環境、ローカル、または署名付きリリース以前の用途)。
APOTHEM_REF=vMAJOR.MINOR.PATCH bash install.shAPOTHEM_VERIFY=checksum bash install.shAPOTHEM_ALLOW_UNVERIFIED=1 bash install.sh手順(POSIX bash)
-
デフォルト以外のユーザースコープのハーネスをインストールします。
APOTHEM_HARNESS=codex bash install.sh -
インストール先を固定し、移動する
mainブランチを選択します。ブランチは署名付きタグではないため、インストーラーにはAPOTHEM_ALLOW_UNVERIFIED=1も必要です。APOTHEM_REF=main APOTHEM_ALLOW_UNVERIFIED=1 APOTHEM_HOME=/opt/apothem bash install.sh -
ローカルチェックアウトとカスタムプロファイルを使用し、検証をスキップします。
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 codexCursor のようなプロジェクトスコープのハーネスでは、インストーラーの後に、インストールと検証を --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 は、サンプルをその代わりとして用いてプレビューし、何も書き込みません。