Skip to content

Tutorials

Build, sign, serve, and update RPM and DEB repositories.

These tutorials cover repository creation, signing, publication, and updates. Start with Installation if you have not installed SOW.

Create RPM architecture views, filter packages, set version limits, and configure DNF.

Use both package formats and architectures, test installation, and maintain rolling channels, stable releases, and monthly snapshots.

Follow the examples

Run commands in order. Replace uppercase placeholders and /path/to/ inputs with your values. Examples under /srv require a writable directory; you can substitute a path under your home directory.

The YUM and APT tutorials each start with a new workspace. To combine them, create the second Dist in the existing pigsty Repository and keep both Dist definitions in sow.yml.

Each tutorial shows how to check its result. For a command error or interrupted operation, see Troubleshooting.

Build a YUM Repository

Create a managed RPM repository, apply membership policy, serve it, and configure dnf.

Migrate an Existing YUM Repository

Move a flat RPM repository to SOW while preserving client cache compatibility, package trust, and publication time.

Build an APT Repository

Create a managed DEB repository with by-hash indexes and configure an APT client.

Sign Your Repository

Sign RPM and APT metadata, optionally sign RPM packages, and enable client verification.

Serve and Publish Repositories

Serve a public Repository with Nginx and publish verified Generations to a filesystem target.

Build the pigsty-infra Repository

Turn an existing dual-architecture RPM and DEB package pool into an infra repository, then validate installs, roll updates, promote to Stable, and take monthly snapshots.