yum-bundle

A declarative package manager for yum/dnf, inspired by Homebrew’s brew bundle.

Overview

yum-bundle provides a simple, declarative, and shareable way to manage yum/dnf packages and repositories on RPM-based systems (RHEL, CentOS, Fedora, Rocky Linux, AlmaLinux). Define your system dependencies in a Yumfile and install them with a single command.

Features

  • Declarative Package Management: Define packages and repos in a simple text file
  • Idempotent Operations: Safe to run multiple times — already-installed items are skipped
  • Full dnf/yum Ecosystem Support: Packages, GPG keys, .repo files, baseurls, COPR repos, EPEL, DNF modules, and RPM URL installs
  • Version Pinning: Install specific package versions via Yumfile.lock
  • Simple CLI: install, check, cleanup, sync, dump, lock, outdated, doctor
  • GitHub Actions Integration: Native action with caching for CI/CD

Quick Start

# Install yum-bundle
curl -fsSL https://raw.githubusercontent.com/yum-bundle/yum-bundle/main/install.sh | sudo bash

# Create a Yumfile
cat > Yumfile <<EOF
yum vim
yum curl
yum git
EOF

# Install packages
sudo yum-bundle

Use Cases

Developer Onboarding

A new developer joins a project, clones the repo, and runs sudo yum-bundle to get all required system dependencies.

Container Image Build

Replace long RUN dnf install -y ... lines with a Yumfile and a single yum-bundle command.

System Sync

Use yum-bundle dump > Yumfile on your primary workstation and then sudo yum-bundle on a new server to reproduce the setup.

CI/CD

Use the GitHub Action for seamless integration with GitHub workflows, including built-in package caching and reproducible builds via lockfiles.

Documentation


Released under the Apache 2.0 License

This site uses Just the Docs, a documentation theme for Jekyll.