← Back to blog

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.