We had centralized software repositories long before the App Store. Why is distributing software for Linux still so hard? OmniPackage makes it easy.
Create RPM and DEB packages for many distros using native package managers. Runs on GitHub Actions, your laptop, or anywhere else.
Get started Star on GitHub Learn more
OmniPackage helps you create RPM spec files and similar sets of files for DEB. For building, it spawns rpmbuild and dpkg-buildpackage inside containers for each supported distro. After building, it signs the packages via GPG key and uploads them to S3-compatible storage, which serves as a repository. Finally, it generates a web page with instructions on how to add the repository and install your package. You can share a link to this page with your users.
One command to build, sign, and publish your packages:
$ omnipackage release ~/projects/my-awesome-project
OmniPackage helps you scaffold an RPM spec file and the other files required for DEB and RPM packaging.
Fill in your S3 credentials and a few other config options, then run omnipackage release. Packages are built in containers for each distro, signed with your GPG key, and uploaded to your bucket.
Share the install page generated alongside the packages so your users can add the repository and install your software with their native package manager.
On the latest Ubuntu, for example, they run four commands to add the repository and install your package:
$ echo 'deb https://repositories.omnipackage.org/omnipackage-rs/stable/ubuntu_26.04 stable/' | sudo tee /etc/apt/sources.list.d/omnipackage_omnipackage.list
$ curl -fsSL https://repositories.omnipackage.org/omnipackage-rs/stable/ubuntu_26.04/stable/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/omnipackage_omnipackage.gpg > /dev/null
$ sudo apt-get update
$ sudo apt-get install omnipackage
Users do this once. From then on, updates to your software arrive through apt upgrade alongside everything else from the official Ubuntu repos — no extra steps, no separate updater. The same applies on Debian, Fedora, openSUSE, and the other supported distros, each through its native package manager.
Loading supported distros…
Fetched live from distros.yml in the OmniPackage repo.