설치 프로그램 환경 변수
환경 변수로 스크립트 설치 프로그램(대상 위치, 소스, 하니스, 프로필, 검증)을 제어합니다.
목표: 실행하기 전에 환경 변수를 설정하여, 스크립트를 편집하지 않고
install.sh / install.ps1을 제어합니다.
사전 요건
- POSIX 셸(
bash) 또는 PowerShell 5.1+. 아래의 PowerShell 예시는pwsh(PowerShell 7+)를 실행합니다. Windows PowerShell 5.1에서는 대신powershell -NoProfile -ExecutionPolicy Bypass -File install.ps1을 실행하세요. - 변수는 설치 프로그램 맨 앞에서 한 번만 읽히므로, 같은 명령 안에서 설정한(또는 먼저 export한) 다음 설치 프로그램을 실행하세요.
설치 프로그램 변수
| 변수 | 제어 대상 | 기본값 |
|---|---|---|
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은 릴리스의 플랫폼 아카이브를 해당 릴리스의 SHA256SUMS와 대조해 SHA-256을 확인한 뒤 설치합니다(무결성 확인이며, 누가 게시했는지 증명하지는 않습니다) | 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 명령 심(shim)의 디렉터리 | $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을 실행하면 예시를 프로필 자리에 둔 채 미리
보기를 하며 아무것도 쓰지 않습니다.