Skip to main content

Install

aqua is a single binary written in Go.

  1. Install the binary aqua in PATH
  2. Set the environment variable PATH
  3. (Optional) Shell completion

1. Install the binary aqua in PATH​

Homebrew​

You can install aqua using Homebrew.

Homebrew Core Formula: aqua

brew install aqua

Or

brew install aquaproj/aqua/aqua

Winget​

From aqua v2.17.4, you can install aqua by Winget.

winget install aquaproj.aqua
caution

Due to the mechanism of Winget, it takes a few days at most until we can install the latest version after the latest version has been released. Everytime a new version is released, we need to send a pull request to microsoft/winget-pkgs and wait until the pull request is merged. The list of pull requests

Scoop​

From aqua v2.16.2, you can also install aqua by Scoop.

Main bucket:

scoop bucket add main
scoop install main/aqua

Our bucket:

scoop bucket add aquaproj https://github.com/aquaproj/scoop-bucket
scoop install aqua

go install​

go install github.com/aquaproj/aqua/v2/cmd/aqua@latest

Download prebuilt binaries from GitHub Releases​

https://github.com/aquaproj/aqua/releases

Verify downloaded binaries from GitHub Releases​

You can verify downloaded binaries using some tools.

  1. Cosign
  2. slsa-verifier
  3. GitHub CLI

--

  1. Cosign:

You can install Cosign by aqua.

aqua g -i sigstore/cosign
# Download assets from GitHub Releases.
gh release download -R aquaproj/aqua v2.34.0
# Verify a checksum file.
cosign verify-blob \
--signature aqua_2.34.0_checksums.txt.sig \
--certificate aqua_2.34.0_checksums.txt.pem \
--certificate-identity-regexp 'https://github\.com/suzuki-shunsuke/go-release-workflow/\.github/workflows/release\.yaml@.*' \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
aqua_2.34.0_checksums.txt

Output:

Verified OK

After verifying the checksum, verify the artifact.

cat aqua_2.34.0_checksums.txt | sha256sum -c --ignore-missing -
  1. slsa-verifier

You can install slsa-verifier by aqua.

aqua g -i slsa-framework/slsa-verifier
# Download assets from GitHub Releases.
gh release download -R aquaproj/aqua v2.34.0
# Verify an asset.
slsa-verifier verify-artifact aqua_darwin_arm64.tar.gz \
--provenance-path multiple.intoto.jsonl \
--source-uri github.com/aquaproj/aqua \
--source-tag v2.34.0

Output:

Verified signature against tlog entry index 133024968 at URL: https://rekor.sigstore.dev/api/v1/log/entries/108e9186e8c5677af3bf58014b72ab1571f566855d27109b70403a96394003283d540765fc0e2c20
Verified build using builder "https://github.com/slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@refs/tags/v2.0.0" at commit 2f9cc345c3c49b9a0c8fcd9d8e1c461bbd8fd533
Verifying artifact aqua_darwin_arm64.tar.gz: PASSED

PASSED: SLSA verification passed
  1. GitHub CLI

You can install GitHub CLI by aqua.

aqua g -i cli/cli
# Download assets from GitHub Releases.
gh release download -R aquaproj/aqua v2.35.0-1 -p aqua_darwin_arm64.tar.gz
# Verify an asset.
gh attestation verify aqua_darwin_arm64.tar.gz \
-R aquaproj/aqua \
--signer-workflow suzuki-shunsuke/go-release-workflow/.github/workflows/release.yaml

Output:

Loaded digest sha256:763c8d5e6b8585ebb9d9bab0ee1fcafd4a29c3e7f44a85ac77780bac3ca6fff1 for file://aqua_darwin_arm64.tar.gz
Loaded 1 attestation from GitHub API
✓ Verification succeeded!

sha256:763c8d5e6b8585ebb9d9bab0ee1fcafd4a29c3e7f44a85ac77780bac3ca6fff1 was attested by:
REPO PREDICATE_TYPE WORKFLOW
suzuki-shunsuke/go-release-workflow https://slsa.dev/provenance/v1 .github/workflows/release.yaml@7f97a226912ee2978126019b1e95311d7d15c97a

2. Set the environment variable PATH​

info

From aqua v2.8.0, aqua root-dir command is available.

export PATH="$(aqua root-dir)/bin:$PATH"
tip

If you use aqua combined with other version manager such as asdf, please add ${AQUA_ROOT_DIR}/bin to the environment variable PATH after other version manager. For detail, please see here.

Linux, macOS​

export PATH="${AQUA_ROOT_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/aquaproj-aqua}/bin:$PATH"

Windows​

About Windows, please see here too.

  • Git Bash (mingw)
  • PowerShell
  • Command Prompt

Git Bash (mingw)​

export PATH="${AQUA_ROOT_DIR:-${XDG_DATA_HOME:-${LOCALAPPDATA:-$HOME/AppData/Local}}/aquaproj-aqua}/bin:$PATH"

The order of priority is as follows:

  1. $AQUA_ROOT_DIR/bin: If $AQUA_ROOT_DIR is set
  2. $XDG_DATA_HOME/aquaproj-aqua/bin: If $XDG_DATA_HOME is set
  3. $LOCALAPPDATA/aquaproj-aqua/bin: If $LOCALAPPDATA is set
  4. $HOME/AppData/Local/aquaproj-aqua/bin

PowerShell​

Set-Item Env:Path "$Env:LOCALAPPDATA\aquaproj-aqua\bin;$Env:Path"

If LOCALAPPDATA isn't set,

Set-Item Env:Path "$Env:HOMEPATH\AppData\Local\aquaproj-aqua\bin;$Env:Path"

You can customize the path with the environment variable AQUA_ROOT_DIR.

Set-Item Env:Path "$Env:AQUA_ROOT_DIR\bin;$ENV:Path"

Command Prompt​

SET PATH=%LOCALAPPDATA%\aquaproj-aqua\bin;%PATH%

If LOCALAPPDATA isn't set,

SET PATH=%HOMEPATH%\AppData\Local\aquaproj-aqua\bin;%PATH%

You can also customize the path with the environment variable AQUA_ROOT_DIR.

SET PATH=%AQUA_ROOT_DIR%\bin;%PATH%