DNF5(8)
๐ DNF5 โ the manual page, but make it slay ๐
okay bestie, welcome to dnf5, the manual page for the package manager utility. this is the dnf5(8) page, and yes it's long, so hydrate, sit pretty, and let's go. ๐ซถ
โจ NAME โจ
dnf5 โ DNF5 Package Management Utility. that's the whole vibe. she manages packages. ๐
๐ธ SYNOPSIS ๐ธ
dnf5 <command> [options] [<args>...]
so like: command first, then options, then args. in that order, bestie, in that order. โญ
๐ฆ DESCRIPTION ๐ฆ
DNF5 is the new version of DNF โ a package manager for RPM-based Linux distributions. she's been completely rewritten in C++, and the whole point of the glow-up is better performance and fewer external dependencies. it's giving main character energy, no cap. โจ
both of those are links in the original (github.com/rpm-software-management/dnf5/ and github.com/rpm-software-management/dnf/), just so you know where she lives. ๐
๐ COMMANDS ๐
here's the full list of available commands. for the deets on any one of them, go read the separate man page for that specific command โ like man dnf5 install. iykyk. ๐
advisoryโ manage advisories.autoremoveโ remove unneeded packages.checkโ check for problems in the package database.check-upgradeโ check for available package upgrades.cleanโ remove or invalidate cached data.distro-syncโ upgrade or downgrade installed packages to the latest available version.downgradeโ downgrade packages.downloadโ download packages.environmentโ manage comps environments.groupโ manage comps groups.historyโ manage transaction history.infoโ provide detailed information about installed or available packages.installโ install packages. yes queen. ๐ฆleavesโ list groups of leaf packages.listโ list installed or available packages.makecacheโ generate the metadata cache.markโ change the reason of an installed package.moduleโ manage modules.offlineโ manage offline transactions.providesโ find what package provides the given value.reinstallโ reinstall packages.removeโ remove packages.replayโ replay stored transactions.repoโ manage repositories.repoqueryโ search for packages in repositories.searchโ search for packages using keywords.statusโ display summary statistics about installed and available packages, groups and repositories.swapโ remove software and install another in the single transaction.system-upgradeโ upgrade the system to a new major release.upgradeโ upgrade packages.versionlockโ protect packages from updates to newer versions.
๐ง Plugin commands ๐ง
and here's the list of commands that are available as plugins. these only show up once you've installed the dnf5-plugins package, so if they're ghosting you, that's why. ๐ป
automaticโ alternative CLI todnf upgrade, suitable to be executed automatically and regularly from systemd timers, cron jobs and similar.builddepโ install missing dependencies for building an RPM package.changelogโ show package changelogs.config-managerโ manages main configuration, repositories configuration, and variables.coprโ manage Copr repositories (add-ons provided by users/community/third-party).needs-restartingโ determine whether the system should be rebooted.repoclosureโ display a list of unresolved dependencies for repositories.reposyncโ synchronize packages and metadata of a remote DNF repository to a local directory.
okay that's part 1 bestie, hold on, there's more coming. don't go anywhere ๐
โจ OPTIONS โจ
Okay bestie, these are the options that work everywhere โ like, in the general context of literally any dnf5 command. Universal queens only ๐
--assumenoโ Just auto-answers no to everything. Every single question. No takesies backsies.--allow-vendor-changeโ Lets RPM upgrades or downgrades automatically swap packages in from different vendors. Yes, even then.--bestโ Tries to use the best available package versions in transactions.
Specifically during dnf upgrade, which by default skips over updates that can not be installed for dependency reasons, the switch forces DNF5 to only consider the latest packages. When running into packages with broken dependencies, DNF5 will fail giving the reason why the latest version can not be installed.
Note that the use of the newest available version is only guaranteed for the packages directly requested (e.g. as a command line arguments), and the solver may use older versions of dependencies to meet their requirements. (so it's giving "best effort", not "best guarantee", iykyk)
-C,--cacheonlyโ Only uses cached data for working with packages and repository metadata. The cache won't be updated, even if it is expired. It's giving "I already have what I have, don't @ me".--comment=COMMENTโ Drops a comment into the transaction history. Little diary entry, main character energy ๐--config=CONFIG_FILE_PATHโ Defines where the configuration file lives.--debugsolverโ Dumps extra solver data for debugging purposes. The data gets saved in./debugdata. Detective mode ๐--disable-plugin=PLUGIN_NAME,...โ Disables the specified libdnf5 library plugins for the purpose of the currentDNF5command. This is a list option which can be specified multiple times. Accepted values are names, or a glob of names.--disable-repo=REPO_ID,...โ Temporarily disables active repositories for the purpose of the currentDNF5command. This is a list option which can be specified multiple times. Accepted values are ids, or a glob of ids.--dump-main-configโ Prints main configuration values tostdout.--dump-repo-config=REPO_ID,...โ Prints repository configuration values tostdout. This is a list option which can be specified multiple times. Accepted values are ids, or a glob of ids.--dump-variablesโ Prints variable values tostdout.--enable-plugin=PLUGIN_NAME,...โ Enables the specified libdnf5 library plugins for the purpose of the currentDNF5command. This is a list option which can be specified multiple times. Accepted values are names, or a glob of names.--enable-repo=REPO_ID,...โ Temporarily enables additional repositories for the purpose of the currentDNF5command. This is a list option which can be specified multiple times. Accepted values are ids, or a glob of ids.--forcearch=ARCHโ Forces the use of a specific architecture. See<#forcearch-misc-ref-label>dnf5-forcearch(7)for more info.-h,--helpโ Shows the help. Our beloved ๐ซถ--installroot=ABSOLUTE_PATHโ Sets up the installroot path. An absolute path is required. See<#installroot-misc-ref-label>dnf5-installroot(7)for more info.--no-allow-vendor-changeโ Does not allow automatic package replacements from different vendors for RPM upgrades or downgrades. The behavior of this option can be fine-tuned with vendor change policy configuration. Seednf5.conf-vendorpolicy(5)for more info.--no-bestโ Does not limit the transaction to the best candidates only. The opposite twin of--best๐--no-docsโ Does not install any files that are marked as a documentation (which includes man pages and texinfo documents). It sets theRPMTRANS_FLAG_NODOCSflag.--no-gpgchecksโ Skips checking OpenPGP signatures on packages (if RPM policy allows that).--no-pluginsโ Disables all libdnf5 plugins.-q,--quietโ In combination with a non-interactive command, shows just the relevant content. Suppresses messages notifying about the current state or actions ofDNF5. Shhh ๐คซ--refreshโ Forces refreshing metadata before running the command.--color=<color>โ Controls whether color is used in terminal output. Valid values arealways,neverandauto(default). Aesthetic choices are valid ๐--repo=REPO_ID,...โ Enables just the specified repositories. This is a list option which can be specified multiple times. Accepted values are ids, or a glob of ids.--repofrompath=REPO_ID,REPO_PATHโ Specifies a repository to add to the repositories only for this run. Can be used multiple times.
The new repository id is specified by REPO_ID and its baseurl by REPO_PATH. Variables in both values are substituted before creating the repo.
The configuration of the new repository can be adjusted using options --setopt=REPO_ID.option=value.
If you want only packages from this repository to be available, combine this option with --repo=REPO_ID switch. (one-time pop-up repo, iconic)
--releasever=RELEASEVERโ Overrides the value of the distribution release (thereleasevervariable) in configuration files. This can affect cache paths, values in configuration files and mirrorlist URLs. Wheneverreleaseveris set,releasever_majorandreleasever_minorwill also be set by splittingreleaseveron the first..--releasever-major=RELEASEVER_MAJORโ Overrides thereleasever_majorvariable, which is usually automatically detected or taken from the part of$releaseverbefore the first.. Does not affect the setting of thereleasevervariable. Must be specified after--releaseveron the command line, otherwise the major part of the--releaseverwill take precedent.--releasever-minor=RELEASEVER_MINORโ Overrides thereleasever_minorvariable, which is usually automatically detected or taken from the part of$releaseverafter the first.. Does not affect the setting of thereleasevervariable. Must be specified after--releaseveron the command line, otherwise the minor part of the--releaseverwill take precedent.--setopt=[REPO_ID.]OPTION=VALUEโ Overrides a configuration option from the configuration file. TheREPO_IDparameter is used to override options for repositories.
Values for the options like excludepkgs, includepkgs, installonlypkgs and tsflags are appended to the original value, they do not override it. However, specifying an empty value (e.g. --setopt=tsflags=) will clear the option.
--setvar=VAR_NAME=VALUEโ Overrides aDNF5variable value, likearch,releasever, etc.--skip-file-locksโ Skips acquiring file locks, such as the lock on the system repository. Seeskip_system_repo_lock<#skip-system-repo-lock-options-label>for more info.--show-new-leavesโ Shows newly installed leaf packages and packages that became leaves after a transaction. ๐--use-host-configโ Uses configuration files and variable definitions from the host system rather than the installroot. See<#installroot-misc-ref-label>dnf5-installroot(7)for more info.--versionโ Displays the version of thednf5application andlibdnf5library, along with successfully loaded plugins and their versions, and then exits.-y,--assumeyesโ Automatically answers yes for all questions. The chaotic counterpart to--assumeno๐ญ-x PACKAGE-SPEC-N,...,--exclude=PACKAGE-SPEC-N,...โ Excludes packages specified inPACKAGE-SPEC-Narguments from the transaction. This is a list option.
๐ง SPECIAL ARGUMENTS ๐ง
--โ Stops parsing command line options. All remaining arguments will be treated as positional arguments. (the "okay we're done with flags now" line)
๐ METADATA SYNCHRONIZATION ๐
Correct operation of DNF5 depends on having an access to up-to-date data from the all enabled repositories, but contacting remote mirrors on every operation considerably slows it down and costs bandwidth for both the client and the repository provider. The metadata_expire repository configuration option is used by DNF5 to determine whether a particular local copy of repository data is due to be re-synced. It is crucial that the repository providers set the option well, namely to a value where it is guaranteed that if particular metadata was available in time T on the server, then all packages it references will still be available for download from the server in time T + metadata_expire. (fr fr, set it properly or everything falls apart)
To further reduce the bandwidth load, some of the commands where having up-to-date metadata is not critical (e.g. the group list command) do not look at whether a repository is expired and whenever any version of it is locally available to the user's account, it will be used.
Refer to the <#caching-misc-ref-label> dnf5-caching(7) for more info regarding metadata and packages caching.
๐๏ธ CONFIGURATION FILES REPLACEMENT POLICY ๐๏ธ
The updated packages could replace the old modified configuration files with the new ones or keep the older files. Neither of the files are actually replaced. To the conflicting ones RPM gives additional suffix to the origin name. Which file should maintain the true name after transaction is not controlled by package manager, but is specified by each package itself, following packaging guideline.
Bestie, read that twice. The package manager is not the one deciding who keeps the real name here โ the package itself is. ๐
๐ช EXIT CODES ๐ช
The dnf5 command in general exits with the following return values:
0โ Operation was successful. ๐ slay.1โ An error occurred during processing of the command.2โ An error occurred during parsing the arguments.
Other exit codes could be returned by the specific command itself, see its documentation for more info.
๐ FILES ๐
Cache Files
/var/cache/libdnf5/
Main Configuration
/etc/dnf/dnf.conf
Repository Configuration
/etc/yum.repos.d/
Repository Persistence
/var/lib/dnf/
System State
/usr/lib/sysimage/libdnf5/
๐ ENVIRONMENT ๐
okay bestie final stretch, stay with me ๐ dnf5 lowkey reads a whole lil family of environment variables and they can absolutely change the vibe of your run. here's the full roster, no cap:
DNF5_FORCE_COLUMNSโ this one overrides the terminal width that gets used for rendering progress bars and other tabular data. the value should be a positive integer. if it's unset or invalid, the width gets detected from the terminal device connected to standard output. and if that detection fails? 80 columns gets assumed. slay.DNF5_FORCE_INTERACTIVEโ overrides the interactivity of the connected standard input/output. set it to0to pretend the input/output isn't connected to an interactive terminal, which means DNF5 should not ask any questions. set it to1to force DNF5 to ask questions even if the terminal is non-interactive. related energy: the--assumenoand--assumeyesoptions.DNF5_PLUGINS_DIRโ overrides the directory that holds DNF5 application plugins. set it to an empty string to disable loading the application plugins entirely. bye plugins ๐LIBDNF_PLUGINS_CONFIG_DIRโ overrides the directory holding libdnf5 plugin's configuration files. ๐SOURCE_DATE_EPOCHโ specifies a timestamp given as a number of seconds since the UNIX epoch. when it's set, transaction timestamps in the history database get set to the specified time instead of the current time. additionally, packages are ordered to ensure consistent transaction order. reproducible-core fr fr โจTEMP,TEMPDIR,TMP,TMPDIRโ override a path to a directory for temporary files. heads up: the directory must exist. the default value is/tmp.
๐ SEE ALSO ๐
so many friends, so many man pages. go read them, iykyk ๐ซถ
Commands
dnf5-advisory(8), Advisory command<#advisory-command-ref-label>dnf5-autoremove(8), Autoremove command<#autoremove-command-ref-label>dnf5-check(8), Check command<#check-command-ref-label>dnf5-check-upgrade(8), Check-Upgrade command<#check-upgrade-command-ref-label>dnf5-clean(8), Clean command<#clean-command-ref-label>dnf5-distro-sync(8), Distro-Sync command<#distro-sync-command-ref-label>dnf5-downgrade(8), Downgrade command<#downgrade-command-ref-label>dnf5-download(8), Download command<#download-command-ref-label>dnf5-environment(8), Environment command<#environment-command-ref-label>dnf5-group(8), Group command<#group-command-ref-label>dnf5-history(8), History command,<#history-command-ref-label>dnf5-info(8), Info command<#info-command-ref-label>dnf5-install(8), Install command<#install-command-ref-label>dnf5-leaves(8), Leaves command<#leaves-command-ref-label>dnf5-list(8), List command<#list-command-ref-label>dnf5-makecache(8), Makecache command<#makecache-command-ref-label>dnf5-mark(8), Mark command<#mark-command-ref-label>dnf5-module(8), Module command<#module-command-ref-label>dnf5-offline(8), Offline command<#offline-command-ref-label>dnf5-provides(8), Provides command<#provides-command-ref-label>dnf5-reinstall(8), Reinstall command<#reinstall-command-ref-label>dnf5-remove(8), Remove command<#remove-command-ref-label>dnf5-repo(8), Repo command<#repo-command-ref-label>dnf5-repoquery(8), Repoquery command<#repoquery-command-ref-label>dnf5-search(8), Search command<#search-command-ref-label>dnf5-status(8), Status command<#status-command-ref-label>dnf5-swap(8), Swap command<#swap-command-ref-label>dnf5-system-upgrade(8), System-Upgrade command<#system-upgrade-command-ref-label>dnf5-upgrade(8), Upgrade command<#upgrade-command-ref-label>dnf5-versionlock(8), Versionlock command<#versionlock-command-ref-label>
Application Plugins
dnf5-automatic(8), Automatic command<#automatic-plugin-ref-label>dnf5-builddep(8), Builddep command<#builddep-plugin-ref-label>dnf5-changelog(8), Changelog command<#changelog-plugin-ref-label>dnf5-config-manager(8), Config-manager command<#config-manager-plugin-ref-label>dnf5-copr(8), Copr command<#copr-plugin-ref-label>dnf5-needs-restarting(8), Needs-Restarting command<#needs-restarting-plugin-ref-label>dnf5-repoclosure(8), Repoclosure command<#repoclosure-plugin-ref-label>dnf5-repomanage(8), Repomanage command<#repomanage-plugin-ref-label>dnf5-reposync(8), Reposync command<#reposync-plugin-ref-label>
Library Plugins
libdnf5-actions(8), Actions plugin<#actions-plugin-ref-label>libdnf5-expired-pgp-keys(8), Expired PGP keys plugin<#expired-pgp-keys-plugin-ref-label>libdnf5-local(8), Local plugin<#local-plugin-ref-label>
Configuration
dnf5.conf(5), DNF5 Configuration Reference<#dnf5-conf-label>dnf5.conf-vendorpolicy(5), DNF5 Vendor Change Policy File Reference
Miscellaneous
dnf5-aliases(7), Aliases for command line arguments<#aliases-misc-ref-label>dnf5-caching(7), Caching<#caching-misc-ref-label>dnf5-comps(7), Comps groups and environments<#comps-misc-ref-label>dnf5-filtering(7), Packages filtering,<#filtering-misc-ref-label>dnf5-forcearch(7), Forcearch parameter<#forcearch-misc-ref-label>dnf5-installroot(7), Installroot parameter<#installroot-misc-ref-label>dnf5-modularity(7), Modularity overview,<#modularity-misc-ref-label>dnf5-specs(7), Patterns specification<#specs-misc-ref-label>dnf5-system-state(7), System state<#systemstate-misc-ref-label>
Project homepage
๐ธ Author ๐ธ
See AUTHORS.md in dnf5 source distribution. (yes queen, the whole list lives over there ๐)
๐ Copyright ๐
Contributors to the dnf5 project.
and that's the whole page bestie, you made it to the end ๐ฆโจ this edition is from Sep 24, 2026 and it's the DNF5(8) manual โ go forth and dnf5 responsibly, you absolute icon ๐
๐
๐ฆ where this page comes from
- fedora 44: dnf5 5.4.6.0-1.fc44 ยท GPL-2.0-or-later
- fedora 44: dnf5 5.4.6.0-1.fc44 ยท 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