dnf5-txnupd(8)
π« dnf5-txnupd β the transactional update glow-up for DNF5
okay bestie, welcome to dnf5-txnupd(8), the manual page that's about to make your package management feel like a whole era. this is the transactional update plugin for DNF5 and honestly? it's giving main character energy. π
β¨ NAME β¨
dnf5-txnupd β transactional update plugin for DNF5
πΈ SYNOPSIS πΈ
dnf txnupd apply-live
dnf txnupd rollback [snapshot]
π¦ DESCRIPTION π¦
so dnf5-txnupd is literally a pair of DNF5 plugins that weave the transactional-update(8) workflow straight into DNF5. no middleman, no awkward handoff, just vibes. π
the libdnf5 plugin (that's libdnf5/plugins/txnupd.so) intercepts every single DNF5 package transaction and runs it inside a brand-new btrfs(5) snapshot made via tukit(8). if the transaction succeeds, the snapshot gets finalized and set as the new default boot target. periodt. π
and if DNF5 dips out without finishing a transaction (like, say, during dnf makecache), the plugin's destructor just... discards the snapshot automatically. no stale snapshots piling up in your closet. we love a self-cleaning queen. π§Ήβ¨
the dnf5 command plugin (that's dnf5/plugins/txnupd.so) adds the txnupd subcommand group, which brings you apply-live and rollback β both described below, iykyk.
both plugins need root privileges, fr fr. operations attempted as a non-root user, or when aninstallrootother than/is configured, get silently skipped so thatsudo(8)andrun0keep functioning normally. also, when the environment variableTRANSACTIONAL_UPDATEis set (which means the process is already chillin' inside a transactional-update shell), snapshot handling is disabled too β all to prevent nesting. no inception situations here. π
π₯ COMMANDS π₯
π dnf txnupd apply-live
activates the current default snapshot on the running system immediately β no reboot required, bestie. it's equivalent to running transactional-update apply.
the way this command works is honestly iconic:
- mounts the btrfs root device at a temporary directory. π
- bind-mounts the snapshot's
/usr,/etc, and/boottrees over the corresponding live directories. πͺ - handles overlay
/etcmounts as used by MicroOS. β¨ - reloads the systemd manager (
systemctl daemon-reexec) and refreshes tmpfiles. π - refreshes active
systemd-sysext(8)extensions if any are loaded. π§©
β οΈ running processes are not restarted. services that need the new software versions have to be restarted separately, so don't come for the plugin when your daemon is still on the old build. π
π dnf txnupd rollback [snapshot]
rolls back to a previous snapshot by invoking tukit rollback. simple as that.
- if snapshot is omitted, the currently running snapshot is used as the rollback target β effectively undoing any pending (not yet booted) update without needing a snapshot number. chef's kiss. π€
- if snapshot is given, it must be the numeric snapshot ID as reported by
snapper list. a new snapshot is created based on the one you specified and set as the new default boot target. π - when rolling back to the current running snapshot, no reboot is required. for all other rollback targets, the system must be rebooted to activate the change. π
π CONFIGURATION π
plugin configuration is read from /usr/share/dnf5/libdnf.plugins.conf.d/txnupd.conf. head over to dnf5-txnupd.conf(5) for the full rundown of every configuration key β it's a whole read but worth it. π
β FILES β
/usr/lib64/libdnf5/plugins/txnupd.soβ the libdnf5 plugin that wraps package transactions in atukitsnapshot. π«Ά/usr/lib64/dnf5/plugins/txnupd.soβ the DNF5 command plugin that provides thednf txnupdsubcommand group. π/usr/share/dnf5/libdnf.plugins.conf.d/txnupd.confβ the plugin configuration file. π
π EXIT STATUS π
the plugin itself does not alter DNF5's exit status. dnf txnupd apply-live and dnf txnupd rollback exit with status 0 on success and non-zero on failure, following the standard DNF5 convention. no surprises, no chaos. β
π ENVIRONMENT π
TRANSACTIONAL_UPDATEβ if set to any value, the libdnf5 plugin disables snapshot handling. this variable is set bytransactional-update(8)ortukitwhen running commands inside a transactional shell. π
π SEE ALSO π
dnf5(8), dnf5-txnupd.conf(5), transactional-update(8), tukit(8), snapper(8), btrfs(5)
go read them, bestie, they're all part of the same friend group. π«
π AUTHORS π
- Shawn W Dunn
<sfalken@kalpadesktop.org> - Neal Gompa
<ngompa@velocitylimitless.com>
π LICENSE π
LGPL-2.1-or-later
and that's the whole page, babe! π this was libdnf-plugin-txnupd version 0.2.0, dated 2026-06-15 β now go forth and transact responsibly. slay. π
β¨
π¦ where this page comes from
- fedora 43: dnf5-plugin-txnupd 0.3.0-2.fc43 Β· LGPL-2.1-or-later
- fedora 44: dnf5-plugin-txnupd 0.3.0-2.fc44 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms