Quick Start
Use Plain mode to build a repository from a directory of packages. It works without a workspace or configuration file. You need SOW, Python 3 for the preview, and at least one RPM or DEB file.
Prepare a directory
Create a writable directory. Replace the input paths below and run the copy command for each package format you have:
Keep packages at the directory top level; sow create does not scan subdirectories.
Generate metadata
With one RPM and one DEB, the output includes:
The directory now has indexes beside the original packages:
SOW creates indexes for the formats present. Plain mode does not create APT Release, InRelease, or Release.gpg files. It leaves package names and paths unchanged.
Start a local server
Run this command in a separate terminal and leave it running:
If this host has no APT or DNF client, check the HTTP entry point for the format you added:
This server is reachable only from the same host. For other clients or a persistent service, follow Serve Repositories.
Configure a local client
On a Linux host running the preview server, create the source file for your package manager. These examples use unsigned metadata and disable client signature checks. For signed metadata, use a Managed workspace and the signing tutorial.
Save this as /etc/yum.repos.d/sow-quickstart.repo:
Refresh the index and install one of your packages:
Save this as /etc/apt/sources.list.d/sow-quickstart.list:
The final ./ selects a flat repository. Refresh the index and install one of your packages:
Replace PACKAGE_NAME with a package name from its metadata, not its filename. On macOS, use the HTTP checks above; run package installation on a compatible Linux client.
Update the repository
Add or remove package files, then regenerate the indexes:
Unchanged package files and options produce the same metadata. A repeat run reports noop=true.
When replacing another YUM metadata generator, follow Migrate an Existing YUM Repository to preserve the timestamp that cached clients expect.
When the preview is complete, stop the server with Ctrl+C and remove its source file from your client. Keep the package directory if you want to reuse it.
Next
Use a Managed workspace for named Dists, architecture views, version limits, signed metadata, and publication targets. See sow create for all Plain options.