Skip to content
Apothem
Recettes pratiques

Variables d'environnement de l'installateur

Piloter l'installateur par script (destination, source, environnement, profil, vérification) avec des variables d'environnement.

Objectif : piloter install.sh / install.ps1 sans modifier le script, en définissant des variables d'environnement avant de l'exécuter.

Prérequis

  • Un shell POSIX (bash) ou PowerShell 5.1+. Les exemples PowerShell ci-dessous exécutent pwsh (PowerShell 7+). Sous Windows PowerShell 5.1, exécutez plutôt powershell -NoProfile -ExecutionPolicy Bypass -File install.ps1.
  • Les variables sont lues une seule fois, au début de l'installateur ; définissez-les donc dans la même commande (ou exportez-les d'abord), puis exécutez l'installateur.

Les variables de l'installateur

VariableContrôleValeur par défaut
APOTHEM_HOMEDestination d'installation de l'arborescence source clonée$HOME/.apothem
APOTHEM_REPODépôt Git distant à clonerhttps://github.com/ahmed-g-gad/apothem
APOTHEM_REFRef Git à extraire ; non définie, elle résout la dernière étiquette signée vMAJOR.MINOR.PATCH, une valeur d'étiquette l'épingle, main sélectionne la branche mouvante. Une ref qui n'est pas une étiquette, comme main, interrompt l'opération sauf si APOTHEM_ALLOW_UNVERIFIED=1.non définie (dernière étiquette signée)
APOTHEM_ALLOW_UNVERIFIEDLorsqu'elle vaut 1, rétrograde un échec de vérification de la signature de l'étiquette d'un arrêt fatal à un avertissement0 (vérification, échec fermé)
APOTHEM_VERIFYsignature vérifie la signature GPG de l'étiquette de publication ; checksum installe l'archive de plateforme de la publication après avoir contrôlé son SHA-256 par rapport au SHA256SUMS de la publication (intégrité, et non preuve de l'identité de la personne qui l'a publiée)signature
APOTHEM_RELEASE_BASEBase de téléchargement pour le mode checksum<APOTHEM_REPO>/releases/download
APOTHEM_SOURCEArborescence source locale explicite à utiliser au lieu de clonernon définie (clonage)
APOTHEM_HARNESSEnvironnement de portée utilisateur à installer (antigravity, claude-code, codex, hermes, open-claw, opencode, qwen-code). L'installateur ne transmet pas --project ; un environnement de portée projet échoue donc avec project.required ; installez ceux-ci ensuite avec apothem install --harness NAME --project PATH.claude-code
APOTHEM_PROFILEChemin vers le YAML du profil partagé$HOME/.config/apothem/profile.yaml
APOTHEM_SKIP_VERIFYLorsqu'elle vaut 1, ignore l'étape de vérification post-installation0 (la vérification s'exécute)
APOTHEM_AUTO_INSTALL_DEPSLorsqu'elle vaut 1, installe automatiquement les prérequis click / rich manquants, sans demande de confirmation0 (demande de confirmation, ou refus dans un pipe non interactif)
APOTHEM_BIN_DIRRépertoire du shim de commande apothem mis en place$HOME/.local/bin (POSIX) ; %LOCALAPPDATA%\Microsoft\WindowsApps (Windows)
NO_COLORDésactive la sortie en couleur lorsqu'elle est définie, quelle que soit sa valeur (no-color.org) ; la couleur est aussi désactivée chaque fois que la sortie n'est pas un terminal (un pipe, un fichier, un journal de CI)non définie (couleur uniquement dans un terminal interactif)

APOTHEM_SOURCE a priorité sur un clonage : lorsqu'elle pointe vers un checkout qui contient src/apothem, l'installateur l'utilise directement, ne touche jamais à APOTHEM_REPO / APOTHEM_REF, et ignore la résolution de l'étiquette et la vérification de la signature (rien n'est récupéré, donc il n'y a rien à vérifier).

Lorsque APOTHEM_HOME pointe vers un répertoire existant qui n'est pas un clone git, l'installateur refuse de le supprimer : déplacez-le, faites pointer APOTHEM_HOME ailleurs, ou passez --yes (-Yes sous Windows) pour autoriser le remplacement. Un répertoire vide obsolète est remplacé sans cette option.

Modèle de confiance

Lorsque APOTHEM_REF n'est pas définie, l'installateur résout la dernière étiquette de publication signée et vérifie sa signature avec git verify-tag avant de matérialiser la moindre configuration ; une étiquette non signée ou altérée interrompt l'installation. Une étiquette signée dont la clé publique du mainteneur est absente du trousseau local interrompt plutôt l'installation avec des indications pour importer la clé : importez la clé et comparez son empreinte avec la valeur publiée dans SECURITY.md. Épinglez une publication connue avec APOTHEM_REF=<tag>, en prenant l'étiquette sur la page des publications ; une étiquette épinglée est vérifiée de la même manière. Sélectionnez la branche mouvante avec APOTHEM_REF=main plus APOTHEM_ALLOW_UNVERIFIED=1 ; cette installation n'est pas vérifiée, et main seule interrompt l'installation, car une branche n'est pas une étiquette signée. Définissez APOTHEM_ALLOW_UNVERIFIED=1 seule pour passer outre un échec de vérification avec un avertissement (usage isolé du réseau, local, ou antérieur aux publications signées).

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

Étapes (POSIX bash)

  1. Installer un environnement de portée utilisateur autre que celui par défaut :

    APOTHEM_HARNESS=codex bash install.sh
  2. Épingler la destination d'installation et sélectionner la branche mouvante main. Une branche n'est pas une étiquette signée : l'installateur a donc aussi besoin de APOTHEM_ALLOW_UNVERIFIED=1 :

    APOTHEM_REF=main APOTHEM_ALLOW_UNVERIFIED=1 APOTHEM_HOME=/opt/apothem bash install.sh
  3. Utiliser un checkout local et un profil personnalisé, en ignorant la vérification :

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

Étapes (PowerShell)

Définissez chaque variable sur $env: avant d'exécuter l'installateur :

$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

Vérifier

L'installateur affiche ✓ Harness <name> installed, puis (sauf si APOTHEM_SKIP_VERIFY=1) ✓ verify passed. Confirmez de manière indépendante :

apothem verify --harness codex

Pour un environnement de portée projet tel que Cursor, lancez vous-même l'installation et la vérification après l'installateur, avec --project :

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

Lorsque le profil n'existait pas encore, l'installateur en crée un à partir de l'exemple et poursuit l'installation et la vérification au cours de la même exécution. Les champs d'identité de l'exemple sont des espaces réservés ; l'installation affiche donc une remarque. Modifiez $APOTHEM_PROFILE, puis exécutez apothem update --harness <name> pour appliquer votre identité. Un --dry-run sans profil effectue l'aperçu avec l'exemple en place et n'écrit rien.

Voir aussi

On this page