第 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 […]
[…]
package-1.2 repo1
package-1.2 repo2
[…]
相反,传统的 YUM v3 命令会过滤出此类的重复,因此只显示一个实例:
[…] package-1.2 repo1 […]
[…]
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 版本中将完全删除这个功能。