magus v0.3.0 is out. See what's new
¶ View markdown source · ✎ Suggest an edit
1 min read

Install on macOS

magus ships as a single self-contained binary. Download it with curl, extract it into a PATH directory you own - no root, no sudo - then verify it before first run.

Quick install

VERSION=v0.3.0
ASSET=magus_${VERSION}_darwin_arm64.tar.gz       # Apple Silicon
# Intel Macs:
#   ASSET=magus_${VERSION}_darwin_amd64.tar.gz
curl -fLO "https://github.com/egladman/magus/releases/download/${VERSION}/${ASSET}"
mkdir -p ~/.local/bin
tar -xzf "${ASSET}"
mv magus ~/.local/bin/
magus version

${VERSION} above is the current release. The unsuffixed archive is the static build and the installer default. GitHub Releases also lists a -cgo archive, which is the one to take if a magusfile calls Buzz FFI (zdef()), since the static build compiles it out.

Verify the download

Fetch the manifest and its signature next to the tarball:

curl -fLO "https://github.com/egladman/magus/releases/download/${VERSION}/SHA256SUMS"
curl -fLO "https://github.com/egladman/magus/releases/download/${VERSION}/SHA256SUMS.sig"

Then verify the Ed25519 signature first, and only then the checksum - checking a hash against an unverified manifest proves nothing. The exact commands (macOS uses shasum -a 256) are in Verify a release.

Clear the quarantine flag

If macOS blocks the binary ("cannot be opened, unidentified developer"), strip the quarantine attribute Gatekeeper added on download:

xattr -d com.apple.quarantine ~/.local/bin/magus

Put it on your PATH

If magus version prints command not found, the install directory is not on your PATH. Add it once, in your shell rc:

# zsh (default) or bash: append to ~/.zshrc or ~/.bashrc
export PATH="$HOME/.local/bin:$PATH"

Open a new shell afterward, then re-run magus version.

Next steps

downloadinstallmacosapple siliconquarantinepath
Last updated (e4f13c3d)
Earlier changes on this page (3)

Full history ↗ · Blame source ↗

Glossary

Magusfile

The magusfile.buzz that declares a project's targets (as export funs) and binds its spells. See targets.

Ward

A coded diagnostic that inspects a resolved op and nudges or blocks an anti-pattern before it runs. See wards.

Buzz

The language magusfiles are written in (the .buzz engine). See engines.

Conventions

This page uses none of the site's convention markers. The full set is on the conventions page.