OmniPackage documentation
Reference and guides for OmniPackage, a CLI for building and publishing signed RPM, DEB, and pacman packages to many Linux distributions from one YAML config. For the project overview and the "why", see omnipackage.org.
Where to start
- Getting started — install the CLI and ship the bundled C example end-to-end.
- How it works — what
omnipackage releasedoes, step by step. - Configuration — every key in
.omnipackage/config.yml. - CLI reference — every subcommand and flag.
30-second example
omnipackage init .
echo "GPG_KEY=$(omnipackage gpg generate --name 'Your Name' --email you@example.com --format base64)" >> .env
# edit .omnipackage/config.yml — point repositories: at your bucket
omnipackage release .
Full walkthrough: Getting started.
Real-world projects
olegantonyan/mpz— Qt desktop music player. 31 build targets, Qt5/Qt6 split via YAML anchors, per-distro CMake flags, R2 with Cloudflare cache purges.omnipackage/omnipackage-rs— OmniPackage built with itself.before_build_scriptinstalls a current Rust toolchain on older distros; newer ones use distro-packaged Rust. Dual GHCR caches cover org and contributor-fork workflows.omnipackage/examples— minimal one-per-language templates (C, C++, CMake, Rust, Go, Python, Ruby, Crystal, Electron, Tauri).
See Examples for details.
Links
- omnipackage.org — project landing page
- GitHub — source, issues, releases
- Install OmniPackage — apt / dnf / zypper / pacman one-liners