DNF4-TRANSACTION-JSON(5)
π dnf4-transaction-json β DNF Stored Transaction JSON β¨
okay bestie, sit down, hydrate, because we're talking about the DNF stored transaction JSON. This is the manual page for it, it lives in section 5 (file formats, periodt), and it's genuinely so useful once it clicks. Let's get into it π«Ά
β οΈ REAL TALK: the stored transaction format is considered unstable and may change in an incompatible way at any time. It will work if the same version of dnf is used to store and replay (or between versions as long as it stays the same). So like... don't build your whole personality on it staying identical, mwah π
π TOP-LEVEL OBJECT
This is the whole vibe at the top level, queen. Four things live up here:
versionβ Type:string- The version of the stored transaction format, in the form
MAJOR.MINOR. - The
MAJORversion denotes backwards incompatible changes (olddnfwon't work with new transaction JSON). π - The
MINORversion denotes extending the format without breaking backwards compatibility (olddnfcan work with new transaction JSON). slay.
- The version of the stored transaction format, in the form
rpmsβ Type: an array of rpm objects- A list of RPM packages in the transaction.
groupsβ Type: an array of group objects- A list of groups in the transaction.
environmentsβ Type: an array of group objects- A list of environment groups in the transaction.
π RPM OBJECT
the moment you've all been waiting for, the rpm object itself π
actionβ Type:string- Possible values:
Downgrade,Downgraded,Install,Obsoleted,Reason Change,Reinstall,Reinstalled,Removed,Upgrade,Upgraded - The action performed on the package in the transaction.
- Possible values:
nevraβ Type:string- NEVRA (
name-epoch:version-release.arch) of the package.
- NEVRA (
reasonβ Type:string- Possible values:
dependency,clean,group,unknown,user,weak-dependency - The reason why the package was pulled into the transaction.
- Possible values:
repo_idβ Type:string- The id of the repository this package is coming from. Note repository ids are defined in the local repository configuration and may differ between systems. π (so yes, your
repo_idand your bestie'srepo_idcan be two different things β that's not a glitch, that's just config)
- The id of the repository this package is coming from. Note repository ids are defined in the local repository configuration and may differ between systems. π (so yes, your
π¦ GROUP OBJECT
actionβ Type:string- Possible values:
Install,Upgrade,Removed - The action performed on the group in the transaction.
- Possible values:
idβ Type:string- The id of the group.
package_typesβ Type:string- Possible values:
conditional,default,mandatory,optional - The types of packages in the group that will be installed. Valid only for the
Installaction.
- Possible values:
packagesβ Type: an array of group-package objects- The packages belonging to the group in the transaction.
πΈ ENVIRONMENT OBJECT
actionβ Type:string- Possible values:
Install,Upgrade,Removed - The action performed on the environment group in the transaction.
- Possible values:
idβ Type:string- The id of the environment group.
package_typesβ Type:string- Possible values:
conditional,default,mandatory,optional - The types of packages in the environment group that will be installed. Valid only for the
Installaction.
- Possible values:
groupβ Type: an array of environment-group objects- The groups belonging to the environment in the transaction.
π§ GROUP-PACKAGE OBJECT
tiny little object, big responsibilities, honestly iconic β
installedβ Type:boolean- Whether the package is considered installed as part of the group.
nameβ Type:string- The name of the package.
package_typeβ Type:string- Possible values:
conditional,default,mandatory,optional - The type of the package in the group.
- Possible values:
π ENVIRONMENT-GROUP OBJECT
group_typeβ Type:string- Possible values:
mandatory,optional - The type of the group in the environment.
- Possible values:
idβ Type:string- The id of the group.
installedβ Type:boolean- Whether the group is considered installed as part of the environment.
π Author
See AUTHORS in DNF source distribution. (not me writing the docs though, I'm just the messenger π«Ά)
β Copyright
2012-2020, Red Hat, Licensed under GPLv2+
okay that's the whole page, no cap, every field accounted for, nothing left on read πβ¨
<cute sign-off>this cutie lives in dnf version 4.24.0, dated Feb 19, 2026, and its manual page tag is DNF4-TRANSACTION-JSON(5) β anyway bestie, go forth and replay those transactions responsibly ππ
</cute sign-off>
π¦ where this page comes from
- ubuntu resolute: dnf-data 4.24.0-1build1 Β· GPL-2.0-or-later
- ubuntu stonking: dnf-data 4.24.0-1build1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms