Core DNF Plugins Documentation

This documents core plugins of DNF:

Core DNF Plugins Release Notes

4.4.2 Release Notes

  • Fixed copr.vendor.conf not loading
  • “dnf copr enable” on “Asahi Fedora Linux Remix” guesses epel..x86_64
  • system-upgrade: change http to https in unit file
  • Bug fixes: - Fix systemd dependencies when using –poweroff option in system-upgrade plugin (RhBug:2211844)

Bugs fixed in 4.4.2:

4.4.1 Release Notes

  • New features: - reposync: Implement –safe-write-path option (RhBug:1898089)
  • Bug fixes: - needs-restarting: Catch exception when no systemd unit exists for pid (RhBug:2122587) - post-transaction-actions: Fix ConfigParser.substitute call
  • Others: - builddep: Avoid using obsolete RPM API - yum-utils: Only depend on python3-dnf, not dnf

Bugs fixed in 4.4.1:

4.4.0 Release Notes

  • New features: - system-upgrade: Move from extras to core (RhBug:2054235) - system-upgrade: Add –poweroff option to reboot - copr: Switch to reading a copr.vendor.conf file to determine a vendor ID - config-manager: Allow to specify the “main” section
  • Bug fixes: - system-upgrade: Add support for security filters in offline-upgrade (RhBug:1939975) - needs-restarting: Fix boot time derivation for systems with no rtc (RhBug:2137935) - download: Skip downloading weak deps when install_weak_deps=False - reposync: Documentation update (RhBug:2132383, 2182004)

Bugs fixed in 4.4.0:

4.3.1 Release Notes

  • Update translations (fix RhBug:2127011)

Bugs fixed in 4.3.1:

4.3.0 Release Notes

  • copr: Guess EPEL chroots for CentOS Stream (RhBug:2058471)
  • Update translations
  • Bug fixes: - builddep: Warning when using macros with source rpms (RhBug:2077820) - [repomanage] Modules are used only when they belong to target repo (RhBug:2072441) - Update documentation for config-manager used with subscription-manager (RhBug:2075366)

Bugs fixed in 4.3.0:

4.2.1 Release Notes

  • Skip all non rpm tsi for transaction_action plugins (rhbug:2023652)

Bugs fixed in 4.2.1:

4.1.0 Release Notes

  • New features: - Add a new subpackage with modulesync command. The command downloads packages from modules and/or creates a repository with modular data. (RhBug:1868047) - [groups-manager] Use full NEVRA (not only name) for matching packages (RhBug:2013633) - [repoclosure] Print counts of missing dependencies
  • Bug fixes: - [reposync] Do not stop downloading packages on the first error (RhBug:2009894) - [versionlock] Fix: Multiple package-name-spec arguments don’t lock correctly (RhBug:2001039) (RhBug:2013324) - [versionlock] Update documentation for adding specifi version (RhBug:2013332)

Bugs fixed in 4.1.0:

4.0.24 Release Notes

  • Bug fixes: - [copr] on CentOS Stream, enable centos stream chroot instead of not epel 8 (RhBug:1994154) - [copr] Avoid using deprecated function distro.linux_distribution() (RhBug:2011550) - [copr] don’t traceback on empty lines in /etc/os-release

Bugs fixed in 4.0.24:

4.0.23 Release Notes

  • New features: - [leaves] Show strongly connected components
  • Bug fixes: - [needs-restarting] Fix wrong boot time (RhBug:1960437) - [playground] Disable playground command, since it doesn’t work

Bugs fixed in 4.0.23:

4.0.22 Release Notes

  • New features: - [repomanage] Allow running only with metadata - [repomanage] Enhance documentation (RhBug:1898293)
  • Bug fixes: - [versionlock] Locking obsoleted package does not make the obsoleter unavailable (RhBug:1957280) - [versionlock] Work correctly with packages with minorbump part of release (RhBug:1961217)

Bugs fixed in 4.0.22:

4.0.21 Release Notes

  • Add missing command line option to documentation
  • doc: add packages to needs-restarting conf
  • Set blacklist subcommand as deprecated
  • Bug fixes: - Bugs fixed (RhBug:1914827,1916782)

Bugs fixed in 4.0.21:

4.0.20 Release Notes

  • Bug fixes: - Removed dependency on dnf.yum.misc.Checksum class (RhBug:1935465)

Bugs fixed in 4.0.20:

4.0.19 Release Notes

  • copr: allow only 2 arguments with copr enable command
  • [needs-restarting] fix -r in nspawn containers (RhBug:1913962,1914251)
  • Add –gpgcheck option to reposync (RhBug:1856818) (RhBug:1856818)
  • Re-introduce yum-groups-manager functionality (RhBug:1826016)
  • [repomanage] Don’t use cached metadata (RhBug:1899852)
  • [needs-restarting] add -s to list services (RhBug:1772939) (RhBug:1772939)
  • New features: - Add –gpgcheck option to reposync (RhBug:1856818) (RhBug:1856818) - Re-introduce yum-groups-manager functionality (RhBug:1826016)
  • Bug fixes: - [repomanage] Don’t use cached metadata (RhBug:1899852) - [repomanage] Fix ordering of modular stream versions - [needs-restarting] add -s to list services (RhBug:1772939) (RhBug:1772939)

Bugs fixed in 4.0.19:

4.0.18 Release Notes

  • [needs-restarting] Fix plugin fail if needs-restarting.d does not exist
  • [needs-restarting] add kernel-rt to reboot list
  • Fix debug-restore command
  • [config-manager] enable/disable comma separated pkgs (RhBug:1830530)
  • [debug] Use standard demands.resolving for transaction handling
  • [debug] Do not remove install-only packages (RhBug:1844533)
  • return error when dnf download failed
  • README: Reference Fedora Weblate instead of Zanata
  • [reposync] Add latest NEVRAs per stream to download (RhBug: 1833074)
  • copr: don’t try to list runtime dependencies
  • Bug fixes: - Bugs fixed (RhBug:1863433)

Bugs fixed in 4.0.18:

4.0.17 Release Notes

  • [repomanage] Add modular support (RhBug:1804720)
  • [needs-restarting] add optons using .conf file (RhBug:1810123)

Bugs fixed in 4.0.17:

4.0.16 Release Notes

  • [versionlock] Take obsoletes into account (RhBug:1627124)
  • Move args “–set-enabled”, “–set-disabled” from DNF (RhBug:1727882)
  • Add missing arguments –set-enabled/–set-disabled into error message
  • Warn when –enablerepo/–disablerepo args were passed (RhBug:1727882)
  • [copr] add support for enabling/disabling runtime dependencies
  • [copr] no-liability text to be always printed

Bugs fixed in 4.0.16:

4.0.15 Release Notes

  • Support remote files in dnf builddep
  • [download] Respect repo priority (RhBug:1800342)

Bugs fixed in 4.0.15:

4.0.14 Release Notes

  • Fix conflict for dnf download –resolve (RhBug:1787908)
  • config-manager calls parser error when without options (RhBug:1782822)
  • Update reposync.py with –norepopath option
  • Fix: don’t open stdin if versionlock is missing (RhBug:1785563)

Bugs fixed in 4.0.14:

4.0.13 Release Notes

  • Fix: config_manager respect config file location during save
  • [reposync] Fix –delete with multiple repos (RhBug:1774103)
  • Redesign reposync –latest for modular system (RhBug:1775434)
  • [doc] Skip creating and installing migrate documentation for Python 3+
  • [config-manager] Allow use of –set-enabled without arguments (RhBug:1679213)
  • [versionlock] Prevent conflicting/duplicate entries (RhBug:1782052)

Bugs fixed in 4.0.13:

4.0.12 Release Notes

  • [reposync] Add –urls option (RhBug:1686602)
  • [versionlock] Add –raw option (RhBug:1645564)
  • [doc] move manpages for plugins to “dnf-PLUGIN” (RhBug:1706386)
  • Add new plugin post-transaction-actions (RhBug:967264)
  • [builddep] Add –skip-unavailable switch (RhBug:1628634)
  • [versionlock] Don’t apply excludes on @System (RhBug:1726712)
  • [reposync] Ignore only modular excludes (RhBug:1750273)

Bugs fixed in 4.0.12:

4.0.11 Release Notes

  • [spec] Specify attributes for ghost file (RhBug: 1754463)
  • download: add the –debugsource option (RhBug:1637008)
  • Fix incorrect handling richdeps in buildep (RhBug:1756902)

Bugs fixed in 4.0.11:

4.0.10 Release Notes

  • debuginfo-install: Update both debuginfo and debugsource for updated package (RhBug:1586084)
  • copr: Support multilib repofiles (RhBug:1393664)
  • copr: Fix disable if copr instance has non-default port
  • copr: Fix repoid when using subdirectories in copr project

Bugs fixed in 4.0.10:

4.0.9 Release Notes

  • [spec] Rename dnf-utils to yum-utils
  • [builddep] Report all rpm errors (RhBug:1663619,1658292,1724668)
  • [config-manager] –setopt: Fix crash with “–save –dump”
  • [config-manager] –setopt: Add globs support to repoid
  • [config-manager] –setopt=key=value is applied only to the main config
  • [config-manager] –setopt and empty list of repositories (RhBug:1702678)
  • [config-manager] –setopt: Add check for existence of input repositories

Bugs fixed in 4.0.9:

4.0.8 Release Notes

  • [reposync] Enable timestamp preserving for downloaded data (RhBug:1688537)
  • [reposync] Download packages from all streams (RhBug:1714788)
  • Make yum-copr manpage available (RhBug:1673902)
  • [needs-restarting] Add --reboothint option (RhBug:1192946) (RhBug:1639468)
  • Set the cost of _dnf_local repo to 500, to make it preferred to normal repos

Bugs fixed in 4.0.8:

4.0.7 Release Notes

  • Fix: copr disable command traceback (RhBug:1693551)
  • [doc] state repoid as repo identifier of config-manager (RhBug:1686779)
  • Fix download of src when not the latest requested (RhBug:1649627)

Bugs fixed in 4.0.7:

4.0.6 Release Notes

  • Use improved config parser that preserves order of data
  • [leaves] Show multiply satisfied dependencies as leaves
  • [download] Fix downloading an rpm from a URL (RhBug:1678582)
  • [download] Fix problem with downloading src pkgs (RhBug:1649627)

4.0.4 Release Notes

  • [download] Do not download src without --source (RhBug:1666648)

Bugs fixed in 4.0.4:

4.0.3 Release Notes

  • Add changelog plugin that is used for viewing package changelogs
  • New option --metadata-path option for reposync plugin

Bugs fixed in 4.0.3:

4.0.0 Release Notes

  • Enhance documentation
  • [repoclosure] check every –pkg attribute separately
  • [repoclosure] Now accepts nevra as a argument of –pkg option
  • [reposync] enhancements (RhBug:1550063,1582152,1550064,1405789,1598068)
  • package-cleanup: remove –oldkernels
  • Download only packages with unique NEVRAs (RhBug:1612874)

Bugs fixed in 4.0.0:

3.0.4 Release Notes

  • [copr] Huge upgrade of copr plugin
  • [spec] Disable building python2 modules on Fedora 30+

Bugs fixed in 3.0.4:

3.0.3 Release Notes

  • [download] new option –alldeps to download all requirements

2.1.4 Release Notes

  • Added four new options for list subcommand of copr plugin

Bugs fixed in 2.1.4:

2.1.2 Release Notes

  • DNF copr Plugin doesn’t crash anymore in some circumstances.
  • DNF debuginfo-install Plugin doesn’t install any additional subpackages anymore, previously it was trying to get all dependent packages recursively and install debuginfo packages for them.

Bugs fixed in 2.1.2:

2.1.1 Release Notes

It introduces new behavior of Versionlock plugin where it doesn’t apply any excludes in non-transactional operations like repoquery, list, info, etc.

Bugs fixed in 2.1.1:

2.1.0 Release Notes

Additional subpackage in 2.1.0:

  • Added new subpackage dnf-utils that provides binaries originaly provided by yum-utils.

Bugs fixed in 2.1.0:

2.0.0 Release Notes

  • Added DEBUG plugin from dnf-plugins-extras
  • Added LEAVES plugin from dnf-plugins-extras
  • Added LOCAL plugin from dnf-plugins-extras
  • Added MIGRATE plugin from dnf-plugins-extras
  • Added NEEDS RESTARTING plugin from dnf-plugins-extras
  • Added REPOCLOSURE plugin from dnf-plugins-extras
  • Added REPOGRAPH plugin from dnf-plugins-extras
  • Added REPOMANAGE plugin from dnf-plugins-extras
  • Added SHOW LEAVES plugin from dnf-plugins-extras
  • Added VERSIONLOCK plugin from dnf-plugins-extras

1.0.2 Release Notes

Newly implemented DNF download Plugin options --url and --urlprotocol.

Bugs fixed in 1.0.2:

1.0.1 Release Notes

Minor changes in builddep: print errors from RPM SPEC parser

0.1.20 Release Notes

Small fixes in COPR plugin, added get_reposdir function to dnfpluginscore lib.

0.1.18 Release Notes

Changed COPR server adress to the new one.

0.1.15 Release Notes

Newly implemented DNF download Plugin options --resolve and --debuginfo.

Improved the start-up time of bash completion.

Reviewed documentation.

Bugs fixed in 0.1.15:

0.1.12 Release Notes

Added support of globs to --whatrequires and --whatprovides options.

Bugs fixed in 0.1.12:

0.1.8 Release Notes

This release fixes only packaging issues.

DNF builddep Plugin

Install whatever is needed to build the given .src.rpm, .nosrc.rpm or .spec file.

Warning

Build dependencies in a package (i.e. src.rpm) might be different than you would expect because they were evaluated according macros set on the package build host.

Synopsis

dnf builddep <package>...

Arguments

<package>
Either path to .src.rpm, .nosrc.rpm or .spec file or package available in a repository.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

--help-cmd
Show this help.
-D <macro expr>, --define <macro expr>
Define the RPM macro named macro to the value expr when parsing spec files. Does not apply for source rpm files.
--spec
Treat arguments as .spec files.
--srpm
Treat arguments as source rpm files.
--skip-unavailable
Skip build dependencies not available in repositories. All available build dependencies will be installed.

Note that builddep command does not honor the –skip-broken option, so there is no way to skip uninstallable packages (e.g. with broken dependencies).

Examples

dnf builddep foobar.spec
Install the needed build requirements, defined in the foobar.spec file.
dnf builddep --spec foobar.spec.in
Install the needed build requirements, defined in the spec file when filename ends with something different than .spec.
dnf builddep foobar-1.0-1.src.rpm
Install the needed build requirements, defined in the foobar-1.0-1.src.rpm file.
dnf builddep foobar-1.0-1
Look up foobar-1.0-1 in enabled repositories and install build requirements for its source rpm.
dnf builddep -D 'scl python27' python-foobar.spec
Install the needed build requirements for the python27 SCL version of python-foobar.

DNF changelog Plugin

Description

changelog is a plugin for viewing package changelogs.

Synopsis

dnf changelog [<options>] <package-spec>...

Arguments

<package-spec>
Package specification for packages to display changelogs.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

--since=<date>
Show only changelog entries since <date>. To avoid ambiguosity using YYYY-MM-DD date format is recommended.
--count=<number>
Show maximum of <number> changelog entries per package.
--upgrades
Show only new changelog entries for packages, that provide an upgrade for some of already installed packages.

Examples

Show changelogs for all packages since November 1, 2018:

dnf changelog --since=2018-11-1

Show 3 latest changelogs of package dnf:

dnf changelog --count=3 dnf

Show what is new in upgradable packages:

dnf changelog --upgrades

DNF config-manager Plugin

Manage main and repository DNF configuration options, toggle which repositories are enabled or disabled, and add new repositories.

Synopsis

dnf config-manager [options] <section>...

Arguments

<section>
This argument can be used to explicitly select the configuration sections to manage. A section can either be main or a repoid. If not specified, the program will select the main section and each repoid used within any --setopt options. A repoid can be specified using globs.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

--help-cmd
Show this help.
--add-repo=URL
Add (and enable) the repo from the specified file or url. If it has to be added into installroot, combine it with --setopt=reposdir=/<installroot>/etc/yum.repos.d command-line option.
--dump
Print dump of current configuration values to stdout.
--set-disabled, --disable
Disable the specified repos (implies --save).
--set-enabled, --enable
Enable the specified repos (implies --save).
--save
Save the current options (useful with --setopt).
--setopt=<option>=<value>
Set a configuration option. To set configuration options for repositories, use repoid.option for the <option>. Globs are supported in repoid.

Warning

DNF config-manager can misbehave when enabling/disabling repositories generated by tools like subscription-manager on RHEL. In this case you should use subscription-manager to perform such actions.

Examples

dnf config-manager --add-repo http://example.com/some/additional.repo
Download additional.repo and store it in repodir.
dnf config-manager --add-repo http://example.com/different/repo
Create new repo file with http://example.com/different/repo as baseurl and enable it.
dnf config-manager --dump
Display main DNF configuration.
dnf config-manager --dump <section>
Display configuration of a repository identified by <section>.
dnf config-manager --set-enabled <repoid>
Enable repository identified by <repoid> and make the change permanent.
dnf config-manager --set-disabled <repoid1> <repoid2>
Disable repositories identified by <repoid1> and <repoid2>
dnf config-manager --set-disabled <repoid1>,<repoid2>
Disable repositories identified by <repoid1> and <repoid2>
dnf config-manager --save --setopt=*.proxy=http://proxy.example.com:3128/ <repo1> <repo2>
Update proxy setting in repositories with repoid <repo1> and <repo2> and make the change permanent.
dnf config-manager --save --setopt=*-debuginfo.gpgcheck=0
Update gpgcheck setting in all repositories whose id ends with -debuginfo and make the change permanent.

DNF copr Plugin

Work with Copr & Playground repositories on the local system.

  • The copr command is used to add or remove Copr repositories to the local system
  • The playground is used to enable or disable the Playground repository

Synopsis

dnf copr [enable|disable|remove|list|search] <parameters>

dnf playground [enable|disable|upgrade]

Arguments (copr)

enable name/project [chroot]
Enable the name/project Copr repository with the optional chroot.
disable name/project
Disable the name/project Copr repository.
remove name/project
Remove the name/project Copr repository.
list --installed
List installed Copr repositories (default).
list --enabled
List enabled Copr repositories.
list --disabled
List disabled Copr repositories.
list --available-by-user=name
List available Copr repositories for a given name.
search project
Search for a given project.
enable hub/name/project
Enable the name/project Copr repository from the specified Copr hub, Hub is be specified either by its hostname (eg. copr.fedorainfracloud.org) or by an ID that’s defined in a configuration file.

Options (copr)

All general DNF options are accepted, see Options in dnf(8) for details.

--hub Copr
Specify a Copr hub to use. Default is the Fedora Copr: https://copr.fedorainfracloud.org.

Configuration (copr)

/etc/dnf/plugins/copr.conf /etc/dnf/plugins/copr.d/ /usr/share/dnf/plugins/copr.vendor.conf

Configuration file should contain a section for each hub, each section having hostname

(mandatory), protocol (default https) and port (default 443) parameters.:

[fedora]
hostname = copr.fedorainfracloud.org
protocol = https
port = 443

There is also a vendor configuration that allows a vendor to specify the distro ID that copr should use by default. This is useful for vendors that want to use Copr for their own distro. The vendor configuration is in /usr/share/dnf/plugins/copr.vendor.conf (optional) or /etc/dnf/plugins/copr.conf:

[main]
distribution = fedora
releasever = 37

Arguments (playground)

enable
Enable the Playground repository.
disable
Disable the Playground repository.
upgrade
Upgrade the Playground repository settings (same as disable and then enable).

Options (playground)

All general DNF options are accepted, see Options in dnf(8) for details.

Examples

copr enable rhscl/perl516 epel-6-x86_64
Enable the rhscl/perl516 Copr repository, using the epel-6-x86_64 chroot.
copr disable rhscl/perl516
Disable the rhscl/perl516 Copr repository
copr list --available-by-user=rita
List available Copr projects for user rita.
copr search tests
Search for Copr projects named tests.

DNF debug Plugin

Description

The plugin provides two dnf commands:

debug-dump
Writes system RPM configuration to a dump file
debug-restore
Restore the installed packages to the versions written in the dump file. By default, it does not remove already installed versions of install-only packages and only marks those versions that are mentioned in the dump file for installation. The final decision on which versions to keep on the system is left to dnf and can be fine-tuned using the installonly_limit (see dnf.conf(5)) configuration option.

Note

DNF and Yum debug files are not compatible and thus can’t be used by the other program.

Synopsis

dnf debug-dump [--norepos] [<filename>]

dnf debug-restore [--output] [--install-latest] [--ignore-arch] [--filter-types = [install,remove,replace]] <filename>

Arguments

<filename>
File to write dump to or read from.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

dnf debug-dump

--norepos
Do not dump content of enabled repos.

dnf debug-restore

--filter-types=[install,remove,replace]
Limit package changes to specified type.
--ignore-arch
When installing package ignore architecture and install missing packages matching the name, epoch, version and release.
--install-latest
When installing use the latest package of the same name and architecture.
--output
Only output list of packages which will be installed or removed. No actuall changes are done.
--remove-installonly
Allow removal of install-only packages. Using this option may result in an attempt to remove the running kernel version (in situations when the currently running kernel version is not part of the dump file).

DNF debuginfo-install Plugin

Install the associated debuginfo packages for a given package specification.

Synopsis

dnf debuginfo-install <pkg-spec>...

Arguments

<pkg-spec>
The package to install the associated debuginfo package for.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

Configuration

/etc/dnf/plugins/debuginfo-install.conf

The minimal content of conf file should contain main sections with enabled and autoupdate parameter.

autoupdate
A boolean option which controls updates of debuginfo packages. If options is enabled and there are debuginfo packages installed it automatically enables all configured debuginfo repositories. (Disabled by default.)

Examples

dnf debuginfo-install foobar
Install the debuginfo packages for the foobar package.
dnf upgrade --enablerepo=*-debuginfo <package-name>-debuginfo
Upgrade debuginfo package of a <package-name>.
dnf upgrade --enablerepo=*-debuginfo "*-debuginfo"
Upgrade all debuginfo packages.

DNF download Plugin

Download binary or source packages.

Synopsis

dnf download [options] <pkg-spec>...

Arguments

<pkg-spec>
Package specification for the package to download. Local RPMs can be specified as well. This is useful with the --source option or if you want to download the same RPM again.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

--help-cmd
Show this help.
--arch <arch>[,<arch>...]
Limit the query to packages of given architectures (default is all compatible architectures with your system). To download packages with arch incompatible with your system use --forcearch=<arch> option to change basearch.
--source
Download the source rpm. Enables source repositories of all enabled binary repositories.
--debuginfo
Download the debuginfo rpm. Enables debuginfo repositories of all enabled binary repositories.
--downloaddir
Download directory, default is the current directory (the directory must exist).
--url
Instead of downloading, print list of urls where the rpms can be downloaded.
--urlprotocol
Limit the protocol of the urls output by the –url option. Options are http, https, rsync, ftp.
--resolve
Resolves dependencies of specified packages and downloads missing dependencies in the system.
--alldeps
When used with --resolve, download all dependencies (do not skip already installed ones).

Examples

dnf download dnf
Download the latest dnf package to the current directory.
dnf download --url dnf
Just print the remote location url where the dnf rpm can be downloaded from.
dnf download --url --urlprotocols=https --urlprotocols=rsync dnf
Same as above, but limit urls to https or rsync urls.
dnf download dnf --destdir /tmp/dnl
Download the latest dnf package to the /tmp/dnl directory (the directory must exist).
dnf download dnf --source
Download the latest dnf source package to the current directory.
dnf download rpm --debuginfo
Download the latest rpm-debuginfo package to the current directory.
dnf download btanks --resolve
Download the latest btanks package and the uninstalled dependencies to the current directory.

DNF generate_completion_cache Plugin

Generates data to speed up shell completion for DNF. The user is not supposed to interact with the plugin in any way.

DNF groups-manager Plugin

Create and edit groups repository metadata files.

Synopsis

dnf groups-manager [options] [package-name-spec [package-name-spec ...]]

Description

groups-manager plugin is used to create or edit a group metadata file for a repository. This is often much easier than writing/editing the XML by hand. The groups-manager can load an entire file of groups metadata and either create a new group or edit an existing group and then write all of the groups metadata back out.

Arguments

<package-name-spec>
Package to add to a group or remove from a group.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

--load=<path_to_comps.xml>
Load the groups metadata information from the specified file before performing any operations. Metadata from all files are merged together if the option is specified multiple times.
--save=<path_to_comps.xml>
Save the result to this file. You can specify the name of a file you are loading from as the data will only be saved when all the operations have been performed. This option can also be specified multiple times.
--merge=<path_to_comps.xml>
This is the same as loading and saving a file, however the “merge” file is loaded before any others and saved last.
--print
Also print the result to stdout.
--id=<id>
The id to lookup/use for the group. If you don’t specify an <id>, but do specify a name that doesn’t refer to an existing group, then an id for the group is generated based on the name.
-n <name>, --name=<name>
The name to lookup/use for the group. If you specify an existing group id, then the group with that id will have it’s name changed to this value.
--description=<description>
The description to use for the group.
--display-order=<display_order>
Change the integer which controls the order groups are presented in, for example in dnf grouplist.
--translated-name=<lang:text>
A translation of the group name in the given language. The syntax is lang:text. Eg. en:my-group-name-in-english
--translated-description=<lang:text>
A translation of the group description in the given language. The syntax is lang:text. Eg. en:my-group-description-in-english.
--user-visible
Make the group visible in dnf grouplist (this is the default).
--not-user-visible
Make the group not visible in dnf grouplist.
--mandatory
Store the package names specified within the mandatory section of the specified group, the default is to use the default section.
--optional
Store the package names specified within the optional section of the specified group, the default is to use the default section.
--remove
Instead of adding packages remove them. Note that the packages are removed from all sections (default, mandatory and optional).
--dependencies
Also include the names of the direct dependencies for each package specified.

DNF leaves Plugin

List installed packages not required by any other installed package.

Synopsis

dnf leaves

Description

leaves lists all the packages installed on your system which are not required as a dependency of another installed package. However two or more packages might depend on eachother in a dependency cycle. Packages in such cycles, which are not required by any other package, are also listed.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

Why is this useful?

The list gives you a nice overview of what is installed on your system without flooding you with anything required by the packages already shown. The following list of arguments basically says the same thing in different ways:

  • All the packages on this list is either needed by you, other users of the system or not needed at all – if it was required by another installed package it would not be on the list.
  • If you want to uninstall anything from your system (without breaking dependencies) it must involve at least one package on this list.
  • If there is anything installed on the system which is not needed it must be on this list – otherwise it would be required as a dependency by another package.

DNF local Plugin

Description

Automatically copy all downloaded packages to a repository on the local filesystem and generating repo metadata.

Note

Generating repo metadata will work only if you have installed createrepo_c package.

Configuration

/etc/dnf/plugins/local.conf

The minimal content of conf file should contain main and createrepo sections with enabled parameter, otherwise plugin will not work.:

[main]
enabled = true

[createrepo]
enabled = true

For main section you can specify repodir paramater which sets path to local repository.

Other options and comments you can find in configuration file.

DNF migrate Plugin

Description

Migrates yum’s history, group and yumdb data to dnf.

Synopsis

dnf migrate

Commands

dnf migrate
Migrate all the data including history, yumdb and groups (if available).

Options

All general DNF options are accepted, see Options in dnf(8) for details.

DNF modulesync Plugin

Download packages from modules and/or create a repository with modular data.

Synopsis

dnf modulesync [options] [<module-spec>...]

Description

modulesync downloads packages from modules according to provided arguments and creates a repository with modular data in working directory. In environment with modules it is recommend to use the command for redistribution of packages, because DNF does not allow installation of modular packages without modular metadata on the system (Fail-safe mechanism). The command without an argument creates a repository like createrepo_c but with modular metadata collected from all available repositories.

See examples.

Arguments

<module-spec>
Module specification for the package to download. The argument is an optional.

Options

All general DNF options are accepted. Namely, the --destdir option can be used to specify directory where packages will be downloaded and the new repository created. See Options in dnf(8) for details.

-n, --newest-only
Download only packages from the newest modules.
--enable_source_repos
Enable repositories with source packages
--enable_debug_repos
Enable repositories with debug-info and debug-source packages
--resolve
Resolve and download needed dependencies

Examples

dnf modulesync nodejs
Download packages from nodejs module and crete a repository with modular metadata in working directory

dnf download nodejs

dnf modulesync
The first download command downloads nodejs package into working directory. In environment with modules nodejs package can be a modular package therefore when I create a repository I have to insert also modular metadata from available repositories to ensure 100% functionality. Instead of createrepo_c use dnf modulesync to create a repository in working directory with nodejs package and modular metadata.
dnf --destdir=/tmp/my-temp modulesync nodejs:14/minimal --resolve
Download package required for installation of minimal profile from module nodejs and stream 14 into directory /tmp/my-temp and all required dependencies. Then it will create a repository in /tmp/my-temp directory with previously downloaded packages and modular metadata from all available repositories.

dnf module install nodejs:14/minimal --downloadonly --destdir=/tmp/my-temp

dnf modulesync --destdir=/tmp/my-temp
The first dnf module install command downloads package from required for installation of minimal profile from module nodejs and stream 14 into directory /tmp/my-temp. The second command dnf modulesync will create a repository in /tmp/my-temp directory with previously downloaded packages and modular metadata from all available repositories. In comparison to dnf –destdir=/tmp/my-temp modulesync nodejs:14/minimal –resolve it will only download packages required for installation on current system.

See Also

  • dnf(8), DNF Command Reference

DNF needs-restarting Plugin

Check for running processes that should be restarted.

Synopsis

dnf needs-restarting [-u] [-r] [-s]

Description

needs-restarting looks through running processes and tries to detect those that use files from packages that have been updated after the given process started. Such processes are reported by this tool.

Note that in most cases a process should survive update of its binary and libraries it is using without requiring to be restarted for proper operation. There are however specific cases when this does not apply. Separately, processes often need to be restarted to reflect security updates.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

-u, --useronly
Only consider processes belonging to the running user.
-r, --reboothint
Only report whether a reboot is required (exit code 1) or not (exit code 0).
-s, --services
Only list the affected systemd services.

Configuration

/etc/dnf/plugins/needs-restarting.d/

/etc/dnf/plugins/needs-restarting.d/pkgname.conf

Packages can be added to needs-restarting via conf files in config directory. Config files need to have .conf extension or will be ignored.

More than one package is allowed in each file (one package per line) although it is advised to use one file for each package.

Example:

echo "dwm" > /etc/dnf/plugins/needs-restarting.d/dwm.conf

DNF post-transaction-actions Plugin

Description

The plugin allows to define actions to be executed upon completing an RPM transaction. Each action may define a (glob-like) filtering rule on the package NEVRA or package files, as well as whether the package was installed or removed. Actions are defined in action files.

Configuration

The plugin configuration is in /etc/dnf/plugins/post-transaction-actions.conf. All configuration options are in the [main] section.

enabled
Whether the plugin is enabled. Default value is True.
actiondir
Path to the directory with action files. Action files must have the “.action” extension. Default value is “/etc/dnf/plugins/post-transaction-actions.d/”.

Action file format

Empty lines and lines that start with a ‘#’ character are ignored. Each non-comment line defines an action and consists of three items separated by colons: package_filter:transaction_state:command.

package_filter
A (glob-like) filtering rule applied on the package NEVRA (also in the shortened forms) or package files.
transaction_state

Filters packages according to their state in the transaction.

  • in - packages that appeared on the system (downgrade, install, obsolete, reinstall, upgrade)
  • out - packages that disappeared from the system (downgraded, obsoleted, remove, upgraded)
  • any - all packages
command

Any shell command. The following variables in the command will be substituted:

  • ${name}, $name - package name
  • ${arch}, $arch - package arch
  • ${ver}, $ver - package version
  • ${rel}, $rel - package release
  • ${epoch}, $epoch - package epoch
  • ${repoid}, $repoid - package repository id
  • ${state}, $state - the change of package state in the transaction:
    “downgrade”, “downgraded”, “install”, “obsolete”, “obsoleted”, “reinstall”, “reinstalled”, “remove”, “upgrade”, “upgraded”

The shell command will be evaluated for each package that matched the package_filter and the transaction_state. However, after variable substitution, any duplicate commands will be removed and each command will only be executed once per transaction. The order of execution of the commands follows the order in the action files, but may differ from the order of packages in the transaction. In other words, when you define several action lines for the same package_filter these lines will be executed in the order they were defined in the action file when the package_filter matches a package during the trasaction_state state. However, the order of when a particular package_filter is invoked depends on the position of the corresponding package in the transaction.

An example action file:

# log all packages (state, nevra, repo) in transaction into a file.
*:any:echo '${state} ${name}-${epoch}:${ver}-${rel}.${arch} repo ${repoid}' >>/tmp/post-trans-actions-trans.log

# The same shell command (after variables substitution) is executed only once per transaction.
*:any:echo '${repoid}' >>/tmp/post-trans-actions-repos
# will write each repo only once to /tmp/post-trans-actions-repos, even if multiple packages from
# the same repo were matched

DNF repoclosure Plugin

Display a list of unresolved dependencies for repositories.

Synopsis

dnf repoclosure [<options>]

Description

repoclosure is a program that reads package metadata from one or more repositories, checks all dependencies, and displays a list of packages with unresolved dependencies.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

--arch <arch>
Query only packages for specified architecture, can be specified multiple times (default is all compatible architectures with your system). To run repoclosure for arch incompatible with your system use --forcearch=<arch> option to change basearch.
--best
Check only the newest packages per arch.
--check <repoid>
Specify repo ids to check, can be specified multiple times (default is all enabled).
--newest
Check only the newest packages in the repos.
--pkg <pkg-spec>
Check closure for this package only.
--repo <repoid>
Specify repo ids to query, can be specified multiple times (default is all enabled).

Examples

Display list of unresolved dependencies for all enabled repositories:

dnf repoclosure

Display list of unresolved dependencies for rawhide repository and packages with architecture noarch and x86_64:

dnf repoclosure --repo rawhide --arch noarch --arch x86_64

Display list of unresolved dependencies for zmap package from rawhide repository:

dnf repoclosure --repo rawhide --pkg zmap

Display list of unresolved dependencies for myrepo, an add-on for the rawhide repository:

dnf repoclosure --repo rawhide --check myrepo

DNF repodiff Plugin

Display a list of differences between two or more repositories

Synopsis

dnf repodiff [<options>]

Description

repodiff is a program which will list differences between two sets of repositories. Note that by default only source packages are compared.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

--repo-old=<repoid>, -o <repoid>
Add a <repoid> as an old repository. It is possible to be used in conjunction with --repofrompath option. Can be specified multiple times.
--repo-new=<repoid>, -n <repoid>
Add a <repoid> as a new repository. Can be specified multiple times.
--archlist=<arch>, -a <arch>
Add architectures to change the default from just comparing source packages. Note that you can use a wildcard “*” for all architectures. Can be specified multiple times.
--size, -s
Output additional data about the size of the changes.
--compare-arch
Normally packages are just compared based on their name, this flag makes the comparison also use the arch. So foo.noarch and foo.x86_64 are considered to be a different packages.
--simple
Output a simple one line message for modified packages.
--downgrade
Split the data for modified packages between upgraded and downgraded packages.

Examples

Compare source pkgs in two local repos:

dnf repodiff --repofrompath=o,/tmp/repo-old --repofrompath=n,/tmp/repo-new --repo-old=o --repo-new=n

Compare x86_64 compat. binary pkgs in two remote repos, and two local one:

dnf repodiff --repofrompath=o,http://example.com/repo-old --repofrompath=n,http://example.com/repo-new --repo-old=o --repo-new=n --archlist=x86_64

Compare x86_64 compat. binary pkgs, but also compare architecture:

dnf repodiff --repofrompath=o,http://example.com/repo-old --repofrompath=n,http://example.com/repo-new --repo-old=o --repo-new=n --archlist=x86_64 --compare-arch

DNF repograph Plugin

Output a full package dependency graph in dot format.

Synopsis

dnf repograph [<options>] dnf repo-graph [<options>]

Description

repograph is a program that generates a full package dependency list from a repository and outputs it in dot format.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

--repo <repoid>
Specify repo ids to query, can be specified multiple times (default is all enabled).

Examples

Output dependency list from all enabled repositories:

dnf repograph

Output dependency list from rawhide repository:

dnf repograph --repoid rawhide

Output dependency list from rawhide and koji repository:

dnf repo-graph --repoid rawhide --repoid koji

DNF repomanage Plugin

Manage a repository or a simple directory of rpm packages.

Synopsis

dnf repomanage [<optional-options>] [<options>] <path>

Description

repomanage prints newest or older packages in a repository specified by <path> for easy piping to xargs or similar programs. In case <path> doesn’t contain a valid repodata, it is searched for rpm packages which are then used instead. If the repodata are present, repomanage uses them as the source of truth, it doesn’t verify that they match the present rpm packages. In fact, repomanage can run with just the repodata, no rpm packages are needed.

In order to work correctly with modular packages, <path> has to contain repodata with modular metadata. If modular content is present, repomanage prints packages from newest or older stream versions in addition to newest or older non-modular packages.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

The following options set what packages are displayed. These options are mutually exclusive, i.e. only one can be specified. If no option is specified, the newest packages are shown.

--old
Show older packages (for a package or a stream show all versions except the newest one).
--oldonly
Show older packages (same as –old, but exclude the newest packages even when it’s included in the older stream versions).
--new
Show newest packages.

The following options control how packages are displayed in the output:

-s, --space
Print resulting set separated by space instead of newline.
-k <keep-number>, --keep <keep-number>
Limit the resulting set to newest <keep-number> packages.

Examples

Display newest packages in current repository (directory):

dnf repomanage --new .

Display 2 newest versions of each package in “home” directory:

dnf repomanage --new --keep 2 ~/

Display oldest packages separated by space in current repository (directory):

dnf repomanage --old --space .

DNF reposync Plugin

Synchronize packages of a remote DNF repository to a local directory.

Synopsis

dnf reposync [options]

Description

reposync makes local copies of remote repositories. Packages that are already present in the local directory are not downloaded again.

Options

All general DNF options are accepted. Namely, the --repoid option can be used to specify the repositories to synchronize. See Options in dnf(8) for details.

-a <architecture>, --arch=<architecture>
Download only packages of given architectures (default is all architectures). Can be used multiple times.
--delete
Delete local packages no longer present in repository.
--download-metadata
Download all repository metadata. Downloaded copy is instantly usable as a repository, no need to run createrepo_c on it. When the option is used with –newest-only, only latest packages will be downloaded, but metadata will still contain older packages. It might be useful to update metadata using createrepo_c –update to remove the packages with missing RPM files from metadata. Otherwise, DNF ends with an error due to the missing files whenever it tries to download older packages.
-g, --gpgcheck
Remove packages that fail GPG signature checking after downloading. Exit code is 1 if at least one package was removed. Note that for repositories with gpgcheck=0 set in their configuration the GPG signature is not checked even with this option used.
-m, --downloadcomps
Also download and uncompress comps.xml. Consider using --download-metadata option which will download all available repository metadata.
--metadata-path
Root path under which the downloaded metadata are stored. It defaults to --download-path value if not given.
-n, --newest-only
Download only newest packages per-repo.
--norepopath
Don’t add the reponame to the download path. Can only be used when syncing a single repository (default is to add the reponame).
-p <download-path>, --download-path=<download-path>
Root path under which the downloaded repositories are stored, relative to the current working directory. Defaults to the current working directory. Every downloaded repository has a subdirectory named after its ID under this path.
--safe-write-path
Specify the filesystem path prefix under which the reposync is allowed to write. If not specified it defaults to download path of the repository. Useful for repositories that use relative locations of packages out of repository directory (e.g. “../packages_store/foo.rpm”). Use with care, any file under the safe-write-path can be overwritten. Can be only used when syncing a single repository.
--remote-time
Try to set the timestamps of the downloaded files to those on the remote side.
--source
Download only source packages.
-u, --urls
Just print urls of what would be downloaded, don’t download.

Examples

dnf reposync --repoid=the_repo
Synchronize all packages from the repository with id “the_repo”. The synchronized copy is saved in “the_repo” subdirectory of the current working directory.
dnf reposync -p /my/repos/path --repoid=the_repo
Synchronize all packages from the repository with id “the_repo”. In this case files are saved in “/my/repos/path/the_repo” directory.
dnf reposync --repoid=the_repo --download-metadata
Synchronize all packages and metadata from “the_repo” repository.

Repository synchronized with --download-metadata option can be directly used in DNF for example by using --repofrompath option:

dnf --repofrompath=syncedrepo,the_repo --repoid=syncedrepo list --available

See Also

  • dnf(8), DNF Command Reference

DNF show-leaves Plugin

Shows newly installed leaf packages and packages that became leaves after a transaction.

For more information about leaf packages, see documentation for the leaves DNF plugin.

DNF system-upgrade Plugin

Description

DNF system-upgrades plugin provides three commands: system-upgrade, offline-upgrade, and offline-distrosync. Only system-upgrade command requires increase of distribution major version (--releasever) compared to installed version.

dnf system-upgrade is a recommended way to upgrade a system to a new major release. It replaces fedup (the old Fedora Upgrade tool). Before you proceed ensure that your system is fully upgraded (dnf --refresh upgrade).

The system-upgrade command also performes additional actions necessary for the upgrade of the system, for example an upgrade of groups and environments.

Synopsis

dnf system-upgrade download --releasever VERSION [OPTIONS]

dnf system-upgrade reboot

dnf system-upgrade reboot --poweroff

dnf system-upgrade clean

dnf system-upgrade log

dnf system-upgrade log --number=<number>

dnf offline-upgrade download [OPTIONS]

dnf offline-upgrade reboot

dnf offline-upgrade reboot --poweroff

dnf offline-upgrade clean

dnf offline-upgrade log

dnf offline-upgrade log --number=<number>

dnf offline-distrosync download [OPTIONS]

dnf offline-distrosync reboot

dnf offline-distrosync reboot --poweroff

dnf offline-distrosync clean

dnf offline-distrosync log

dnf offline-distrosync log --number=<number>

Subcommands

download
Downloads everything needed to upgrade to a new major release.
reboot
Prepares the system to perform the upgrade, and reboots to start the upgrade. This can only be used after the download command completes successfully.
clean
Remove previously-downloaded data. This happens automatically at the end of a successful upgrade.
log
Used to see a list of boots during which an upgrade was attempted, or show the logs from an upgrade attempt. The logs for one of the boots can be shown by specifying one of the numbers in the first column. Negative numbers can be used to number the boots from last to first. For example, log --number=-1 can be used to see the logs for the last upgrade attempt.

Options

--releasever=VERSION
REQUIRED. The version to upgrade to. Sets $releasever in all enabled repos. Usually a number, or rawhide.
--downloaddir=<path>
Redirect download of packages to provided <path>. By default, packages are downloaded into (per repository created) subdirectories of /var/lib/dnf/system-upgrade.
--distro-sync
Behave like dnf distro-sync: always install packages from the new release, even if they are older than the currently-installed version. This is the default behavior.
--no-downgrade
Behave like dnf update: do not install packages from the new release if they are older than what is currently installed. This is the opposite of --distro-sync. If both are specified, the last option will be used. The option cannot be used with the offline-distrosync command.
--poweroff
When applied with the reboot subcommand, the system will power off after upgrades are completed, instead of restarting.
--number
Applied with log subcommand will show the log specified by the number.

Notes

dnf system-upgrade reboot does not create a “System Upgrade” boot item. The upgrade will start regardless of which boot item is chosen.

The DNF_SYSTEM_UPGRADE_NO_REBOOT environment variable can be set to a non-empty value to disable the actual reboot performed by system-upgrade (e.g. for testing purposes).

Since this is a DNF plugin, options accepted by dnf are also valid here, such as --allowerasing. See dnf(8) for more information.

The fedup command is not provided, not even as an alias for dnf system-upgrade.

Bugs

Upgrading from install media (e.g. a DVD or .iso file) currently requires the user to manually set up a DNF repo and fstab entry for the media.

Examples

Typical upgrade usage

dnf --refresh upgrade

dnf system-upgrade download --releasever 26

dnf system-upgrade reboot

Show logs from last upgrade attempt

dnf system-upgrade log --number=-1

Reporting Bugs

Bugs should be filed here:

For more info on filing bugs, see the Fedora Project wiki:

Please include /var/log/dnf.log and the output of dnf system-upgrade log --number=-1 (if applicable) in your bug reports.

Problems with dependency solving during download are best reported to the maintainers of the package(s) with the dependency problems.

Similarly, problems encountered on your system after the upgrade completes should be reported to the maintainers of the affected components. In other words: if (for example) KDE stops working, it’s best if you report that to the KDE maintainers.

See Also

dnf(8), dnf.conf(5), journalctl(1).

Authors

Will Woods <wwoods@redhat.com>

Štěpán Smetana <ssmetana@redhat.com>

DNF versionlock Plugin

Description

versionlock is a plugin that takes a set of names and versions for packages and excludes all other versions of those packages. This allows you to protect packages from being updated by newer versions. Alternately, it accepts a specific package version to exclude from updates, e.g. for when it’s necessary to skip a specific release of a package that has known issues.

The plugin provides a command versionlock which allows you to view and edit the list of locked packages easily.

The plugin will walk each line of the versionlock file, and parse out the name and version of the package. It will then exclude any package by that name that doesn’t match one of the versions listed within the file. This is basically the same as using dnf –exclude for the package name itself (as you cannot exclude installed packages), but dnf will still see the versions you have installed/versionlocked as available so that dnf reinstall will still work, etc.

It can also work in the opposite way, like a fast exclude, by prefixing a ‘!’ character to the version recorded in the lock list file. This specifically excludes a package that matches the version exactly.

Note the versionlock plugin does not apply any excludes in non-transactional operations like repoquery, list, info, etc.

Synopsis

dnf versionlock [options] [add|exclude|list|delete|clear] [<package-name-spec>]

Arguments

<package-name-spec>
Package spec to lock or exclude.

Subcommands

dnf versionlock add <package-name-spec>

Add a versionlock for all available packages matching the spec. It means that only versions of packages represented by <package-name-spec> will be available for transaction operations. Each <package-name-spec> is converted to concrete NEVRAs which are used for locking. The NEVRAs to lock to are first searched among installed packages and then (if none is found) in all currently available packages.

Examples:

Locking a package to the version installed:

    $ dnf repoquery --installed bash
    bash-0:5.0.7-1.fc30.x86_64

    $ dnf repoquery bash
    bash-0:5.0.2-1.fc30.i686
    bash-0:5.0.2-1.fc30.x86_64
    bash-0:5.0.7-1.fc30.i686
    bash-0:5.0.7-1.fc30.x86_64

    $ dnf versionlock add bash
    Adding versionlock on: bash-0:5.0.7-1.fc30.*

Locking not installed package to any of available versions:

    $ dnf repoquery --installed mutt

    $ dnf repoquery mutt
    mutt-5:1.11.4-1.fc30.x86_64
    mutt-5:1.12.1-3.fc30.x86_64

    $ dnf versionlock add mutt
    Adding versionlock on: mutt-5:1.11.4-1.fc30.*
    Adding versionlock on: mutt-5:1.12.1-3.fc30.*

Note

Be careful when adding specific versions

If you add a package specifying a version with dnf versionlock mutt-5:1.11.4-1.fc30.x86_64 then, if you run dnf versionlock add mutt versionlock will not add mutt-5:1.12.1-3.fc30.x86_64.

dnf versionlock exclude <package-name-spec>
Add an exclude (within versionlock) for the available packages matching the spec. It means that packages represented by <package-name-spec> will be excluded from transaction operations.
dnf versionlock list or dnf versionlock
List the current versionlock entries.
dnf versionlock delete <package-name-spec>
Remove any matching versionlock entries.
dnf versionlock clear
Remove all versionlock entries.

Options

All general DNF options are accepted, see Options in dnf(8) for details.

--raw

Do not resolve <package-name-spec> to NEVRAs to find specific version to lock to. Instead <package-name-spec> are used as they are. This enables locking to not yet available versions of the package. For example you may want to keep the bash package on major version 5 and consume any future updates as far as they keep the major version:

$ dnf versionlock add --raw 'bash-5.*'
Adding versionlock on: bash-5.*

Configuration

/etc/dnf/plugins/versionlock.conf

The minimal content of conf file should contain main sections with enabled and locklist parameters.

locklist

This option is a string that points to the file which has the versionlock information in it. Note that the file has to exist (or the versionlock plugin will make dnf exit). However, it can be empty.

The file takes entries in the format of <package-name-spec> (optionally prefixed with ‘!’ for excludes). See Specifying packages in dnf(8) for details.

Notes

A specified package does not have to exist within the available cache of repository data to be considered valid for locking or exclusion. This is by design, to accommodate use cases such as a presently disabled repository. However, a package must exist in the repository cache when the add or exclude subcommands are invoked for it.

Indices and tables