第 6 章 软件管理
6.1. YUM 的主要变化
6.1.1. 使用 YUM/DNF 管理软件包
在 Red Hat Enterprise Linux 8 上,通过基于 DNF 技术(YUM v4) 的YUM 保证安装软件。我们还会继续使用 yum
术语,以便与以前的 RHEL 主版本保持一致。但是,如果您键入 dnf
而不是 yum
,则 命令可以正常工作,因为 yum
是 dnf
的别名以实现兼容性。
如需了解更多详细信息,请参阅 安装、管理和删除用户空间组件。
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
文件的配置文件选项中的更改记录在以下概述中。
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 | 删除 |
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
文件。要显示事务信息,包括 PackageKit 和 microdnf,请使用 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 版本中将完全删除这个功能。