Skip to content

Install AWC

Build the AWC binaries from source and put awcctl on PATH. AWC runs on Linux only.

Prerequisites

  • A Linux host, kernel 6.1 or newer, with cgroup v2, FUSE, and OverlayFS enabled.
  • Rust 1.94.0. rust-toolchain.toml pins the channel plus rustfmt and clippy. Rustup selects it automatically inside the repo.
  • cargo-deny, for the dependency audit. Install it with cargo install cargo-deny.

1. Confirm the host and the toolchain

uname -r             # expect 6.1 or newer
rustc --version      # expect rustc 1.94.0

If rustup is installed, it reads rust-toolchain.toml and installs the pinned toolchain on the first build.

2. Build all crates and binaries

make build

make build runs cargo build --workspace --all-targets. The README lists the other make targets, and .cargo/config.toml mirrors them as cargo aliases.

Default features are the lifecycle core

make build turns the fuse and s3 cargo features off. The binaries use a no-op base mount and the memory:// object store. That is enough to exercise the CLI and the host socket. For a real read-only FUSE base mount and the S3 transport, enable those features or use the release package in step 6. See Run locally.

3. Locate the binaries

make build writes debug binaries under target/debug/:

target/debug/awcd         host daemon
target/debug/awc-worker   background worker
target/debug/awc-control  control plane
target/debug/awcctl       CLI

4. Put awcctl on PATH

cp target/debug/awcctl ~/.local/bin/
awcctl --version

For development, add the build directory to PATH instead of copying:

export PATH="$PWD/target/debug:$PATH"

5. Verify the CLI

awcctl --help

awcctl status probes a running awcd over its Unix socket. It resolves the socket from --host-socket or AWC_HOST_SOCKET (default /run/awcd/awcd.sock), so it needs a live daemon. To stand one up, follow Run locally.

6. Build a release package (optional)

For stripped, signed binaries with the production FUSE and S3 features, run the packaging pipeline:

packaging/package.sh
# -> dist/awc-<version>-<target>.tar.gz

package.sh builds, signs, and tars the stripped binaries. The tarball also ships the database migrations, offline reference docs, golden manifest vectors, and an SPDX SBOM. For the install, enroll, and rollback steps on a VM, see Build and package.

Next