01.2 Install scripts and PATH
Shell install flows, PATH hygiene, and verifying the binary the shell actually runs.
Install scripts and PATH
Installing a compiler is two problems: get bytes onto disk and convince your shell to run those bytes instead of the haunted binary from 2019 in /usr/local/bin.
Install scripts (high level)
Section titled “Install scripts (high level)”The Downloads page exposes platform tabs with a copy-paste command block. Scripts generally:
- Detect OS/arch (or ask you to pick the right asset).
- Download the release artifact (GitHub or CDN mirror).
- Place
beskidin a predictable directory (often user-local). - Print instructions to add that directory to
PATH.
Follow the tab for your platform on Downloads; do not cargo-cult a macOS curl line on WSL unless you enjoy surprise architecture mismatches.
PATH — the silent failure mode
Section titled “PATH — the silent failure mode”After install, open a new terminal (or source your profile). Then:
which beskidbeskid --versionIf which points somewhere unexpected, you have competition:
accTitle: PATH command selection
accDescr: The shell selects the first Beskid command on PATH; an old or incompatible command causes misleading diagnostics.
flowchart TD
A[You type beskid] --> B{Which binary wins?}
B -->|First on PATH| C[That binary runs]
B -->|Wrong one| D[Old version / wrong arch / shell function]
D --> E[Mystery diagnostics]
Text equivalent: The shell runs the first beskid command on PATH. If that command is an old binary, an incompatible binary, or a shell function, verify the command location before you diagnose compiler output.
Common fixes:
- Put the install directory before stale paths in
PATH(profile ordirenv). - Remove duplicate installs you forgot about.
- On macOS, check whether Rosetta vs native arch matches the downloaded build.
Corelib materialization (first run)
Section titled “Corelib materialization (first run)”On launch, the CLI ensures the bundled corelib tree is available and may print a short message when it materializes or updates a copy. Override with BESKID_CORELIB_SOURCE when developing against a different corelib checkout (see CLI command reference).
That is not “install failed”—it is the toolchain making standard library sources reachable.