# Environment and configuration ## Process environment | Variable | Where it is read | Default | | --- | --- | --- | | `EASYBUILD_INSTALLPATH_SOFTWARE` | `--software` when the flag is omitted | required for `run` | | `EASYBUILD_INSTALLPATH_MODULES` | `--modules` when the flag is omitted | required for `run` | | `EB_STAGED_REBUILD_STATE_ROOT` | `--state-root` when the flag is omitted | `/.eb-staged-rebuild` | | `EB_STAGED_REBUILD_EB` | `--eb` | `eb` | | `EB_STAGED_REBUILD_GRACE_HOURS` | `--grace-hours` when the flag is omitted | 144 | | `EB_STAGED_REBUILD_INTEGRATION` | `tests/test_easybuild_integration.py` | unset; the integration tests are skipped | | `EB_STACK_BIN` | ledger tests | unset; `tests/test_ledger_eb_stack.py` skips, and the build-events and ledger-maintenance suites fail | `EB_STANDIN_FAIL=1` is read only by `docs/examples/eb-standin`. ## Ledger configuration for `run` `--ledger-config` is a JSON object. `load_config` in `eb_staged_rebuild.ledger_adapter` requires: | Key | Content | | --- | --- | | `eb_stack` | Absolute path of the eb-stack executable | | `log` | Absolute path of the JSON Lines log | | `key` | Absolute path of the Ed25519 PKCS#8 signing key | | `head` | Absolute path of the signed head file | | `actor`, `stack`, `target` | Non-empty strings copied into each record | | `action` | `install`, `rebuild-inplace` (default), or `rebuild-bump` | | `public_key` | Optional absolute path. With it, a receipt also needs `eb-stack ledger verify` | | `required` | Boolean, default `true` | | `timeout` | Positive number of seconds, default 120 | The record `location` is the stable install directory. The journal schema for that run is 4. The build-events configuration is a different object; it has `outbox` and no `head`. See {doc}`../howto/build-events`. ## State-root layout | Path | Role | | --- | --- | | `/.lock` | Local flock gate. Holds the holder's pid while the lock is taken. | | `/.lock.posix` | POSIX record-lock sidecar. | | `/generations//` | The generation EasyBuild writes. | | `/runs//journal.json` | The journal. | | `/runs//prepared/` | Module files about to be published. | | `/runs//backups/` | Previous module bytes. | | `/runs//prepare-context.json` | Argument to `--prepare`. | | `/runs//outbox.json` | Ledger events for this publication. | | `/retired//` | Module files moved by `retire`. | | `software//..` | Hidden sibling beside the live install. Lives on the software filesystem, outside the state root. |