Installation
SOW is one executable. It needs no daemon, database service, or language runtime. Release archives support Linux and macOS on amd64 and arm64. Linux also has RPM and DEB packages.
Use the Download page to select a SOW 0.6.1 artifact.
Download it and SHA256SUMS into a separate download directory.
Install an archive
For Linux amd64, verify the archive, extract it, and install the executable:
For macOS, select darwin_amd64 or darwin_arm64. Substitute that archive name and use shasum -a 256 -c - for the checksum command.
To install without root access:
Add the export PATH line to your shell profile to keep it in new sessions.
Install a Linux package
Verify the downloaded package against its entry in SHA256SUMS. Then run the command for your distribution:
For ARM64, use the RPM ending in .aarch64.rpm or the DEB ending in _arm64.deb. Packages install the executable at /usr/bin/sow.
Build from source
Install Go 1.27.3 or newer and Git. The build uses CGO_ENABLED=0 and needs no C compiler.
Verify the installation
version shows the product version, target operating system and architecture, and Go toolchain. help lists commands. Use sow help COMMAND for a command’s options.
Upgrade to 0.6.1
SOW 0.6.1 keeps database schema v13, configuration schema sow/v3, and the public directory layout.
Workspaces already on 0.5.0 or 0.6.0 need no schema migration.
- Stop all workspace writers.
- Back up the complete workspace with a tool that preserves hard links, such as
rsync -aHortar. - Install SOW 0.6.1.
- Build and check each Repository in
sow.yml:
Replace REPOSITORY with its configured name. A current repository produces a no-op build.
An unchanged build keeps its Generation and metadata timestamps.
New builds record one publication time and reuse it during recovery.
Workspaces from 0.3 or 0.4
These workspaces need migration before the first build. After backing up the workspace and installing 0.6.1, run:
Repeat these commands for each Repository. Migration updates the database; the rebuild applies the current RPM verification and APT metadata rules.
Keep the backup for rollback to a version that uses an older schema.
See sow repo migrate and the 0.6.0 release notes.
Upgrade a Plain repository
Plain mode has no database to migrate. For an existing YUM repository, follow Migrate an Existing YUM Repository before changing its generator. The --metadata-timestamp default remains 0. Set the timestamp from the repository’s publication history so cached YUM clients accept the new index.
Storage and optional tools
The SOW user needs read access to input packages and write access to the repository. Keep Managed workspaces on a local POSIX filesystem with file locks, fsync, and atomic rename.
Package parsing and metadata generation run inside SOW. Optional signing needs these host tools:
| Signing method | Required tools |
|---|---|
| Metadata signing with an OpenPGP key file or key material | None |
| Metadata signing with a GPG key identifier | gpg and gpg-agent |
| RPM package signing | rpm with a working GPG signing setup |
Continue with Quick Start for Plain mode or First Workspace for Managed mode.