RakuOS 2026.08.22 Changelog
August 22, 2026 · Announcements
Highlight: rum
New native Rust package manager, rum, built specifically for RakuOS's overlay architecture. See https://rakuos.org/blog/release-2026-08-22 for the full writeup.
Core architecture
- libsolv-backed dependency resolver (the same SAT-solving engine dnf5 uses), replacing the original hand-rolled resolver.
- Split-mode overlay awareness: a read-only base rpmdb snapshot from the image kept fully separate from rum's own overlay rpmdb, no merging or diffing required.
- Install/upgrade/remove/reinstall/downgrade/distro-sync are overlay-only by design and never shadow or duplicate a base-image package, even when named explicitly.
- Standalone mode auto-detected outside RakuOS overlay systems (distrobox containers, image builds, plain Fedora hosts) — same binary, single-rpmdb behavior.
- --installroot support for pre-baking an overlay + rpmdb into a factory root, used by image builds.
- Repo metadata caching (/var/cache/rum/repos), with metadata_expire= and --refresh/makecache.
- Copr repo support (rum copr enable/disable), with chroot auto-guessed from os-release.
- Per-repo exclude=/includepkgs=/skip_if_unavailable=, repo priority= and cost= weighting, and cross-repo download fallback with EVR guarding.
- Global proxy=/proxy_username=/proxy_password= support, and fastestmirror= mirror ranking (on by default, matching dnf5).
- varsdir= support for custom $myvar-style repo URL variables.
- --setopt key=value generic [main] config overrides, sharing the same key handling as rum.conf itself.
- dnf-style verbose transaction output: repo refresh, download, GPG, and per-package transaction progress.
- HTTP retry logic on every metadata/package download.
- Protected packages, installonlypkgs=/installonly_limit=, and weak-dependency (Recommends/Suggests/Enhances/Supplements) resolution, including best-effort weak-dep installs.
- Multilib and cross-arch correctness: consistent EVRs across arches, name.arch install specs, --multilib-all.
- --allowerasing and --best (SOLVER_FORCEBEST) resolver flags.
- Version-pinned install specs (exact NEVRA).
Commands
- install, remove, upgrade (with --advisory/--security/--bugfix/--enhancement/--advisory-severity filters), reinstall, downgrade, distro-sync, autoremove, swap, mark (install/dependency reasons), check (--dependencies, --duplicates, --obsoleted). All install-family commands (install/remove/upgrade/reinstall/downgrade/distro-sync/autoremove/debuginfo-install/builddep) accept --dry-run.
- list — with --base, --available, --extras, --obsoletes, --upgrades, --autoremove, --showduplicates.
- search (with --showrepo), provides, check-upgrade (with --json; now shares the same locked-solve path as upgrade, so it never lists a base-locked name), info, origin, leaves.
- repoquery — name/glob matching (pattern optional), --installed/--available, --whatprovides/--whatrequires/--whatconflicts/--whatobsoletes/--whatrecommends/--whatenhances/--whatsuggests/--whatsupplements (with --recursive closure support), matching --requires/--provides/--conflicts/--obsoletes/--recommends/--enhances/--suggests/--supplements output modes, --arch, --duplicates, --info, --queryformat/--qf, --srpm/--source, --location, --nvr/--envra, --extras, --upgrades, --querytags.
- paths, makecache, copr enable [chroot]/disable, clean (all/packages/metadata, default all), download (with --destdir, --srpm/--source, --releasever), debuginfo-install, changelog, needs-restarting.
- repo list/info (also available as top-level repolist/repoinfo aliases), history (list, info, undo/redo/rollback — all three take --dry-run), versionlock (add/delete/list/clear), config-manager (--set-enabled, --set-disabled, --add-repo).
- group and environment (list/info/install/upgrade/remove), module (list/info/enable/disable/reset/install/remove).
- advisory (list/info/summary, all sharing --available/--installed/--updates/--all/--advisory/--bugfix/--security/--enhancement/--newpackage/--severity filters).
- reposync (-p/--download-path, --newest-only, --norepopath), repomanage (--new, --keep), repoclosure (--pkg, repeatable/glob), builddep (--define, --dry-run).
- automatic — dnf-automatic equivalent, driven by automatic.conf (--timer, --downloadupdates/--no-downloadupdates, --installupdates/--no-installupdates).
- completions <shell> — shell completion script generation.
- system-upgrade — mode-aware: Standalone runs a dnf like offline flow (download --releasever=X [--no-downgrade] [packages...], reboot [--poweroff], execute, clean, log, status); Split mode runs an overlay upgrade plus bootc image staging, matching rakuos-updater.
Global flags
-y/--assumeyes, --assumeno, -q/--quiet, -x/--exclude, -C/--cacheonly, --refresh, --repo/--repoid, --enablerepo, --disablerepo, --no-gpgchecks/--nogpgcheck, --setopt, --allowerasing, --best, --skip-unavailable, --repofrompath, --no-autoremove, --installroot, --no-recommends, --skip-broken, --multilib-all, --forcearch, --from-repo, --from-vendor, --downloadonly, --destdir, --allow-downgrade/--no-allow-downgrade, --config, --repo-dir, --cache-dir.
Remaining gaps (in progress)
A handful of [main] config options (deltarpm, bandwidth/throttle, and a few others) are the main pieces left before full dnf5 parity.
rakuos-software
- Switched the package install/remove backend from the old dnf-wrapper scripts to rum, across GTK, COSMIC, and Qt.
- Update checking now runs through rum check-upgrade --json via sudo-rs.
- Fixed uninstalling packages through rum (GTK button-in-button click-swallowing bug; a duplicated raw sudo-rs invocation in the Qt frontend was also cleaned up).
- Added -y to all rum install/remove commands so operations no longer hang waiting on a confirmation prompt that was never going to appear.
- Fixed packages not showing as installed under the new split-mode changes.
- Improved Flatpak update display on the updates page.
- Added zram management to the system page.
- Fixed the DE switcher's Nvidia swap path so it no longer resets the overlay when swapping to Nvidia.
- Added Nvidia swap options to the DE switcher.
rakuos-welcome
- Switched package installs over to rum, including local RPM reinstall flows.
- Fixed rpmdb path handling under split mode.
- Dropped the old virtualization setup helper script in favor of the newer setup with rum.
rakuos-core
- Removed remaining dnf call sites, replaced with rum (including local RPM reinstall).
- Stopped wiping the repo cache on reset: soft resets now reuse the rpm cache (created durning reset command setup) instead of re-hitting the network for everything.
- Removed the hard network requirement from overlay-sync.
- Removed the now-unnecessary /var/lib/rakuos/base-rpmdb snapshot, since split mode reads the image's rpmdb directly.
- Added JSON support for update checking, with update helpers now going through rum.
- Misc cleanup of unused code and glob exclusions.
rakuos-installer
- Removed flatpak setup from the installer; first-run flatpak setup is now handled by system-setup service instead.
rakuos-settings
- Added rum to sudoers with the same passwordless-for-wheel treatment as the rest of RakuOS's package tooling, including rum check-upgrade --json specifically so background update checks don't need a prompt.
- Misc zram-generator config updates.