Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
Chapter 6. Software management
6.1. Notable changes to the YUM stack
6.1.1. Package management with YUM/DNF
On Red Hat Enterprise Linux 8, installing software is ensured by the YUM tool, which is based on the DNF technology (YUM v4). We deliberately adhere to usage of the yum
term for consistency with previous major versions of RHEL. However, if you type dnf
instead of yum
, the command works as expected because yum
is an alias to dnf
for compatibility.
For more details, see Installing, managing, and removing user-space components.
6.1.2. Advantages of YUM v4 over YUM v3
YUM v4 has the following advantages over the previous YUM v3 used on RHEL 7:
- Increased performance
- Support for modular content
- Well-designed stable API for integration with tooling
For detailed information about differences between the new YUM v4 tool and the previous version YUM v3 from RHEL 7, see Changes in DNF CLI compared to YUM.
6.1.3. How to use YUM v4
Installing software
YUM v4 is compatible with YUM v3 when using from the command line, editing or creating configuration files.
For installing software, you can use the yum
command and its particular options in the same way as on RHEL 7.
See more detailed information about Installing software packages.
Availability of plug-ins
Legacy YUM v3 plug-ins are incompatible with the new version of YUM v4. Selected yum plug-ins and utilities have been ported to the new DNF back end, and can be installed under the same names as in RHEL 7. They also provide compatibility symlinks, so the binaries, configuration files and directories can be found in usual locations.
In the event that a plug-in is no longer included, or a replacement does not meet a usability need, please reach out to Red Hat Support to request a Feature Enhancement as described in How do I open and manage a support case on the Customer Portal?
For more information, see Plugin Interface.
Availability of APIs
Note that the legacy Python API provided by YUM v3 is no longer available. Users are advised to migrate their plug-ins and scripts to the new API provided by YUM v4 (DNF Python API), which is stable and fully supported. The upstream project documents the new DNF Python API - see the DNF API Reference.
The Libdnf and Hawkey APIs (both C and Python) are to be considered unstable, and will likely change during RHEL 8 life cycle.
6.1.4. Availability of YUM configuration file options
The changes in configuration file options between RHEL 7 and RHEL 8 for the /etc/yum.conf
and /etc/yum.repos.d/*.repo
files are documented in the following summary.
RHEL 7 option | RHEL 8 status |
---|---|
alwaysprompt | removed |
assumeno | available |
assumeyes | available |
autocheck_running_kernel | available |
autosavets | removed |
bandwidth | available |
bugtracker_url | available |
cachedir | available |
check_config_file_age | available |
clean_requirements_on_remove | available |
color | available |
color_list_available_downgrade | available |
color_list_available_install | available |
color_list_available_reinstall | available |
color_list_available_running_kernel | removed |
color_list_available_upgrade | available |
color_list_installed_extra | available |
color_list_installed_newer | available |
color_list_installed_older | available |
color_list_installed_reinstall | available |
color_list_installed_running_kernel | removed |
color_search_match | available |
color_update_installed | available |
color_update_local | available |
color_update_remote | available |
commands | removed |
config_file_path | available |
debuglevel | available |
deltarpm | available |
deltarpm_metadata_percentage | removed |
deltarpm_percentage | available |
depsolve_loop_limit | removed |
disable_excludes | available |
diskspacecheck | available |
distroverpkg | removed |
enable_group_conditionals | removed |
errorlevel | available |
exactarchlist | removed |
exclude | available |
exit_on_lock | available |
fssnap_abort_on_errors | removed |
fssnap_automatic_keep | removed |
fssnap_automatic_post | removed |
fssnap_automatic_pre | removed |
fssnap_devices | removed |
fssnap_percentage | removed |
ftp_disable_epsv | removed |
gpgcheck | available |
group_command | removed |
group_package_types | available |
groupremove_leaf_only | removed |
history_list_view | available |
history_record | available |
history_record_packages | available |
http_caching | removed |
include | removed |
installonly_limit | available |
installonlypkgs | available |
installrootkeep | removed |
ip_resolve | available |
keepalive | removed |
keepcache | available |
kernelpkgnames | removed |
loadts_ignoremissing | removed |
loadts_ignorenewrpm | removed |
loadts_ignorerpm | removed |
localpkg_gpgcheck | available |
logfile | removed |
max_connections | removed |
mddownloadpolicy | removed |
mdpolicy | removed |
metadata_expire | available |
metadata_expire_filter | removed |
minrate | available |
mirrorlist_expire | removed |
multilib_policy | available |
obsoletes | available |
override_install_langs | removed |
overwrite_groups | removed |
password | available |
payload_gpgcheck | removed |
persistdir | available |
pluginconfpath | available |
pluginpath | available |
plugins | available |
protected_multilib | removed |
protected_packages | available |
proxy | available |
proxy_password | available |
proxy_username | available |
query_install_excludes | removed |
recent | available |
recheck_installed_requires | removed |
remove_leaf_only | removed |
repo_gpgcheck | available |
repopkgsremove_leaf_only | removed |
reposdir | available |
reset_nice | available |
retries | available |
rpmverbosity | available |
shell_exit_status | removed |
showdupesfromrepos | available |
skip_broken | available |
skip_missing_names_on_install | removed |
skip_missing_names_on_update | removed |
ssl_check_cert_permissions | removed |
sslcacert | available |
sslclientcert | available |
sslclientkey | available |
sslverify | available |
syslog_device | removed |
syslog_facility | removed |
syslog_ident | removed |
throttle | available |
timeout | available |
tolerant | removed |
tsflags | available |
ui_repoid_vars | removed |
upgrade_group_objects_upgrade | available |
upgrade_requirements_on_install | removed |
usercache | removed |
username | available |
usr_w_check | removed |
RHEL 7 option | RHEL 8 status |
---|---|
async | removed |
bandwidth | available |
baseurl | available |
compare_providers_priority | removed |
cost | available |
deltarpm_metadata_percentage | removed |
deltarpm_percentage | available |
enabled | available |
enablegroups | available |
exclude | available |
failovermethod | removed |
ftp_disable_epsv | removed |
gpgcakey | removed |
gpgcheck | available |
gpgkey | available |
http_caching | removed |
includepkgs | available |
ip_resolve | available |
keepalive | removed |
metadata_expire | available |
metadata_expire_filter | removed |
metalink | available |
mirrorlist | available |
mirrorlist_expire | removed |
name | available |
password | available |
proxy | available |
proxy_password | available |
proxy_username | available |
repo_gpgcheck | available |
repositoryid | removed |
retries | available |
skip_if_unavailable | available |
ssl_check_cert_permissions | removed |
sslcacert | available |
sslclientcert | available |
sslclientkey | available |
sslverify | available |
throttle | available |
timeout | available |
ui_repoid_vars | removed |
username | available |
6.1.5. YUM v4 features behaving differently
Some of the YUM v3 features may behave differently in YUM v4. If any such change negatively impacts your workflows, please open a case with Red Hat Support, as described in How do I open and manage a support case on the Customer Portal?
6.1.5.1. yum list presents duplicate entries
When listing packages using the yum list
command, duplicate entries may be presented, one for each repository where a package of the same name and version resides.
This is intentional, and it allows the users to distinguish such packages when necessary.
For example, if package-1.2 is available in both repo1 and repo2, YUM v4 will print both instances:
[…] package-1.2 repo1 package-1.2 repo2 […]
By contrast, the legacy YUM v3 command filtered out such duplicates so that only one instance was shown:
[…] package-1.2 repo1 […]
6.1.6. Changes in the transaction history log files
The changes in the transaction history log files between RHEL 7 and RHEL 8 are documented in the following summary.
In RHEL 7, the /var/log/yum.log
file stores:
- Registry of installations, updates, and removals of the software packages
- Transactions from yum and PackageKit
In RHEL 8, there is no direct equivalent to the /var/log/yum.log
file. To display the information about the transactions, including the PackageKit and microdnf, use the yum history
command.
Alternatively, you can search the /var/log/dnf.rpm.log
file, but this log file does not include the transactions from PackageKit and microdnf, and it has a log rotation which provides the periodic removal of the stored information.
6.1.7. The deltarpm functionality is no longer supported
RHEL 8 no longer supports the use of delta rpms
. To utilize delta rpms
, a user must install the deltarpm
package which is no longer available. The deltarpm
replacement, drpm
, does not provide the same functionality. Thus, the RHEL 8 content is not delivered in the deltarpm
format. Note that this functionality will be completely removed in future RHEL releases.
6.2. Notable RPM features and changes
Red Hat Enterprise Linux (RHEL) 8 is distributed with RPM 4.14. This version introduces many enhancements over RPM 4.11, which is available in RHEL 7.
Notable features include:
- The debuginfo packages can be installed in parallel
- Support for weak dependencies
- Support for rich or boolean dependencies
- Support for packaging files above 4 GB in size
- Support for file triggers
-
New
--nopretrans
and--noposttrans
switches to disable the execution of the%pretrans
and%posttrans
scriptlets respectively. -
New
--noplugins
switch to disable loading and execution of all RPM plug-ins. -
New
syslog
plug-in for logging any RPM activity by the System Logging protocol (syslog). The
rpmbuild
command can now do all build steps from a source package directly.This is possible if
rpmbuild
is used with any of the-r[abpcils]
options.Support for the reinstall mode.
This is ensured by the new
--reinstall
option. To reinstall a previously installed package, use the syntax below:rpm {--reinstall} [install-options] PACKAGE_FILE
This option ensures a proper installation of the new package and removal of the old package.
Support for SSD conservation mode.
This is ensured by the new
%_minimize_writes
macro, which is available in the/usr/lib/rpm/macros
file. The macro is by default set to 0. To minimize writing to SSD disks, set%_minimize_writes
to 1.-
New
rpm2archive
utility for converting rpm payload to tar archives
See more information about New RPM features in RHEL 8.
Notable changes include:
- Stricter spec-parser
- Simplified signature checking the output in non-verbose mode
Improved support for reproducible builds (builds that create an identical package):
- Setting build time
- Setting file mtime (file modification time)
- Setting buildhost
-
Using the
-p
option to query an uninstalled PACKAGE_FILE is now optional. For this use case, therpm
command now returns the same result with or without the-p
option. The only use case where the-p
option is necessary is to verify that the file name does not match anyProvides
in therpmdb
database. Additions and deprecations in macros
-
The
%makeinstall
macro has been deprecated. To install a program, use the%make_install
macro instead.
-
The
The
rpmbuild --sign
command has been deprecated.Note that using the
--sign
option with therpmbuild
command has been deprecated. To add a signature to an already existing package, userpm --addsign
instead.