Red Hat Training

A Red Hat training course is available for RHEL 8

第 6 章 软件管理

6.1. YUM 的主要变化

6.1.1. 使用 YUM/DNF 管理软件包

在 Red Hat Enterprise Linux 8 上,通过基于 DNF 技术(YUM v4) 的YUM 保证安装软件。我们还会继续使用 yum 术语,以便与以前的 RHEL 主版本保持一致。但是,如果您键入 dnf 而不是 yum,则 命令可以正常工作,因为 yumdnf 的别名以实现兼容性。

如需了解更多详细信息,请参阅 安装、管理和删除用户空间组件

6.1.2. YUM v4 与 YUM v3 相比的优点

yum v4 比 RHEL 7 上之前使用的 YUM v3 有以下优点:

  • 提高了性能
  • 支持模块化内容
  • 设计良好的稳定 API,用于与工具集成

有关新的 YUM v4 工具和来自 RHEL 7 的之前版本的 YUM v3 之间的差异的详细信息,请参阅 与 YUM 相比,DNF CLI 的变化

6.1.3. 如何使用 YUM v4

安装软件

yum v4 在使用命令行、编辑或者创建配置文件时与 YUM v3 兼容。

对于安装软件,您可以使用 yum 命令及其具体的选项,按照与 RHEL 7 一样的方式。

请参阅有关 安装软件包 的更多详细信息。

插件可用性

旧的 YUM v3 插件与 YUM v4 的新版本不兼容。所选的一些 yum 插件和工具已被移植到新的 DNF 后端,可使用与 RHEL 7 中相同的名称进行安装。它们也提供兼容性符号链接,因此可在通常的位置找到 二进制文件、配置文件和目录。

如果不再包含插件,或者替换不满足可用性需求,请联系红帽支持来请求功能增强,如 如何再客户门户网站上打开和管理支持问题单? 中所述

如需更多信息,请参阅 插件接口

API 的可用性

请注意,YUM v3 提供的旧版本的 Python API 不再可用。我们建议用户将插件和脚本迁移到 YUM v4(DNF Python API)提供的新 API 中,它是稳定的且被完全支持。上游项目记录了新的 DNF Python API - 请参阅 DNF API 参考

Libdnf 和 Hawkey API(C 和 Python)被视为不稳定,在 RHEL 8 生命周期中可能会有所变化。

6.1.4. YUM 配置文件选项的可用性

RHEL 7 和 RHEL 8 之间 /etc/yum.conf/etc/yum.repos.d/*.repo 文件的配置文件选项中的更改记录在以下概述中。

表 6.1. /etc/yum.conf 文件配置文件选项的更改

RHEL 7 选项RHEL 8 状态

alwaysprompt

删除

assumeno

可用

assumeyes

可用

autocheck_running_kernel

可用

autosavets

删除

bandwidth

可用

bugtracker_url

可用

cachedir

可用

check_config_file_age

可用

clean_requirements_on_remove

可用

color

可用

color_list_available_downgrade

可用

color_list_available_install

可用

color_list_available_reinstall

可用

color_list_available_running_kernel

删除

color_list_available_upgrade

可用

color_list_installed_extra

可用

color_list_installed_newer

可用

color_list_installed_older

可用

color_list_installed_reinstall

可用

color_list_installed_running_kernel

删除

color_search_match

可用

color_update_installed

可用

color_update_local

可用

color_update_remote

可用

commands

删除

config_file_path

可用

debuglevel

可用

deltarpm

可用

deltarpm_metadata_percentage

删除

deltarpm_percentage

可用

depsolve_loop_limit

删除

disable_excludes

可用

diskspacecheck

可用

distroverpkg

删除

enable_group_conditionals

删除

errorlevel

可用

exactarchlist

删除

exclude

可用

exit_on_lock

可用

fssnap_abort_on_errors

删除

fssnap_automatic_keep

删除

fssnap_automatic_post

删除

fssnap_automatic_pre

删除

fssnap_devices

删除

fssnap_percentage

删除

ftp_disable_epsv

删除

gpgcheck

可用

group_command

删除

group_package_types

可用

groupremove_leaf_only

删除

history_list_view

可用

history_record

可用

history_record_packages

可用

http_caching

删除

Include

删除

installonly_limit

可用

installonlypkgs

可用

installrootkeep

删除

ip_resolve

可用

keepalive

删除

keepcache

可用

kernelpkgnames

删除

loadts_ignoremissing

删除

loadts_ignorenewrpm

删除

loadts_ignorerpm

删除

localpkg_gpgcheck

可用

logfile

删除

max_connections

删除

mddownloadpolicy

删除

mdpolicy

删除

metadata_expire

可用

metadata_expire_filter

删除

minrate

可用

mirrorlist_expire

删除

multilib_policy

可用

obsoletes

可用

override_install_langs

删除

overwrite_groups

删除

password

可用

payload_gpgcheck

删除

persistdir

可用

pluginconfpath

可用

pluginpath

可用

plugins

可用

protected_multilib

删除

protected_packages

可用

proxy

可用

proxy_password

可用

proxy_username

可用

query_install_excludes

删除

recent

可用

recheck_installed_requires

删除

remove_leaf_only

删除

repo_gpgcheck

可用

repopkgsremove_leaf_only

删除

reposdir

可用

reset_nice

可用

retries

可用

rpmverbosity

可用

shell_exit_status

删除

showdupesfromrepos

可用

skip_broken

可用

skip_missing_names_on_install

删除

skip_missing_names_on_update

删除

ssl_check_cert_permissions

删除

sslcacert

可用

sslclientcert

可用

sslclientkey

可用

sslverify

可用

syslog_device

删除

syslog_facility

删除

syslog_ident

删除

throttle

可用

timeout

可用

tolerant

删除

tsflags

可用

ui_repoid_vars

删除

upgrade_group_objects_upgrade

可用

upgrade_requirements_on_install

删除

usercache

删除

username

可用

usr_w_check

删除

表 6.2. /etc/yum.repos.d/*.repo 文件配置文件选项更改

RHEL 7 选项RHEL 8 状态

async

删除

bandwidth

可用

baseurl

可用

compare_providers_priority

删除

cost

可用

deltarpm_metadata_percentage

删除

deltarpm_percentage

可用

enabled

可用

enablegroups

可用

exclude

可用

failovermethod

删除

ftp_disable_epsv

删除

gpgcakey

删除

gpgcheck

可用

gpgkey

可用

http_caching

删除

includepkgs

可用

ip_resolve

可用

keepalive

删除

metadata_expire

可用

metadata_expire_filter

删除

metalink

可用

mirrorlist

可用

mirrorlist_expire

删除

name

可用

password

可用

proxy

可用

proxy_password

可用

proxy_username

可用

repo_gpgcheck

可用

repositoryid

删除

retries

可用

skip_if_unavailable

可用

ssl_check_cert_permissions

删除

sslcacert

可用

sslclientcert

可用

sslclientkey

可用

sslverify

可用

throttle

可用

timeout

可用

ui_repoid_vars

删除

username

可用

6.1.5. YUM v4 的不同行为

YUM v3 的一些功能在 YUM v4 中的行为可能不同。如果此类更改对您的工作流有影响,请向红帽支持创建一个问题单,请参阅 如何打开和管理客户门户网站中的支持问题单所述?

6.1.5.1. yum list 显示重复条目

在使用 yum list 命令列出软件包时,可能会显示重复的条目,每个存储库一条,其中包含相同名称和版本的软件包。

这是有意设计的,用户在需要时也可区分这些软件包。

例如,如果 package-1.2 在 repo1 和 repo2 中都可用,YUM v4 会输出这两个实例:

[…​]
package-1.2    repo1
package-1.2    repo2
[…​]

相反,传统的 YUM v3 命令会过滤出此类的重复,因此只显示一个实例:

[…​]
package-1.2    repo1
[…​]

6.1.6. 事务历史记录文件的更改

RHEL 7 和 RHEL 8 之间的事务历史记录日志文件中的更改记录在以下概述中。

在 RHEL 7 中, 使用 /var/log/yum.log 文件存储:

  • 软件包的安装、更新和删除的注册表
  • 来自 yum 和 PackageKit 的事务

在 RHEL 8 中,没有直接对应的 /var/log/yum.log 文件。要显示事务信息,包括 PackageKitmicrodnf,请使用 yum history 命令。

或者,您可以搜索 /var/log/dnf.rpm.log 文件,但此日志文件不包括 PackageKit 和 microdnf 的事务,它有一个日志轮转,提供定期删除存储的信息。

6.1.7. deltarpm 功能不再被支持

RHEL 8 不再支持使用 delta rpms。要使用 delta rpms,用户必须安装不再可用的 deltarpm 软件包。deltarpm 替换 drpm ,不再提供相同的功能。因此,RHEL 8 内容不会以 deltarpm 格式提供。请注意,在以后的 RHEL 版本中将完全删除这个功能。