Operating System and Software Management

The following features, enhancements, and changes related to the OS and software management are introduced in this Oracle Linux 10 release.

dnf-plugins-core Released at Version 4.7.0

dnf-plugins-core is released at version 4.7.0 and includes the python3-dnf-plugin-pre-transaction-actions package that includes tooling to run a command when an RPM transaction is started. See the dnf-pre-transaction-actions(8) manual page for more information.

Filelists Metadata No Longer Downloaded

The filelists metadata provides details such as the names, paths, and permissions of all files installed by a package, and is used for more precise management of package contents, enabling features such as file-based dependencies and conflict detection between different versions of packages. However, because of its size and limited necessity in most DNF transactions, by default, filelists metadata is no longer downloaded when retrieving repository metadata.

Also, the filelists metadata isn't downloaded or updated from repositories when performing DNF transactions using dnf commands. However, filelists metadata can be automatically loaded if a dnf command specifically requires it or includes a file-related argument.

In cases where a package relies on a filepath dependency requiring filelists metadata, the transaction might fail with a dependency resolution error that includes a hint suggesting one of two possible solutions:

  • Use --skip-broken to bypass uninstallable packages.
  • Set --setopt=optional_metadata_types=filelists to load the optional filelists metadata.

To configure DNF to download filelist metadata by default, append the filelists value to the optional_metadata_types option within /etc/dnf/dnf.conf.

Consolidation of PGP Key Verification in DNF and RPM

RPM package signature verification is enhanced to use the rpm-sequoia library, instead of the custom PGP parser that was used before. Similarly, librepo which verifies PGP signatures on DNF repositories, is also updated to use the same rpm-sequoia library for a more consistent handling signature verification in both RPM and DNF tooling.

createrepo_c Package Added

The createrepo_c package is added as a C implementation of the createrepo tool used to generate and manage a common metadata repository for RPM packages compatible with tools such as yum and DNF. The C implementation includes the following features and enhancements:
  • zstd is the default compression algorithm to provide smaller metadata and quicker decompression. zstd replaces gz, although gz compression is still available.
  • Metadata in SQLite database format is no longer generated by default to improve performance and disk usage. Use the --database switch or the sqliterepo_c tool to create this metadata, if required.
  • group.xml metadata is present only when compressed and has the group metadata type. The metadata is no longer presented when uncompressed.

Improved Package Upgrades With DNF and Related Tools

Use DNF with the exclude_from_weak_autodetect option to automatically detect unmet weak dependencies of installed packages and prevent the installation of packages that would satisfy those unmet dependencies. Previously, this option was disabled by default, resulting in the installation of all weak dependencies associated with a package during an upgrade, regardless of whether they were installed before. With this update, the exclude_from_weak_autodetect option is now enabled by default, ensuring that only newly recommended packages are installed when using DNF, PackageKit, or microdnf to perform an upgrade.

RPM Database Moved for Simplified System Snapshots

With this update, the RPM database is moved from the /var/lib/rpm directory to the /usr/lib/sysimage/rpm directory. Storing the database in /usr simplifies the creation and rollback of system snapshots because the contents of /var no longer must be considered. It also aligns with rpm-ostree based systems, such as Oracle Linux CoreOS, which already store the RPM database under the /usr directory.

Enhanced Control Over Stale Processes With the --exclude-services Flag

You can use the dnf needs-restarting --services to list systemd services that need restarting. With this update, a new --exclude-services flag is added to dnf needs-restarting to exclude systemd services from the list of stale processes.