第 1 章 Red Hat Software Collections 3.7
本章概述 Red Hat Software Collections 3.7 内容集。它提供组件及其描述列表,以及此版本的更改,记录了相关兼容性信息,以及列出已知问题。
1.1. 关于 Red Hat Software Collections
对于某些应用程序,通常需要较新版本的部分软件组件,以便使用其最新的新功能。Red Hat Software Collections 是一个红帽产品,它提供一组动态编程语言、数据库服务器和各种相关软件包,它们比基本 Red Hat Enterprise Linux 系统中包含的对等版本更最新的,或者首次对此系统可用。
Red Hat Software Collections 3.7 适用于 Red Hat Enterprise Linux 7。有关作为 Red Hat Software Collections 一部分分发的组件的完整列表及其功能的简要概述,请参阅 第 1.2 节 “主要功能”。
Red Hat Software Collections 不会替换 Red Hat Enterprise Linux 7 提供的默认系统工具。相反,在
/opt/
目录中安装了一组并行工具,并可以选择使用提供的 scl 工具为每个应用程序启用。例如,默认 Perl 或 PostgreSQL 版本保留由基本 Red Hat Enterprise Linux 系统提供的版本。
注意
在 Red Hat Enterprise Linux 8 中,类似组件作为 Application Streams 提供。
所有 Red Hat Software Collections 组件在 Red Hat Enterprise Linux 订阅级别协议中被完全支持,其功能已完成,并适用于生产环境。在 Red Hat Software Collections 订阅者以类似 Red Hat Enterprise Linux 的方式向 Red Hat Software Collections 订阅者发布重要的程序错误修复和安全勘误,自每个主要版本发布后至少两年。在每个主发行版本流中,所选组件的每个版本都保持向后兼容。有关独立组件支持长度的详细信息,请参阅 Red Hat Software Collections 产品生命周期 文档。
1.1.1. Red Hat Developer Toolset
Red Hat Developer Toolset 是 Red Hat Software Collections 的一部分,作为一个单独的 Software Collection 提供。有关 Red Hat Developer Toolset 的更多信息,请参阅 Red Hat Developer Toolset 发行注记 和 Red Hat Developer Toolset 用户指南。
1.2. 主要功能
表 1.1 “Red Hat Software Collections 组件” 列出 Red Hat Software Collections 3.7 发行版本时支持的组件。当前仅在 Red Hat Enterprise Linux 7 中支持所有 Software Collections。
组件 | Software Collection | 描述 |
---|---|---|
Red Hat Developer Toolset 10.1 | devtoolset-10 | Red Hat Developer Toolset 是为在 Red Hat Enterprise Linux 平台上工作的开发人员设计的。它提供了 GNU Compiler Collection、GNU Debugger 和其他开发、调试和性能监控工具的当前版本。有关组件的完整列表,请参阅 Red Hat Developer Toolset 用户指南中的 Red Hat Developer Toolset 组件 表。 |
Perl 5.30.1 | rh-perl530 | Perl 的一个高级编程语言,通常用于系统管理实用程序和 Web 编程。rh-perl530 Software Collection 为 MySQL、PostgreSQL 和 SQLite 提供了额外的实用程序、脚本和数据库连接器。它包括 DateTime Perl 模块和 mod_perl Apache httpd 模块,该模块仅支持 httpd24 软件集合。另外,它还为轻松安装 CPAN 模块提供 cpanm 工具,用于与 HTTP 服务器通信 LWP::UserAgent 模块,以及用于保护通信的 LWP::Protocol::https 模块。rh-perl530 打包与上游一致; perl530-perl 软件包也会安装核心模块,而解释器则由 perl-interpreter 软件包提供。 |
PHP 7.3.20 | rh-php73 | 带有 PEAR 1.10.9、APCu 5.1.17 和 Xdebug 扩展的 PHP 7.3 发行版本。 |
Python 2.7.18 | python27 | 带有其他工具的 Python 2.7 发行版本。这个 Python 版本提供各种功能和增强功能,包括排序的字典类型、更快的 I/O 操作,并改进了与 Python 3 的正向兼容性。python27 Software Collections 包含 Python 2.7.13 解释器,一组用于编程 Web 应用程序和 mod_wsgi 的扩展库(只在 httpd24 Software Collection 中被支持)、MySQL 和 PostgreSQL 数据库连接器,以及 numpy 和 scipy。 |
Python 3.8.6 | rh-python38 | rh-python38 Software Collection 包含 Python 3.8,它引入了新的 Python 模块,如 contextvars 、dataclasses 或 importlib.resources 、新语言功能、改进的开发人员体验和性能改进。此外,还提供了一组流行的扩展库,包括 mod_wsgi (仅支持 httpd24 软件集合)、numpy、scipy 以及 psycopg2 PostgreSQL 数据库连接器。 |
Ruby 2.6.7 | rh-ruby26 | Ruby 2.6 发行版本。此版本提供多个性能改进和新功能,如无终端 范围、Binding#source_location 方法和 $SAFE 进程全局状态。Ruby 2.6.0 维护与 Ruby 2.5 的源级向后兼容性。 |
Ruby 2.7.3 | rh-ruby27 | Ruby 2.7 发布。这个版本提供多个性能改进和新功能,如 LALR (1)解析器生成器的 Compaction GC 或命令行界面, 以及 REPL 的增强。Ruby 2.7 维护与 Ruby 2.6 的源级向后兼容性。 |
Ruby 3.0.1 | rh-ruby30 | Ruby 3.0 发布。此版本提供多个性能改进和新功能,如 Ractor、Fiber Scheduler 和 RBS 语言。Ruby 3.0 维护与 Ruby 2.7 的源级向后兼容性。 |
MariaDB 10.3.27 | rh-mariadb103 | MariaDB 发布,这是 Red Hat Enterprise Linux 用户的替代选择。就所有实际目的而言,MySQL 与 MariaDB 兼容,可以在没有任何数据转换的情况下替换为它。此版本引入了 系统版本的表、不可见的列、InnoDB 的新即时 ADD COLUMN 操作,以及适用于 MariaDB 和 MySQL 的 JDBC 连接器。 |
MariaDB 10.5.9 | rh-mariadb105 | MariaDB 发布,这是 Red Hat Enterprise Linux 用户的替代选择。就所有实际目的而言,MySQL 与 MariaDB 兼容,可以在没有任何数据转换的情况下替换为它。此版本包括各种新功能,MariaDB Galera 集群 升级至版本 4,以及 PAM 插件版本 2.0。 |
MySQL 8.0.21 | rh-mysql80 | MySQL 服务器的发行版本,它引入了多个新的 安全性和帐户管理功能及 增强功能。 |
PostgreSQL 10.15 | rh-postgresql10 | PostgreSQL 发行版本,它包括显著的性能改进和一些新功能,如使用 publish 和 subscribe 关键字的逻辑复制,或者基于 SCRAM-SHA-256 机制的更强大的密码身份验证。 |
PostgreSQL 12.5 | rh-postgresql12 | PostgreSQL 的一个发行版本,它提供了 pgaudit 扩展,对分区和并行性的各种增强,支持 SQL/JSON 路径语言 和性能改进。 |
PostgreSQL 13.2 | rh-postgresql13 | PostgreSQL 的版本,它启用了 改进的查询计划,并引入了各种新软件包 pg_repack 和 plpython3。 |
Node.js 12.21.0 | rh-nodejs12 | 版本带有 V8 引擎版本 7.6 的 Node.js 发行版本,支持 ES6 模块, 并改进了对原生模块的支持。 |
Node.js 14.16.0 | rh-nodejs14 | 带有 V8 版本 8.3 的 Node.js 发行版本、 一个新的实验性 WebAsembly 系统接口(WASI)和一个新的实验性 Async Local Storage API。 |
nginx 1.16.1 | rh-nginx116 | nginx 版本(一个 Web 和代理服务器),专注于高并发性、性能和低内存用量。此版本引入了多个与 SSL 相关的更新、几个新指令和参数 以及各种改进。 |
nginx 1.18.0 | rh-nginx118 | nginx 版本(一个 Web 和代理服务器),专注于高并发性、性能和低内存用量。这个版本引入了 对 HTTP 请求率和连接限制的改进,以及新的 auth_delay 指令。另外,在多个指令中添加了对新变量的支持。 |
Apache httpd 2.4.34 | httpd24 | 发布 Apache HTTP 服务器(httpd),包括 高性能事件处理模型,增强的 SSL 模块和 FastCGI 支持。也会包含 mod_auth_kerb、mod_auth_mellon 和 ModSecurity 模块。 |
Varnish Cache 6.0.6 | rh-varnish6 | Varnish 缓存发行版本,它是一个高性能 HTTP 反向代理。此版本包括对 Unix 域套接字的支持(包括客户端和后端服务器)、新级别的 VCL 语言(vcl 4.1 ),以及改进的 HTTP/2 支持。 |
Maven 3.6.1 | rh-maven36 | Maven 发布,这是一个软件项目管理和理解工具。此发行版本提供各种改进和程序错误修复。 |
Git 2.27.0 | rh-git227 | Git 的一个发行版本,即具有分散架构的分布式修订控制系统。与使用客户端-服务器模型的集中版本控制系统外,Git 确保 Git 存储库的每个工作副本都与完整的修订历史记录完全相同。这个版本引入了很多改进,例如, git checkout 命令被分成 git switch 和 git restore,并更改了 git rebase 命令的行为。另外,Git 大文件存储(LFS)已更新至版本 2.11.0。 |
Redis 5.0.5 | rh-redis5 | Redis 5.0 发布,它是一个 持久的键值数据库。Redis 现在提供 redis-trib ,它是一个集群管理工具。 |
HAProxy 1.8.24 | rh-haproxy18 | HAProxy 1.8 版本,这是一个可靠、高性能的 网络负载均衡器,适用于 TCP 和基于 HTTP 的应用程序。 |
JDK Mission Control 8.0.0 | rh-jmc | Software Collection 包括 JDK Mission Control (JMC),这是 HotSpot JVM 的强大配置集器。JMC 提供了一组高级工具,用于对 JDK Flight Recorder 收集的大量数据进行高效和详细分析。JMC 需要运行 JDK 版本 11 或更高版本。目标 Java 应用程序必须至少使用 OpenJDK 版本 8 运行,以便 JDK Flight Recorder 功能可以访问 JDK Flight Recorder 功能。rh-jmc Software Collection 需要 rh-maven36 Software Collection。 |
以前发布的 Software Collections 在相同的发行版本频道中仍然可用。所有 Software Collections (包括已停用组件)都列在 表 1.2 “所有可用的 Software Collections” 中。不再支持的软件集合标有星号(
*
)。
有关各个组件支持长度的信息,请参阅 Red Hat Software Collections 产品生命周期 文档。有关之前发布的组件的详细信息,请参阅早期版本的 Red Hat Software Collections 发行注记。
组件 | Software Collection | 可用性 | RHEL7 支持的架构 |
---|---|---|---|
Red Hat Software Collections 3.7 中的组件 | |||
MariaDB 10.5.9 | rh-mariadb105 | RHEL7 | x86_64, s390x, ppc64le |
PostgreSQL 13.2 | rh-postgresql13 | RHEL7 | x86_64, s390x, ppc64le |
Ruby 3.0.1 | rh-ruby30 | RHEL7 | x86_64, s390x, ppc64le |
在 Red Hat Software Collections 3.7 中更新的组件 | |||
---|---|---|---|
Red Hat Developer Toolset 10.1 | devtoolset-10 | RHEL7 | x86_64, s390x, ppc64, ppc64le |
JDK Mission Control 8.0.0 | rh-jmc | RHEL7 | x86_64 |
Ruby 2.7.3 | rh-ruby27 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Ruby 2.6.7 | rh-ruby26 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
在 Red Hat Software Collections 3.6 中最后更新的组件 | |||
---|---|---|---|
Git 2.27.0 | rh-git227 | RHEL7 | x86_64, s390x, ppc64le |
nginx 1.18.0 | rh-nginx118 | RHEL7 | x86_64, s390x, ppc64le |
Node.js 14.16.0 | rh-nodejs14 | RHEL7 | x86_64, s390x, ppc64le |
Apache httpd 2.4.34 | httpd24 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
PHP 7.3.20 | rh-php73 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
HAProxy 1.8.24 | rh-haproxy18 | RHEL7 | x86_64 |
Perl 5.30.1 | rh-perl530 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Ruby 2.5.9 | rh-ruby25* | RHEL7 | x86_64, s390x, aarch64, ppc64le |
在 Red Hat Software Collections 3.5 中更新的组件。 | |||
---|---|---|---|
Red Hat Developer Toolset 9.1 | devtoolset-9 | RHEL7 | x86_64, s390x, aarch64, ppc64, ppc64le |
Python 3.8.6 | rh-python38 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Varnish Cache 6.0.6 | rh-varnish6 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Apache httpd 2.4.34 (RHEL 的最后更新6) | httpd24 (RHEL6)* | RHEL6 | x86_64 |
Red Hat Software Collections 3.4 中的组件最后更新 | |||
---|---|---|---|
Node.js 12.21.0 | rh-nodejs12 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
nginx 1.16.1 | rh-nginx116 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
PostgreSQL 12.5 | rh-postgresql12 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Maven 3.6.1 | rh-maven36 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
在 Red Hat Software Collections 3.3 中更新的组件 | |||
---|---|---|---|
Red Hat Developer Toolset 8.1 | devtoolset-8* | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64, ppc64le |
MariaDB 10.3.27 | rh-mariadb103 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Redis 5.0.5 | rh-redis5 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
在 Red Hat Software Collections 3.2 中最后更新的组件 | |||
---|---|---|---|
PHP 7.2.24 | rh-php72* | RHEL7 | x86_64, s390x, aarch64, ppc64le |
MySQL 8.0.21 | rh-mysql80 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Node.js 10.21.0 | rh-nodejs10* | RHEL7 | x86_64, s390x, aarch64, ppc64le |
nginx 1.14.1 | rh-nginx114* | RHEL7 | x86_64, s390x, aarch64, ppc64le |
git 2.18.4 | rh-git218* | RHEL7 | x86_64, s390x, aarch64, ppc64le |
在 Red Hat Software Collections 3.1 中更新的组件 | |||
---|---|---|---|
Red Hat Developer Toolset 7.1 | devtoolset-7* | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64, ppc64le |
Perl 5.26.3 | rh-perl526* | RHEL7 | x86_64, s390x, aarch64, ppc64le |
MongoDB 3.6.3 | rh-mongodb36* | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Varnish Cache 5.2.1 | rh-varnish5* | RHEL7 | x86_64, s390x, aarch64, ppc64le |
PostgreSQL 10.15 | rh-postgresql10 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
PHP 7.0.27 | rh-php70* | RHEL6, RHEL7 | x86_64 |
MySQL 5.7.24 | rh-mysql57* | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64le |
在 Red Hat Software Collections 3.0 中更新的组件 | |||
---|---|---|---|
PHP 7.1.8 | rh-php71* | RHEL7 | x86_64, s390x, aarch64, ppc64le |
nginx 1.12.1 | rh-nginx112* | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Python 3.6.12 | rh-python36* | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64le |
Maven 3.5.0 | rh-maven35* | RHEL7 | x86_64, s390x, aarch64, ppc64le |
MariaDB 10.2.22 | rh-mariadb102* | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64le |
PostgreSQL 9.6.19 | rh-postgresql96* | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64le |
MongoDB 3.4.9 | rh-mongodb34* | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64le |
Node.js 8.11.4 | rh-nodejs8* | RHEL7 | x86_64, s390x, aarch64, ppc64le |
在 Red Hat Software Collections 2.4 中更新的组件 | |||
---|---|---|---|
Red Hat Developer Toolset 6.1 | devtoolset-6* | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64, ppc64le |
scala 2.10.6 | rh-scala210* | RHEL7 | x86_64 |
nginx 1.10.2 | rh-nginx110* | RHEL6, RHEL7 | x86_64 |
Node.js 6.11.3 | rh-nodejs6* | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64le |
Ruby 2.4.6 | rh-ruby24* | RHEL6, RHEL7 | x86_64 |
Ruby on Rails 5.0.1 | rh-ror50* | RHEL6, RHEL7 | x86_64 |
Eclipse 4.6.3 | rh-eclipse46* | RHEL7 | x86_64 |
Python 2.7.18 | python27 | RHEL6*, RHEL7 | x86_64, s390x, aarch64, ppc64le |
Thermostat 1.6.6 | rh-thermostat16* | RHEL6, RHEL7 | x86_64 |
Maven 3.3.9 | rh-maven33* | RHEL6, RHEL7 | x86_64 |
Common Java Packages | rh-java-common* | RHEL6, RHEL7 | x86_64 |
在 Red Hat Software Collections 2.3 中更新的组件 | |||
---|---|---|---|
Git 2.9.3 | rh-git29* | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64le |
Redis 3.2.4 | rh-redis32* | RHEL6, RHEL7 | x86_64 |
Perl 5.24.0 | rh-perl524* | RHEL6, RHEL7 | x86_64 |
Python 3.5.1 | rh-python35* | RHEL6, RHEL7 | x86_64 |
MongoDB 3.2.10 | rh-mongodb32* | RHEL6, RHEL7 | x86_64 |
Ruby 2.3.8 | rh-ruby23* | RHEL6, RHEL7 | x86_64 |
PHP 5.6.25 | rh-php56* | RHEL6, RHEL7 | x86_64 |
在 Red Hat Software Collections 2.2 中更新的组件 | |||
---|---|---|---|
Red Hat Developer Toolset 4.1 | devtoolset-4* | RHEL6, RHEL7 | x86_64 |
MariaDB 10.1.29 | rh-mariadb101* | RHEL6, RHEL7 | x86_64 |
MongoDB 3.0.11 升级集合 | rh-mongodb30upg* | RHEL6, RHEL7 | x86_64 |
Node.js 4.6.2 | rh-nodejs4* | RHEL6, RHEL7 | x86_64 |
PostgreSQL 9.5.14 | rh-postgresql95* | RHEL6, RHEL7 | x86_64 |
Ruby on Rails 4.2.6 | rh-ror42* | RHEL6, RHEL7 | x86_64 |
MongoDB 2.6.9 | rh-mongodb26* | RHEL6, RHEL7 | x86_64 |
Thermostat 1.4.4 | thermostat1* | RHEL6, RHEL7 | x86_64 |
在 Red Hat Software Collections 2.1 中更新的组件 | |||
---|---|---|---|
Varnish Cache 4.0.3 | rh-varnish4* | RHEL6, RHEL7 | x86_64 |
nginx 1.8.1 | rh-nginx18* | RHEL6, RHEL7 | x86_64 |
Node.js 0.10 | nodejs010* | RHEL6, RHEL7 | x86_64 |
Maven 3.0.5 | maven30* | RHEL6, RHEL7 | x86_64 |
V8 3.14.5.10 | v8314* | RHEL6, RHEL7 | x86_64 |
在 Red Hat Software Collections 2.0 中更新的组件 | |||
---|---|---|---|
Red Hat Developer Toolset 3.1 | devtoolset-3* | RHEL6, RHEL7 | x86_64 |
Perl 5.20.1 | rh-perl520* | RHEL6, RHEL7 | x86_64 |
Python 3.4.2 | rh-python34* | RHEL6, RHEL7 | x86_64 |
Ruby 2.2.9 | rh-ruby22* | RHEL6, RHEL7 | x86_64 |
Ruby on Rails 4.1.5 | rh-ror41* | RHEL6, RHEL7 | x86_64 |
MariaDB 10.0.33 | rh-mariadb100* | RHEL6, RHEL7 | x86_64 |
MySQL 5.6.40 | rh-mysql56* | RHEL6, RHEL7 | x86_64 |
PostgreSQL 9.4.14 | rh-postgresql94* | RHEL6, RHEL7 | x86_64 |
passenger 4.0.50 | rh-passenger40* | RHEL6, RHEL7 | x86_64 |
PHP 5.4.40 | php54* | RHEL6, RHEL7 | x86_64 |
PHP 5.5.21 | php55* | RHEL6, RHEL7 | x86_64 |
nginx 1.6.2 | nginx16* | RHEL6, RHEL7 | x86_64 |
DevAssistant 0.9.3 | devassist09* | RHEL6, RHEL7 | x86_64 |
在 Red Hat Software Collections 1 中更新的组件 | |||
---|---|---|---|
Git 1.9.4 | git19* | RHEL6, RHEL7 | x86_64 |
Perl 5.16.3 | perl516* | RHEL6, RHEL7 | x86_64 |
Python 3.3.2 | python33* | RHEL6, RHEL7 | x86_64 |
Ruby 1.9.3 | ruby193* | RHEL6, RHEL7 | x86_64 |
Ruby 2.0.0 | ruby200* | RHEL6, RHEL7 | x86_64 |
Ruby on Rails 4.0.2 | ror40* | RHEL6, RHEL7 | x86_64 |
MariaDB 5.5.53 | mariadb55* | RHEL6, RHEL7 | x86_64 |
MongoDB 2.4.9 | mongodb24* | RHEL6, RHEL7 | x86_64 |
MySQL 5.5.52 | mysql55* | RHEL6, RHEL7 | x86_64 |
PostgreSQL 9.2.18 | postgresql92* | RHEL6, RHEL7 | x86_64 |
图例:
- RHEL6 - Red Hat Enterprise Linux 6
- RHEL7 - Red Hat Enterprise Linux 7
- x86_64 - AMD 和 Intel 64 位构架
- s390x - 64 位 IBM Z 架构
- aarch64 - 64 位 ARM 架构
- ppc64 - IBM POWER, big endian
- ppc64le - IBM POWER, little endian
- * - 停用的组件 ; 此 Software Collection 不再被支持
以上表格列出了通过异步更新提供的最新版本。
请注意,Red Hat Software Collections 2.0 及之后的版本中发布的 Software Collections 在其名称中包含
rh-
前缀。
Eclipse 作为 Red Hat Developer Tools 产品的一部分提供。
1.3. Red Hat Software Collections 3.7 的更改
1.3.1. 概述
构架
Red Hat Software Collections 产品包含在以下构架中运行的 Red Hat Enterprise Linux 7 的软件包:
- AMD 和 Intel 64 位构架
- 64-bit IBM Z
- IBM POWER, little endian
有关组件及其可用性的完整列表,请参阅 表 1.2 “所有可用的 Software Collections”。
新 Software Collections
Red Hat Software Collections 3.7 添加以下新 Software Collections:
- rh-mariadb105 — see 第 1.3.3 节 “MariaDB 中的更改”
- rh-postgresql13 — see 第 1.3.4 节 “PostgreSQL 中的更改”
- rh-ruby30 — see 第 1.3.5 节 “Ruby 中的更改”
所有新的 Software Collections 仅适用于 Red Hat Enterprise Linux 7。
更新了 Software Collections
在 Red Hat Software Collections 3.7 中更新了以下组件:
- devtoolset-10 — see 第 1.3.2 节 “Red Hat Developer Toolset 中的更改”
- rh-jmc — see 第 1.3.6 节 “JDK Mission Control 的变化”
- rh-ruby27 — see 第 1.3.5 节 “Ruby 中的更改”
- rh-ruby26 — see 第 1.3.5 节 “Ruby 中的更改”
此外,PostgreSQL 12 现在提供了一个新的软件包 rh-postgresql12-pg_repack。
Red Hat Software Collections 容器镜像
以下容器镜像在 Red Hat Software Collections 3.7 中是新的:
- rhscl/mariadb-105-rhel7
- rhscl/postgresql-13-rhel7
- rhscl/ruby-30-rhel7
在 Red Hat Software Collections 3.7 中更新了以下容器镜像
- rhscl/devtoolset-10-toolchain-rhel7
- rhscl/devtoolset-10-perftools-rhel7
- rhscl/ruby-27-rhel7
- rhscl/ruby-26-rhel7
有关 Red Hat Software Collections 容器镜像的更多信息,请参阅 第 3.4 节 “Red Hat Software Collections 容器镜像”。
1.3.2. Red Hat Developer Toolset 中的更改
与之前的版本相比,在 Red Hat Developer Toolset 10.1 中已升级了以下组件:
- SystemTap 到版本 4.4
- Dyninst 到版本 10.2.1
- elfutils 到版本 0.182
另外,以下组件提供了程序错误修复更新:
- GCC
- GDB
- binutils
- annobin
有关 10.1 中更改的详细信息,请参阅 Red Hat Developer Toolset 用户指南。
1.3.3. MariaDB 中的更改
新的 rh-mariadb105 Software Collection 提供 MariaDB 10.5.9。
与之前发布的 10.3 版本相比的显著改进包括:
- MariaDB 现在默认使用
unix_socket
身份验证插件。该插件允许用户在通过本地 Unix 套接字文件连接到 MariaDB 时使用操作系统凭证。 - MariaDB 支持新的 FLUSH SSL 命令重新加载 SSL 证书,而不重新启动服务器。
- MariaDB 添加了以
mariadb-*
命名的二进制代码,mysql*
符号链接指向mariadb-*
的二进制代码。例如,mysqladmin
、mysqlaccess
和mysqlshow
分别指向mariadb-admin
、mariadb-access
和mariadb-show
二进制代码。 - MariaDB 支持一个新的
INET6
数据类型来存储 IPv6 地址。 - MariaDB 现在使用 Perl 兼容正则表达式(PCRE)库版本 2。
SUPER
特权已被分成几个特权,以更好地与每个用户角色保持一致。因此,某些语句已更改了所需的权限。- MariaDB 添加了一个新的全局变量
binlog_row_metadata
,以及系统变量和状态变量来控制元数据记录的数量。 eq_range_index_dive_limit
变量的默认值已从0
改为200
。- 添加了一个新的 SHUTDOWN WAIT FOR ALL SLAVES 服务器命令和一个新的
mysqladmin shutdown --wait-for-all-slaves
选项,以指示服务器仅在最后一个 binlog 事件发送到所有连接的副本后关闭。 - 在并行复制中,
slave_parallel_mode
变量现在默认为optimistic
。
InnoDB 存储引擎包括以下更改:
- InnoDB 现在支持即时 DROP COLUMN 操作,并允许用户更改列顺序。
- 以下变量的默认值已更改:
innodb_adaptive_hash_index
改为OFF
,innodb_checksum_algorithm
改为full_crc32
。 - 已删除或弃用了多个 InnoDB 变量。
MariaDB Galera 集群 已升级到版本 4,有以下显著变化:
- Galera 添加了一个新的流复制特性,其支持复制无限大小的事务。在执行流复制的过程中,集群以小片段复制事务。
- Galera 现在完全支持全球交易 ID(GTID)。
/etc/my.cnf.d/galera.cnf
文件中的wsrep_on
选项的默认值已从1
改为0,
以防止最终用户在不配置所需的附加选项的情况下启动wsrep
复制。
对 MariaDB 10.5 中的 PAM 插件的更改包括:
- MariaDB 10.5 添加了可插拔验证模块(PAM)插件的新版本。PAM 插件版本 2.0 使用单独的
setuid root
助手二进制文件来执行 PAM 身份验证,这使得 MariaDB 可以使用其他 PAM 模块。 - 在 MariaDB 10.5 中,可插拔验证模块(PAM)插件及其相关文件已移至一个新的子软件包 mariadb-pam。此子软件包同时包含 PAM 插件版本: 版本 2.0 是默认值,版本 1.0 作为
auth_pam_v1
共享对象库提供。 - 默认情况下,RH-mariadb105-mariadb-pam 软件包不与 MariaDB 服务器一起安装。要使 PAM 身份验证插件在 MariaDB 10.5 中提供,请手动安装 rh-mariadb105-mariadb-pam 软件包。
rh-mariadb105 Software Collection 包括 rh-mariadb105-syspaths 软件包,它将安装为二进制文件、脚本、手册页和其他提供系统范围打包程序的软件包。安装 rh-mariadb105*-syspaths 软件包后,用户不需要使用 scl enable 命令对 rh-mariadb105* 软件包提供的二进制文件和脚本正常工作。请注意,*-syspaths 软件包与基本 Red Hat Enterprise Linux 系统中的对应软件包冲突。要了解更多有关 syspath 的信息,请参阅 Red Hat Software Collections Packaging Guide。
有关兼容性备注和迁移说明,请参阅 第 5.1 节 “迁移到 MariaDB 10.5”。
有关 MariaDB 10.5 的详细更改,请查看 上游文档。
1.3.4. PostgreSQL 中的更改
新的 rh-postgresql13 Software Collection 包括 PostgreSQL 13.2。与版本 12 相比,这个版本引入了各种改进,例如:
- 通过删除 B-tree 索引条目的重复数据已改进性能
- 提高了使用聚合或分区表的查询的性能
- 改进了使用扩展统计时的查询规划
- 索引的并行配置
- 增量排序
有关详细更改,请参阅 PostgreSQL 13 的上游发行注记。
rh-postgresql13 Software Collection 提供了以下新的子软件包:
- pg_repack 子软件包现在也可用于 rh-postgresql12 Software Collection。
- plpython3 软件包提供了基于 Python 3 的
PL/Python
流程语言扩展。PL/Python
可让您使用 Python 编程语言编写 PostgreSQL 功能。详情请查看 上游文档。以前发布的 PostgreSQL Software Collections 只包含基于 Python 2 的 plpython 软件包。Red Hat Enterprise Linux 8 只提供 plpython3。rh-postgresql13 Software Collection 包括 plpython 和 plpython3,因此您可以在升级到 Red Hat Enterprise Linux 8 前迁移到 plpython3。
此外,rh-postgresql13 Software Collection 包含 rh-postgresql13-syspaths 软件包,它安装为二进制文件、脚本、man page 等提供系统范围打包程序的软件包。安装 rh-postgresql13*-syspaths 软件包后,用户不需要使用 scl enable 命令对 rh-postgresql13* 软件包提供的二进制文件和脚本正常工作。请注意,*-syspaths 软件包与基本 Red Hat Enterprise Linux 系统中的对应软件包冲突。要了解更多有关 syspath 的信息,请参阅 Red Hat Software Collections Packaging Guide。
请注意,自 PostgreSQL 11 起,对 Just-In-Time (JIT)编译的支持没有由 rh-postgresql13 Software Collection 提供。
有关迁移的详情,请参考 第 5.3 节 “迁移到 PostgreSQL 13”。
1.3.5. Ruby 中的更改
新的 rh-ruby30 Software Collection 提供 Ruby 3.0.1,它引入了很多性能改进、错误修复和新功能。
主要改进包括:
- 并发和并行功能:
- Ractor ,一个提供了线程安全并行执行的 Actor-model 抽象,作为实验性功能提供。
- Fiber Scheduler 已作为实验性功能引入。Fiber Scheduler 截获阻止操作,这样无需更改现有代码,便可实现轻量级并发。
- 静态分析功能:
- 引入了 RBS 语言,它描述了 Ruby 程序的结构。添加了
rbs
gem 来解析用 RBS 编写的类型定义。 - 引进了 TypeProf 工具,它是一种 Ruby 代码的类型分析工具。
- 与
case
/in
表达式的模式匹配不再是实验性。 - 单行模式匹配已被重新设计为实验性功能。
- find pattern 已被添加为实验功能。
改进的性能:
- 现在,将长代码粘贴到 交互式 Ruby Shell(IRB) 的速度非常快。
- measure 命令已添加到 IRB 中,以进行时间测量。
其他显著变化包括:
- 关键字参数已与其他参数分开,请参阅上游文档 以了解详细信息。
- 用户安装的 gems 的默认目录现在是
$HOME/.local/share/gem/
,除非$HOME/.gem/
目录已经存在。
rh-ruby27 和 rh-ruby26 Software Collections 已使用安全和程序错误修复进行了更新。
1.3.6. JDK Mission Control 的变化
rh-jmc Software Collection 提供的 JDK Mission Control (JMC)已从 7.1.1 升级到 8.0.0。主要改进包括:
Treemap
viewer 已添加到JOverflow
插件中,用于按类可视化内存用量。- 通过更多的过滤和缩放选项,
线程
图已进行了增强。 - JDK Mission Control 现在支持打开使用 LZ4 算法压缩的 JDK Flight Recorder 记录。
- 在
Memory
和TLAB
视图中添加了新的列,以帮助您确定分配压力的区域。 - 添加了
图形视图
,以改进堆栈追踪的视觉化。 Percentage
列已添加到直方表格中。
如需更多信息,请参阅 上游发行注记。
1.4. 兼容性信息
Red Hat Software Collections 3.7 可用于 AMD 和 Intel 64 位架构、64 位 IBM Z 和 IBM POWER, little endian 的所有支持的 Red Hat Enterprise Linux 7 版本。
某些之前发布的组件也适用于 64 位 ARM 架构。
有关可用组件的完整列表,请参阅 表 1.2 “所有可用的 Software Collections”。
1.5. 已知问题
rh-mariadb105
component, BZ#1942526- 当
OQGraph
存储引擎插件加载到 MariaDB 10.5 服务器 时,MariaDB 不会对删除不存在的表发出警告。特别是,当用户尝试使用DROP TABLE或DROP TABLE IF EXISTSSQL命令删除不存在的表时,MariaDB不会返回错误信息,也不会记录警告。请注意,OQGraph
插件由 mariadb-oqgraph-engine 软件包提供,该软件包默认情况下不会安装。 rh-mariadb
组件- rh-mariadb103 Software Collection 提供可插拔验证模块(PAM)插件版本 1.0。rh-mariadb105 Software Collection 提供插件版本 1.0 和 2.0,版本 2.0 是默认值。MariaDB 中的 PAM 插件版本 1.0 无法正常工作。要临时解决这个问题,请使用 rh-mariadb105 提供的 PAM 插件版本 2.0。
rh-ruby27
component, BZ#1836201- 当自定义脚本需要 Psych YAML 解析器,之后使用
Gem.load_yaml
方法时,运行脚本会失败并显示以下错误消息:superclass mismatch for class Mark (TypeError)
要临时解决这个问题,将gem 'psych'
行添加到需要"psych"
行上面的脚本中:... gem 'psych' ... require 'psych' Gem.load_yaml
- 多个组件, BZ#1716378
- Software Collections debuginfo 软件包提供的某些文件可能与来自基本 Red Hat Enterprise Linux 系统或其他版本的 Red Hat Software Collections 组件的对应 debuginfo 软件包文件冲突。例如,python27-python-debuginfo 软件包文件可能与核心系统上安装的 python-debuginfo 软件包中的相应文件冲突。同样,httpd24-mod_auth_mellon-debuginfo 软件包中的文件可能与基本系统 mod_auth_mellon-debuginfo 软件包提供的类似文件冲突。要临时解决这个问题,请在安装 Software Collection debuginfo 软件包前卸载基本系统 debuginfo 软件包。
rh-mysql80
component, BZ#1646363mysql-connector-java
数据库连接器无法用于 MySQL 8.0 服务器。要临时解决这个问题,请使用 rh-mariadb103 Software Collection 中的mariadb-java-client
数据库连接器。rh-mysql80
component, BZ#1646158- MySQL 8.0 中默认字符集已改为
utf8mb4
,但php-mysqlnd
数据库连接器不支持此字符集。因此,php-mysqlnd
无法在默认配置中连接。要临时解决这个问题,请指定已知字符集作为 MySQL 服务器配置的参数。例如,将/etc/opt/rh/rh-mysql80/my.cnf.d/mysql-server.cnf
文件修改为:[mysqld] character-set-server=utf8
httpd24
component, BZ#1429006- 从 httpd 2.4.27 开始,默认的预处理模块(MPM)不再支持
mod_http2
模块。要启用 HTTP/2 支持,请编辑位于
/opt/rh/httpd24/root/etc/httpd/conf.modules.d/00-mpm.conf
的配置文件,并切换到事件或
worker
MPM。请注意,HTTP/2 server-push 功能不适用于 64 位 ARM 架构、64 位 IBM Z 和 IBM POWER little endian。 -
httpd24
component, BZ#1224763 - 当在 FastCGI Process Manager (PHP-FPM)中使用
mod_proxy_fcgi
模块时,httpd 默认使用端口8000
作为 FastCGI 协议,而不是正确的端口9000
。要临时解决这个问题,请在配置中明确指定正确的端口。 httpd24
组件, BZ#1382706- 启用 SELinux 后,
LD_LIBRARY_PATH
环境变量不会传递给 httpd 调用的 CGI 脚本。因此,在某些情况下,无法从 httpd 运行的 CGI 脚本中的/opt/rh/httpd24/service-environment
文件中调用启用的 Software Collections 的可执行文件。要临时解决这个问题,请在 CGI 脚本中根据需要设置LD_LIBRARY_PATH
。 -
httpd24
组件 - 不支持根据 httpd24 Software Collection 中的 Apache Portable Runtime (APR)和 APR-util 库编译外部应用程序。httpd24 中没有设置 LD_LIBRARY_PATH 环境变量,因为此 Software Collection 中的任何应用程序都不需要该变量。
- 在
- 在 Red Hat Enterprise Linux 7.5 及更早版本中,由于 scl-utils 软件包中的特定于架构的宏错误,<
collection>/root/usr/lib64/
目录在 64 位 ARM 架构以及 IBM POWER, little endian 上没有正确软件包所有权。因此,当卸载 Software Collection 时,这个目录不会被删除。要临时解决这个问题,在删除 Software Collection 时手动删除<collection>/root/usr/lib64/
。 Maven
组件- 当用户同时安装了 maven-local 软件包的 Red Hat Enterprise Linux 系统版本以及 rh-maven*-maven-local 软件包( XMvn )时,用于构建 Java RPM 软件包的工具(从 Maven Software Collection 运行)会尝试从基础系统中读取配置文件,并失败。要临时解决这个问题,请从基本 Red Hat Enterprise Linux 系统卸载 maven-local 软件包。
-
Perl
组件 - 无法安装多个
mod_perl.so
库。因此,无法使用多个 Perl Software Collection 中的mod_perl
模块。 -
httpd
,mariadb
,mysql
,nodejs
,perl
,php
,python
, 和ruby
组件, BZ#1072319 - 在卸载 httpd24,rh-mariadb*, rh-mysql*, rh-nodejs*, rh-perl*, rh-php*, python27,rh-python* 或 rh-ruby* 软件包时,卸载的顺序可能是由于依赖软件包的所有权相关。因此,一些目录和文件可能无法被正确删除,并可能在系统中保留。
-
MariaDB
,mysql
组件, BZ#1194611 - 自 MariaDB 10 和 MySQL 5.6 起,rh-mariadb*-mariadb-server 和 rh-mysql*-mysql-server 软件包不再提供
test
数据库。虽然在初始化过程中不会创建此数据库,但授权表会预先填充与默认创建测试时相同的值。因此,在稍后创建
test
或testzFCP
数据库时,这些数据库的访问权限比新数据库的默认权限要小。另外,在运行基准时,run-all-tests
脚本不再可用于示例参数。您需要在运行测试前创建 test 数据库,并在--database
参数中指定数据库名称。如果未指定该参数,则默认执行测试,但需要确保test
-
MariaDB
,mysql
,postgresql
组件 - Red Hat Software Collections 包括 MySQL 8.0、MariaDB 10.3、MariaDB 10.5、PostgreSQL 10、PostgreSQL 12 和 PostgreSQL 13 数据库服务器。Red Hat Enterprise Linux 7 的核心提供 MariaDB 和 PostgreSQL 数据库的早期版本(客户端库和守护进程)。客户端库也用于动态语言、库等数据库连接器。PostgreSQL 组件中打包的 Red Hat Software Collections 数据库软件包的客户端库不应被使用,因为它仅用于服务器实用程序和守护进程。用户需要使用随核心系统提供的系统库和数据库连接器。客户端库和守护进程之间使用的协议在数据库版本之间保持稳定,例如,使用带有 PostgreSQL 12 或 13 守护进程的 PostgreSQL 10 客户端库可以正常工作。
-
MariaDB
,mysql
组件 - 在创建日志文件时,MariaDB 和 MySQL 不使用
/opt/provider/collection/root
前缀。请注意,日志文件保存在/var/opt/provider/collection/log/
目录中,而不是在/opt/provider/collection/root/var/log/
中。
1.6. 其他备注
-
rh-ruby*
,rh-python*
,rh-php*
组件 - 在只读 NFS 中使用 Software Collections 有一些限制。
- 当 rh-ruby* Software Collection 位于只读 NFS 中时,无法安装 Ruby gems。因此,当用户尝试使用 gem install ab 命令安装 ab gem 时,会显示出错信息,例如:
ERROR: While executing gem ... (Errno::EROFS) Read-only file system @ dir_s_mkdir - /opt/rh/rh-ruby22/root/usr/local/share/gems
当用户试图通过运行捆绑包更新或 捆绑包 install 命令从外部源更新或安装 gems 时,会出现相同的问题。 - 当使用 Python Package Index (PyPI)在只读 NFS 中安装 Python 软件包时,运行 pip 命令会失败并显示类似如下的错误消息:
Read-only file system: '/opt/rh/rh-python34/root/usr/lib/python3.4/site-packages/ipython-3.1.0.dist-info'
- 使用 pear 命令在只读 NFS 上从 PHP 扩展和应用程序存储库(PEAR)安装软件包会失败,并显示出错信息:
Cannot install, php_dir for channel "pear.php.net" is not writeable by the current user
这是预期的行为。 -
httpd
组件 - Apache 的语言模块仅支持 Apache httpd 的红帽软件集合版本,而不支持使用 Red Hat Enterprise Linux 系统版本的 httpd。例如,rh-python35 Collection 中的
mod_wsgi
模块只能用于 httpd24 Collection。 - 所有组件
- 从 Red Hat Software Collections 2.0 开始,配置文件、变量数据和独立集合的运行时数据存储在与之前 Red Hat Software Collections 版本不同的目录中。
-
coreutils
,util-linux
,屏幕
组件 - 有些实用程序(如 su、login 或 screen )不会在所有情况下都导出环境设置,这可能会导致意外的结果。因此,建议您使用 sudo 而不是 su,并在
/etc/sudoers
文件中设置env_keep
环境变量。或者,您可以按相反的顺序运行命令,例如:su -l postgres -c "scl enable rh-postgresql94 psql"
而不是scl enable rh-postgresql94 bash su -l postgres -c psql
当使用 屏幕 或 登录 等工具时,您可以使用以下命令保留环境设置:source /opt/rh/<collection_name>/enable
-
Python
组件 - 当用户尝试从 python27 和 rh-python* Software Collections 安装多个 scldevel 软件包时,会返回一个事务检查错误消息。这是一个预期的行为,因为用户只能安装由软件包提供的一组宏文件(
%scl_python
、%scl_prefix_python
)。 -
PHP
组件 - 当用户尝试从 rh-php* Software Collections 中安装多个 scldevel 软件包时,会返回一个事务检查错误消息。这是一个预期的行为,因为用户只能安装由软件包提供的一组宏文件(
%scl_php
、%scl_prefix_php
)。 -
Ruby
组件 - 当用户尝试从 rh-ruby* Software Collections 中安装多个 scldevel 软件包时,会返回一个事务检查错误消息。这是一个预期的行为,因为用户只能安装由软件包提供的一组宏文件(
%scl_ruby
、%scl_prefix_ruby
)。 -
Perl
组件 - 当用户尝试从 rh-perl* Software Collections 中安装多个 scldevel 软件包时,会返回一个事务检查错误消息。这是一个预期的行为,因为用户只能安装由软件包提供的一组宏文件(
%scl_perl
、%scl_prefix_perl
)。 -
Nginx
组件 - 当用户尝试从 rh-nginx* Software Collections 安装多个 scldevel 软件包时,会返回一个事务检查错误消息。这是一个预期的行为,因为用户只能安装由软件包提供的一组宏文件(
%scl_nginx
、%scl_prefix_nginx
)。 -
Python
组件 - 为缓解 Python
urllib
库中的 Web Cache Poisoning CVE-2021-23336,urllib.parse.parse_qsl
和urllib.parse.parse_qs
功能的默认分隔符将从&
和分号(;
)改为只使用 &。默认分隔符的更改可能会向后不兼容,因此红帽提供了一种方法来配置 Python 软件包中修改了默认分隔符的行为。此外,如果受影响的urllib
解析功能检测到客户的应用受到更改的影响,则会发出警告。如需更多信息,请参阅 Python urllib 库中的 Web Cache Poisoning 的缓解方案(CVE-2021-23 checkbox 知识库文章。 -
Python
组件 - RHSA-2021:3254 公告的发行版本在 rh-python38 Software Collection 中包括以下更改:为缓解 CVE-2021-29921,Python
ipaddress
模块现在拒绝带有AddressValueError: Leading zeros is not permitted
错误的前导零的 IPv4 地址。依赖之前行为的客户可以预处理其 IPv4 地址输入来剥离前导零。例如:>>> def reformat_ip(address): return '.'.join(part.lstrip('0') if part != '0' else part for part in address.split('.')) >>> reformat_ip('0127.0.0.1') '127.0.0.1'
要使用显式循环剥离前导零,请使用:def reformat_ip(address): parts = [] for part in address.split('.'): if part != "0": part = part.lstrip('0') parts.append(part) return '.'.join(parts)
1.7. 弃用的功能
httpd24
component, BZ#1434053- 在以前的版本中,在需要基于名称的 SSL 虚拟主机选择的 SSL/TLS 配置中,
mod_ssl
模块会拒绝带有400 Bad Request
错误的请求,如果Host:
标头中提供的主机名与 Server Name Indication (SNI)标头中提供的主机名不匹配。如果在所选虚拟主机之间配置的 SSL/TLS 安全参数与上游mod_ssl
的行为相同,则此类请求不再被拒绝。