The Rust bootstrap is split into two phases:
system- Changes the machine layer.
- Configures Ubuntu APT sources and third-party package repositories.
- Installs APT packages, updates certificates, and applies optional global
settings such as the
moldlinker override. - Uses a temporary helper checkout and does not intentionally manage the
durable checkout under
$HOME. home- Changes the user layer under
$HOME. - Adds helper tool paths to shell startup files.
- Clones or updates the managed helper checkout.
- Installs user tools such as
uv,bun,rustup, cargo tools, Bun global packages, skills, hooks, and sub-agent configuration. - Does not run APT, change
/etc, change/usr, or mutate APT state. both- Runs
systemfirst and thenhome. - This is the default for the compatibility wrapper.
Run system for a fresh or reset system layer. Run home when creating or
refreshing a warm $HOME cache. In a warm-cache environment, run the phases
separately:
RUST_ENTRYPOINT_PHASE=system bash rust-entrypoint
RUST_ENTRYPOINT_PHASE=home bash rust-entrypoint
For a normal one-shot setup, use the default:
bash rust-entrypoint
The home phase expects the system phase to have prepared the packages and shared libraries required by the user tools.