Define your system dependencies once in a Yumfile. Install, sync, and audit them with a single command — idempotently, every time.
$ curl -fsSL https://raw.githubusercontent.com/yum-bundle/yum-bundle/main/install.sh | sudo bash
$ sudo yum-bundle
One Yumfile. One command. Your packages, repos, keys, and modules — all applied.
Everything you need to manage system dependencies on RPM-based Linux — without the complexity.
One Yumfile describes your entire system dependency set. Commit it to git and share it.
Safe to run repeatedly. Already-installed packages, keys, and repos are skipped without error.
Import GPG keys, add .repo files, enable COPR, or add a baseurl — all from one file.
Enable module streams like nodejs:18 or php:8.1 before installing packages.
yum-bundle sync installs missing packages and removes ones no longer in the Yumfile.
Native action with built-in caching and lockfile support for reproducible CI builds.
Validate your Yumfile and environment before applying. Machine-friendly JSON output for CI.
Generate a Yumfile from your current system's installed packages in one command.
All subcommands at a glance. See full docs for flags and examples.
| Command | Description |
|---|---|
sudo yum-bundle |
Install all packages, repos, keys, and modules from the Yumfile |
yum-bundle sync |
Install missing + remove packages no longer in the Yumfile |
yum-bundle check |
Exit 0 only if all Yumfile entries are satisfied; JSON flag for CI |
yum-bundle dump |
Print a Yumfile from currently-installed packages |
yum-bundle lock |
Pin installed versions to Yumfile.lock for reproducible installs |
yum-bundle outdated |
List packages with available upgrades (exit 1 if any) |
yum-bundle doctor |
Validate the Yumfile and check environment prerequisites |
yum-bundle cleanup |
Remove packages tracked by yum-bundle but no longer in the Yumfile |
Idempotency is hard to get right. Repository and key management is error-prone. Scripts grow unmaintainable.
yum-bundle gives you a single declarative file and predictable behavior every time — no YAML, no DSL, no config management paradigm to learn. It works with your existing dnf/yum ecosystem, handles GPG keys, COPR repos, DNF modules, and gets out of your way.