# Download SOW

> Install SOW from the Pigsty repository, a pinned RPM or DEB package, a Linux or macOS archive, or a source build — with the SHA-256 digest of every published artifact.

## Download SOW

**One self-contained binary, five ways to get it.** Every route installs the same executable and the same repository semantics, so choose by who owns the lifecycle on that host — not by feature set.

[Latest GitHub release](https://github.com/pgsty/sow/releases/latest)

[Installation guide](docs/start/install/)

## Pick the route that matches the host

Commands, links, and digests all come from the release record, so they cannot drift from the artifacts they name. The Pigsty repository tracks a rolling channel; every other route pins this exact tag.

## Pigsty Repo

The shortest route on a Linux host: SOW ships in the Pigsty infra repository, so `sow` installs and upgrades with everything else the box already gets from APT or YUM. Mainland China is served by the `repo.pigsty.cc` mirror.

**APT · Debian \/ Ubuntu**

```bash
sudo tee /etc/apt/sources.list.d/pigsty-infra.list > /dev/null <<'EOF'
deb [trusted=yes] https://repo.pigsty.io/apt/infra generic main
EOF

sudo apt update
sudo apt install -y sow
```

**YUM · RHEL \/ Rocky \/ Alma \/ Anolis**

```bash
sudo tee /etc/yum.repos.d/pigsty-infra.repo > /dev/null <<'EOF'
[pigsty-infra]
name=Pigsty Infra for $basearch
baseurl=https://repo.pigsty.io/yum/infra/$basearch
enabled=1
gpgcheck=0
module_hotfixes=1
EOF

sudo dnf makecache
sudo dnf install -y sow
```

**Mainland China mirror**

```bash
# Same paths, different host: repo.pigsty.io -> repo.pigsty.cc

# APT
sudo sed -i 's|repo.pigsty.io|repo.pigsty.cc|' /etc/apt/sources.list.d/pigsty-infra.list
sudo apt update

# YUM
sudo sed -i 's|repo.pigsty.io|repo.pigsty.cc|' /etc/yum.repos.d/pigsty-infra.repo
sudo dnf makecache
```

## RPM \/ DEB

Pinned native packages for an offline or promotion-gated pipeline. They carry the `1PGSTY` release suffix, install the executable at `/usr/bin/sow`, and ship the Apache-2.0 licence with it.

[RPM \/ DEB](https://github.com/pgsty/sow/releases/tag/v0.4.0)

**RPM · x86\_64 \/ aarch64**

```bash
ARCH=$(uname -m)
curl -fLO "https://github.com/pgsty/sow/releases/download/v0.4.0/sow-0.4.0-1PGSTY.$ARCH.rpm"
sudo rpm -Uvh "sow-0.4.0-1PGSTY.$ARCH.rpm"
```

**DEB · amd64 \/ arm64**

```bash
ARCH=$(dpkg --print-architecture)
curl -fLO "https://github.com/pgsty/sow/releases/download/v0.4.0/sow_0.4.0-1PGSTY_$ARCH.deb"
sudo apt install "./sow_0.4.0-1PGSTY_$ARCH.deb"
```

## Archive

Installer-free binaries for Linux and macOS on `amd64` and `arm64`, for CI, for macOS workstations, and for hosts where you own the install path. Each archive holds the `sow` executable, `README.md`, `CHANGELOG.md`, and the Apache-2.0 `LICENSE`. Windows is not a release target.

**Linux · amd64**

```bash
# Swap linux_amd64 for linux_arm64, darwin_amd64, or darwin_arm64.
curl -fLO https://github.com/pgsty/sow/releases/download/v0.4.0/sow_0.4.0_linux_amd64.tar.gz
tar -xzf sow_0.4.0_linux_amd64.tar.gz
sudo install -m 0755 sow /usr/local/bin/sow

sow version
```

**macOS · Apple Silicon**

```bash
curl -fLO https://github.com/pgsty/sow/releases/download/v0.4.0/sow_0.4.0_darwin_arm64.tar.gz
tar -xzf sow_0.4.0_darwin_arm64.tar.gz
mkdir -p ~/.local/bin
install -m 0755 sow ~/.local/bin/sow

sow help
```

## Source

Build the tag yourself. The module declares Go 1.27.0, metadata generation needs no C toolchain, and these are the flags the release pipeline uses, so a source build reports the same product version as the published one.

[Source](https://github.com/pgsty/sow/tree/v0.4.0)

**Clone\, check out\, build**

```bash
git clone https://github.com/pgsty/sow.git
cd sow
git checkout v0.4.0

CGO_ENABLED=0 go build -trimpath \
  -ldflags="-s -w -X github.com/pgsty/sow/internal/v2cli.Version=0.4.0" \
  -o sow ./cmd/sow
sudo install -m 0755 sow /usr/local/bin/sow
```

## Release assets

Every artifact this release publishes, with its SHA-256 digest. Download `SHA256SUMS` from the same release and verify the one line that names your file before you install it.

[Release assets](https://github.com/pgsty/sow/releases/tag/v0.4.0)

**Verify one artifact**

```bash
ASSET=sow_0.4.0_linux_amd64.tar.gz
curl -fLO https://github.com/pgsty/sow/releases/download/v0.4.0/SHA256SUMS

# Linux
grep "  $ASSET$" SHA256SUMS | sha256sum -c -
# macOS
grep "  $ASSET$" SHA256SUMS | shasum -a 256 -c -
```

| File | Checksum |
| --- | --- |
| [sow\-0\.4\.0\-1PGSTY\.aarch64\.rpm](https://github.com/pgsty/sow/releases/download/v0.4.0/sow-0.4.0-1PGSTY.aarch64.rpm) | SHA-256 · `4f164abd39bb8ee9512422657853aa6cada82a5d9245824c279e6a1b8e261f45` |
| [sow\-0\.4\.0\-1PGSTY\.x86\_64\.rpm](https://github.com/pgsty/sow/releases/download/v0.4.0/sow-0.4.0-1PGSTY.x86_64.rpm) | SHA-256 · `c8cf10461ba0cc56e0c270e7d0a8c073153575c4fef620f5dd5d48abc9b508ce` |
| [sow\_0\.4\.0\-1PGSTY\_amd64\.deb](https://github.com/pgsty/sow/releases/download/v0.4.0/sow_0.4.0-1PGSTY_amd64.deb) | SHA-256 · `447cc9c85dccb6d87573360c2a3e9b25b1fcf9c2ce87fcf9d8ae16ed52e1702b` |
| [sow\_0\.4\.0\-1PGSTY\_arm64\.deb](https://github.com/pgsty/sow/releases/download/v0.4.0/sow_0.4.0-1PGSTY_arm64.deb) | SHA-256 · `b9a81ab5dd87a3756d2930856e5849acde7f3035eeb703c2b379c436b701202d` |
| [sow\_0\.4\.0\_darwin\_amd64\.tar\.gz](https://github.com/pgsty/sow/releases/download/v0.4.0/sow_0.4.0_darwin_amd64.tar.gz) | SHA-256 · `760672c04327fa6dea8c0042baf09dba1444132aecc9f2af7c2d3ece6df20c04` |
| [sow\_0\.4\.0\_darwin\_arm64\.tar\.gz](https://github.com/pgsty/sow/releases/download/v0.4.0/sow_0.4.0_darwin_arm64.tar.gz) | SHA-256 · `e5a4a883b386a947b16931c7b56eaca41fb9bad3a232d7a900547846b3f94b79` |
| [sow\_0\.4\.0\_linux\_amd64\.tar\.gz](https://github.com/pgsty/sow/releases/download/v0.4.0/sow_0.4.0_linux_amd64.tar.gz) | SHA-256 · `ca1f18fa082c9566d0e884858879b6af983ffd9147c1aef9b45ad3603b63cd61` |
| [sow\_0\.4\.0\_linux\_arm64\.tar\.gz](https://github.com/pgsty/sow/releases/download/v0.4.0/sow_0.4.0_linux_arm64.tar.gz) | SHA-256 · `2aa3bd177b15581529f707150ef68b131e8eee834dcde0d5f74b11bd612f5b9b` |

## Where to go from here

- [**Quick Start**](docs/start/quickstart/) — Turn a directory of RPM and DEB files into a usable flat repository in five steps.

- [**First Workspace**](docs/start/workspace/) — Move from a Plain directory to a Managed workspace with membership, policy, and generations.

- [**CLI Reference**](docs/command/) — Syntax, selection rules, output, state transitions, and exit behavior for every command.

- [**Serve a repository**](docs/tutorial/serving/) — Publish the generated public tree with the HTTP server you already operate.

- [**Compatibility**](docs/reference/compatibility/) — Which distributions, package clients, and object-storage targets are covered.

- [**Release notes**](blog/release/) — What changed in each tag, in both languages, with its artifacts and upgrade notes.

## Installed? Build the first repository.

[Get Started](docs/start/)

[pgsty/sow](https://github.com/pgsty/sow)