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, 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. 36 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: x86_64 · aarch64