Notable changes to DNF
Review the most notable changes to DNF between RHEL 9 and RHEL 10.
- Modularity is deprecated
-
In RHEL 10, the modularity functionality is deprecated and will be removed in a future major release. Therefore, the DNF
modulecommand displays a deprecation warning.Note In previous RHEL major versions, some Application Streams were available as modules as an extension to the RPM format. In RHEL 10, Red Hat does not intend to provide any Application Streams that use modularity as the packaging technology. Therefore, no modular content is being distributed with RHEL 10. - The repository metadata is not downloaded by default
-
Previously, when you downloaded a repository’s metadata, the filelists metadata was downloaded by default. The filelists metadata is large and is typically not needed. With this update, this metadata is not downloaded by default, which improves responsiveness and saves disk space. The filelists metadata is also no longer downloaded or updated from repositories and is not loaded into the DNF transaction when you run a
dnfcommand. If thednfcommand requires the filelists metadata or includes a file-related argument, the metadata is loaded automatically.Note When a package has a filepath dependency that requires filelists metadata to be resolved, the transaction fails with a dependency resolution error and the following hint:
(try to add '--skip-broken' to skip uninstallable packages or '--setopt=optional_metadata_types=filelists' to load additional filelists metadata)Note If you want to re-enable the default filelist metadata downloading, you can add thefilelistsvalue to theoptional_metadata_typesoption in the/etc/dnf/dnf.confconfiguration file. - The DNF
debugplugin is removed -
The DNF
debugplugin, which included thednf debug-dumpanddnf debug-restorecommands, is removed from thednf-plugins-corepackage. Depending on your scenario, you can use the following commands instead:dnf list --installedordnf repoquery --installedto list packages installed on your systemdnf repolist -vto list repositories enabled on your systemdnf install $(</tmp/list)to replicate packages installed on a source system to the target system. For example:- Save a list of packages installed on a source system into the
/tmp/listfile:$ dnf repoquery --installed >/tmp/list - Copy the
/tmp/listfile to the target system. - Replicate packages on the target system:
$ dnf install $(</tmp/list)"
- Save a list of packages installed on a source system into the
- The support for the
libreportlibrary is removed - The support for the
libreportlibrary is removed from DNF. If you want to attach DNF logs to your bug reports, you need to do it manually or by using a different mechanism. dnf-plugins-corerebased to version 4.7.0- The
dnf-plugins-corepackage is rebased to version 4.7.0 that provides a newpython3-dnf-plugin-pre-transaction-actionspackage. This package includes a newpre-transaction-actionsDNF plugin that allows you to run a command upon starting an RPM transaction. For more information, see thednf-pre-transaction-actions(8)manual page on your system.