第 1 章 Red Hat Software Collections 3.4

本章作为 Red Hat Software Collections 3.4 内容集的概述。它提供组件及其描述列表,以及此版本的更改,记录了相关兼容性信息,以及列出已知问题。

1.1. 关于 Red Hat Software Collections

对于某些应用程序,通常需要较新版本的部分软件组件,以便使用其最新的新功能。Red Hat Software Collections 是一个红帽产品,它提供一组动态编程语言、数据库服务器和各种相关软件包,它们比基本 Red Hat Enterprise Linux 系统中包含的对等版本更最新的,或者首次对此系统可用。
Red Hat Software Collections 3.4 适用于 Red Hat Enterprise Linux 7;为 Red Hat Enterprise Linux 6 选择了之前发布的组件。有关作为 Red Hat Software Collections 一部分分发的组件的完整列表及其功能的简要概述,请参阅 第 1.2 节 “主要功能”
Red Hat Software Collections 不会替换 Red Hat Enterprise Linux 6 或 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 3.4 组件” 列出 Red Hat Software Collections 3.4 发行版本时支持的 组件。

表 1.1. Red Hat Software Collections 3.4 组件

组件 Software Collection 描述
Red Hat Developer Toolset 9.0 devtoolset-9 Red Hat Developer Toolset 是为在 Red Hat Enterprise Linux 平台上工作的开发人员设计的。它提供了 GNU Compiler CollectionGNU Debugger 和其他开发、调试和性能监控工具的当前版本。有关组件的完整列表,请参阅 Red Hat Developer Toolset 用户指南中的 Red Hat Developer Toolset 组件 表。
Perl 5.26.3[a] rh-perl526 Perl 的一个高级编程语言,通常用于系统管理实用程序和 Web 编程。rh-perl526 Software Collection 为 MySQL 和 PostgreSQL 提供了额外的实用程序、脚本和数据库连接器。它包括 DateTime Perl 模块和 mod_perl Apache httpd 模块,该模块仅支持 httpd24 软件集合。另外,它还为轻松安装 CPAN 模块提供 cpanm 工具。rh-perl526 打包与上游一致; perl526-perl 软件包也会安装核心模块,而解释器则由 perl-interpreter 软件包提供。
PHP 7.2.24 [a] rh-php72 使用 PEAR 1.10.5、APCu 5.1.12 和增强语言功能的 PHP 7.2 发行版本。
PHP 7.3.11 [a] rh-php73 带有 PEAR 1.10.9、APCu 5.1.17 和 Xdebug 扩展的 PHP 7.3 发行版本。
Python 2.7.16 python27 带有其他工具的 Python 2.7 发行版本。这个 Python 版本提供各种功能和增强功能,包括排序的字典类型、更快的 I/O 操作,并改进了与 Python 3 的正向兼容性。python27 Software Collections 包含 Python 2.7.13 解释器,一组用于编程 Web 应用程序和 mod_wsgi 的扩展库(只在 httpd24 Software Collection 中被支持)、MySQL 和 PostgreSQL 数据库连接器,以及 numpyscipy
Python 3.6.9 rh-python36 rh-python36 Software Collection 包含 Python 3.6.9,它引入了多个新功能,如 f-strings、变量注解语法以及异步生成器和理解。此外,还包括一组适用于编程 Web 应用的扩展库,mod_wsgi (仅支持 httpd24 软件集合)、PostgreSQL 数据库连接器、numpyscipy
Ruby 2.4.6 rh-ruby24 Ruby 2.4 发布。这个版本提供多个性能改进和增强,例如 改进的哈希表、新的调试功能、对 Unicode 案例映射的支持,以及 OpenSSL 1.1.0 的支持。Ruby 2.4.0 维护与 Ruby 2.3、Ruby 2.2、Ruby 2.0.0 和 Ruby 1.9.3 的源级向后兼容性。
Ruby 2.5.5 [a] rh-ruby25 Ruby 2.5 发布。此版本提供多个性能改进和新功能,例如,简化了带有 rescueelseensure 关键字的块的使用,一个新的 yield_self 方法,支持分支覆盖和方法覆盖测量、新的 Hash#sliceHash#transform_keys 方法。Ruby 2.5.0 维护与 Ruby 2.4 的源级向后兼容性。
Ruby 2.6.2 [a] rh-ruby26 Ruby 2.6 发行版本。此版本提供多个性能改进和新功能,如无终端 范围、Binding#source_location 方法和 $SAFE 进程全局状态。Ruby 2.6.0 维护与 Ruby 2.5 的源级向后兼容性。
Ruby on Rails 5.0.1 rh-ror50 Ruby on Rails 5.0 发布,这是使用 Ruby 语言编写的 Web 应用程序框架的最新版本。主要的新功能包括 Action Cable, API mode, exclusive using rails CLI over Rake, 和 ActionRecord 属性。这个 Software Collection 与 rh-ruby24 Collection 一起被支持。
Scala 2.10.6 [a] rh-scala210 Scala 是 Java 平台的通用编程语言版本,集成了面向对象和功能语言的功能。
MariaDB 10.2.22 rh-mariadb102 MariaDB 发布,这是 Red Hat Enterprise Linux 用户的替代选择。就所有实际目的而言,MySQL 与 MariaDB 兼容,可以在没有任何数据转换的情况下替换为它。此版本添加了 MariaDB 备份、Flashback、支持 Recursive Common Table Expressions、窗口功能和 JSON 功能
MariaDB 10.3.13 [a] rh-mariadb103 MariaDB 发布,这是 Red Hat Enterprise Linux 用户的替代选择。就所有实际目的而言,MySQL 与 MariaDB 兼容,可以在没有任何数据转换的情况下替换为它。此版本引入了 系统版本的表、不可见的列、InnoDB 的新即时 ADD COLUMN 操作,以及适用于 MariaDB 和 MySQL 的 JDBC 连接器
MongoDB 3.4.9 rh-mongodb34 MongoDB 的一个发行版本,是一个面向跨平台文档的数据库系统,被分类为一个 NoSQL 数据库。此发行版本引入了对新架构的支持,增加了对十进制128 类型的消息压缩和支持,增强了联合 功能等。
MongoDB 3.6.3 [a] rh-mongodb36 MongoDB 的一个发行版本,是一个面向跨平台文档的数据库系统,被分类为一个 NoSQL 数据库。此发行版本引入了 更改流、可重试的写入和 JSON Schema,以及其他功能。
MySQL 8.0.17 [a] rh-mysql80 MySQL 服务器的发行版本,它引入了多个新的 安全性和帐户管理功能及 增强功能。
PostgreSQL 9.6.10 rh-postgresql96 PostgreSQL 的一个发行版本,它引入了后续扫描、加入和聚合的并行执行,并提供同步复制、全文本搜索、重复数据删除驱动程序、postgres_fdw 以及性能改进的改进。
PostgreSQL 10.6 [a] rh-postgresql10 PostgreSQL 发行版本,它包括显著的性能改进和一些新功能,如使用 publishsubscribe 关键字的逻辑复制,或者基于 SCRAM-SHA-256 机制的更强大的密码身份验证
PostgreSQL 12.1 [a] rh-postgresql12 PostgreSQL 的一个发行版本,它提供了 pgaudit 扩展,对分区和并行性的各种增强,支持 SQL/JSON 路径语言 和性能改进。
Node.js 10.16.3 [a] rh-nodejs10 Node.js 发行版本提供多个 API 增强功能和新功能,包括 V8 引擎版本 6.6、完整的 N-API 支持 以及稳定性改进。
Node.js 12.10.0 [a] rh-nodejs12 一个 Node.js 发行版本,带有 V8 引擎版本 7.6,支持 ES6 模块, 并改进了对原生模块的支持。
nginx 1.10.2 rh-nginx110 nginx 版本(一个 Web 和代理服务器),专注于高并发性、性能和低内存用量。此版本引入了许多新功能,包括 动态模块支持、HTTP/2 支持、Perl 集成以及大量性能改进
nginx 1.14.1 [a] rh-nginx114 nginx 版本(一个 Web 和代理服务器),专注于高并发性、性能和低内存用量。此版本提供了很多功能,如 mirror 模块、HTTP/2 服务器推送、gRPC 代理模块以及大量性能改进
nginx 1.16.1 [a] rh-nginx116 nginx 版本(一个 Web 和代理服务器),专注于高并发性、性能和低内存用量。此版本引入了多个与 SSL 相关的更新、几个新指令和参数 以及各种改进。
Apache httpd 2.4.34 httpd24 发布 Apache HTTP 服务器(httpd),包括 高性能事件处理模型,增强的 SSL 模块和 FastCGI 支持。也会包含 mod_auth_kerbmod_auth_mellonModSecurity 模块。
Varnish Cache 5.2.1 [a] rh-varnish5 Varnish 缓存发行版本,它是一个高性能 HTTP 反向代理。此版本包括 分片 director、实验性 HTTP/2 支持以及通过单独的 VCL 文件和 VCL 标签对 Varnish 配置的改进
Varnish Cache 6.0.2 [a] rh-varnish6 Varnish 缓存发行版本,它是一个高性能 HTTP 反向代理。此版本包括对 Unix 域套接字的支持(包括客户端和后端服务器)、新级别的 VCL 语言(vcl 4.1),以及改进的 HTTP/2 支持
Maven 3.5.0 [a] rh-maven35 Maven 发布,这是一个软件项目管理和理解工具。此发行版本引进了对新架构和许多新功能的支持,包括 颜色的日志记录
Maven 3.6.1 [a] rh-maven36 Maven 发布,这是一个软件项目管理和理解工具。此发行版本提供各种改进和程序错误修复。
Git 2.18.1 [a] rh-git218 Git 的一个发行版本,即具有分散架构的分布式修订控制系统。与使用客户端-服务器模型的集中版本控制系统外,Git 确保 Git 存储库的每个工作副本都与完整的修订历史记录完全相同。此版本包括 大文件存储(LFS)扩展
Redis 5.0.5 [a] rh-redis5 Redis 5.0 发布,它是一个 持久的键值数据库。Redis 现在提供 redis-trib,它是一个集群管理工具
HAProxy 1.8.17 [a] rh-haproxy18 HAProxy 1.8 版本,这是一个可靠、高性能的 网络负载均衡器,适用于 TCP 和基于 HTTP 的应用程序。
常见 Java 软件包 rh-java-common 此 Software Collection 提供了由 其他集合使用的通用 Java 库和工具。rh-java-common Software Collection 需要 rh-maven35rh-scala210 组件,用户不应直接安装它。
JDK Mission Control [a] rh-jmc Software Collection 包括 JDK Mission Control (JMC),这是 HotSpot JVM 的强大配置集器。JMC 提供了一组高级工具,用于对 JDK Flight Recorder 收集的大量数据进行高效和详细分析。JMC 需要运行 JDK 版本 8 或更高版本。目标 Java 应用程序必须至少使用 OpenJDK 版本 11 运行,以便 JMC 可以访问 JDK Flight Recorder 功能。rh-jmc Software Collection 需要 rh-maven35 Software Collection。
[a] 这个 Software Collection 仅适用于 Red Hat Enterprise Linux 7
以前发布的 Software Collections 在相同的发行版本频道中仍然可用。所有 Software Collections (包括已停用组件)都列在 表 1.2 “所有可用的 Software Collections” 中。不再支持的软件集合标有星号(*)。
有关各个组件支持长度的信息,请参阅 Red Hat Software Collections 产品生命周期 文档。有关之前发布的组件的详细信息,请参阅早期版本的 Red Hat Software Collections 发行注记

表 1.2. 所有可用的 Software Collections

组件 Software Collection 可用性 RHEL7 支持的架构
Red Hat Software Collections 3.4 中的组件
Red Hat Developer Toolset 9.0devtoolset-9RHEL7x86_64, s390x, aarch64, ppc64, ppc64le
Node.js 12.10.0rh-nodejs12RHEL7x86_64, s390x, aarch64, ppc64le
PHP 7.3.11rh-php73RHEL7x86_64, s390x, aarch64, ppc64le
nginx 1.16.1rh-nginx116RHEL7x86_64, s390x, aarch64, ppc64le
PostgreSQL 12.1rh-postgresql12RHEL7x86_64, s390x, aarch64, ppc64le
Maven 3.6.1rh-maven36RHEL7x86_64, s390x, aarch64, ppc64le
Red Hat Software Collections 3.4 中的组件更新
Apache httpd 2.4.34httpd24RHEL6, RHEL7x86_64, s390x, aarch64, ppc64le
在 Red Hat Software Collections 3.3 中更新的组件
Red Hat Developer Toolset 8.1devtoolset-8RHEL6, RHEL7x86_64, s390x, aarch64, ppc64, ppc64le
MariaDB 10.3.13rh-mariadb103RHEL7x86_64, s390x, aarch64, ppc64le
Redis 5.0.5rh-redis5RHEL7x86_64, s390x, aarch64, ppc64le
Ruby 2.6.2rh-ruby26RHEL7x86_64, s390x, aarch64, ppc64le
HAProxy 1.8.17rh-haproxy18RHEL7x86_64
Varnish Cache 6.0.2rh-varnish6RHEL7x86_64, s390x, aarch64, ppc64le
在 Red Hat Software Collections 3.2 中最后更新的组件
PHP 7.2.24rh-php72RHEL7x86_64, s390x, aarch64, ppc64le
MySQL 8.0.17rh-mysql80RHEL7x86_64, s390x, aarch64, ppc64le
Node.js 10.16.3rh-nodejs10RHEL7x86_64, s390x, aarch64, ppc64le
nginx 1.14.1rh-nginx114RHEL7x86_64, s390x, aarch64, ppc64le
Git 2.18.1rh-git218RHEL7x86_64, s390x, aarch64, ppc64le
JDK Mission Controlrh-jmcRHEL7x86_64
在 Red Hat Software Collections 3.1 中更新的组件
Red Hat Developer Toolset 7.1devtoolset-7*RHEL6, RHEL7x86_64, s390x, aarch64, ppc64, ppc64le
Perl 5.26.3rh-perl526RHEL7x86_64, s390x, aarch64, ppc64le
Ruby 2.5.5rh-ruby25RHEL7x86_64, s390x, aarch64, ppc64le
MongoDB 3.6.3rh-mongodb36RHEL7x86_64, s390x, aarch64, ppc64le
Varnish Cache 5.2.1rh-varnish5RHEL7x86_64, s390x, aarch64, ppc64le
PostgreSQL 10.6rh-postgresql10RHEL7x86_64, s390x, aarch64, ppc64le
PHP 7.0.27rh-php70*RHEL6, RHEL7x86_64
MySQL 5.7.24rh-mysql57*RHEL6, RHEL7x86_64, s390x, aarch64, ppc64le
在 Red Hat Software Collections 3.0 中更新的组件
PHP 7.1.8rh-php71*RHEL7x86_64, s390x, aarch64, ppc64le
nginx 1.12.1rh-nginx112*RHEL7x86_64, s390x, aarch64, ppc64le
Python 3.6.9rh-python36RHEL6, RHEL7x86_64, s390x, aarch64, ppc64le
Maven 3.5.0rh-maven35RHEL7x86_64, s390x, aarch64, ppc64le
MariaDB 10.2.22rh-mariadb102RHEL6, RHEL7x86_64, s390x, aarch64, ppc64le
PostgreSQL 9.6.10rh-postgresql96RHEL6, RHEL7x86_64, s390x, aarch64, ppc64le
MongoDB 3.4.9rh-mongodb34RHEL6, RHEL7x86_64, s390x, aarch64, ppc64le
Node.js 8.11.4rh-nodejs8*RHEL7x86_64, s390x, aarch64, ppc64le
在 Red Hat Software Collections 2.4 中更新的组件
Red Hat Developer Toolset 6.1devtoolset-6*RHEL6, RHEL7x86_64, s390x, aarch64, ppc64, ppc64le
scala 2.10.6rh-scala210RHEL7x86_64
nginx 1.10.2rh-nginx110RHEL6, RHEL7x86_64
Node.js 6.11.3rh-nodejs6*RHEL6, RHEL7x86_64, s390x, aarch64, ppc64le
Ruby 2.4.6rh-ruby24RHEL6, RHEL7x86_64
Ruby on Rails 5.0.1rh-ror50RHEL6, RHEL7x86_64
Eclipse 4.6.3rh-eclipse46*RHEL7x86_64
Python 2.7.16python27RHEL6, RHEL7x86_64, s390x, aarch64, ppc64le
Thermostat 1.6.6rh-thermostat16*RHEL6, RHEL7x86_64
Maven 3.3.9rh-maven33*RHEL6, RHEL7x86_64
常见 Java 软件包rh-java-commonRHEL6, RHEL7x86_64
在 Red Hat Software Collections 2.3 中更新的组件
Git 2.9.3rh-git29*RHEL6, RHEL7x86_64, s390x, aarch64, ppc64le
Redis 3.2.4rh-redis32*RHEL6, RHEL7x86_64
Perl 5.24.0rh-perl524*RHEL6, RHEL7x86_64
Python 3.5.1rh-python35*RHEL6, RHEL7x86_64
MongoDB 3.2.10rh-mongodb32*RHEL6, RHEL7x86_64
Ruby 2.3.8rh-ruby23*RHEL6, RHEL7x86_64
PHP 5.6.25rh-php56*RHEL6, RHEL7x86_64
在 Red Hat Software Collections 2.2 中更新的组件
Red Hat Developer Toolset 4.1devtoolset-4*RHEL6, RHEL7x86_64
MariaDB 10.1.29rh-mariadb101*RHEL6, RHEL7x86_64
MongoDB 3.0.11 升级集合 rh-mongodb30upg*RHEL6, RHEL7x86_64
Node.js 4.6.2rh-nodejs4*RHEL6, RHEL7x86_64
PostgreSQL 9.5.14rh-postgresql95*RHEL6, RHEL7x86_64
Ruby on Rails 4.2.6rh-ror42*RHEL6, RHEL7x86_64
MongoDB 2.6.9rh-mongodb26*RHEL6, RHEL7x86_64
Thermostat 1.4.4thermostat1*RHEL6, RHEL7x86_64
在 Red Hat Software Collections 2.1 中更新的组件
Varnish Cache 4.0.3rh-varnish4*RHEL6, RHEL7x86_64
nginx 1.8.1rh-nginx18*RHEL6, RHEL7x86_64
Node.js 0.10nodejs010*RHEL6, RHEL7x86_64
Maven 3.0.5maven30*RHEL6, RHEL7x86_64
V8 3.14.5.10v8314*RHEL6, RHEL7x86_64
在 Red Hat Software Collections 2.0 中更新的组件
Red Hat Developer Toolset 3.1devtoolset-3*RHEL6, RHEL7x86_64
Perl 5.20.1rh-perl520*RHEL6, RHEL7x86_64
Python 3.4.2rh-python34*RHEL6, RHEL7x86_64
Ruby 2.2.9rh-ruby22*RHEL6, RHEL7x86_64
Ruby on Rails 4.1.5rh-ror41*RHEL6, RHEL7x86_64
MariaDB 10.0.33rh-mariadb100*RHEL6, RHEL7x86_64
MySQL 5.6.40rh-mysql56*RHEL6, RHEL7x86_64
PostgreSQL 9.4.14rh-postgresql94*RHEL6, RHEL7x86_64
passenger 4.0.50rh-passenger40*RHEL6, RHEL7x86_64
PHP 5.4.40php54*RHEL6, RHEL7x86_64
PHP 5.5.21php55*RHEL6, RHEL7x86_64
nginx 1.6.2nginx16*RHEL6, RHEL7x86_64
DevAssistant 0.9.3devassist09*RHEL6, RHEL7x86_64
在 Red Hat Software Collections 1 中更新的组件
Git 1.9.4git19*RHEL6, RHEL7x86_64
Perl 5.16.3perl516*RHEL6, RHEL7x86_64
Python 3.3.2python33*RHEL6, RHEL7x86_64
Ruby 1.9.3ruby193*RHEL6, RHEL7x86_64
Ruby 2.0.0ruby200*RHEL6, RHEL7x86_64
Ruby on Rails 4.0.2ror40*RHEL6, RHEL7x86_64
MariaDB 5.5.53mariadb55*RHEL6, RHEL7x86_64
MongoDB 2.4.9mongodb24*RHEL6, RHEL7x86_64
MySQL 5.5.52mysql55*RHEL6, RHEL7x86_64
PostgreSQL 9.2.18postgresql92*RHEL6, RHEL7x86_64
图例:
  • RHEL6 - Red Hat Enterprise Linux 6
  • RHEL7 - Red Hat Enterprise Linux 7
  • x86_64 - AMD64 和 Intel 64 架构
  • s390x – 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.4 中的更改

1.3.1. 概述

构架

Red Hat Software Collections 产品包含在 AMD64 和 Intel 64 架构上运行的 Red Hat Enterprise Linux 7 的软件包;某些以前的 Software Collections 也可用于 Red Hat Enterprise Linux 6。
另外,Red Hat Software Collections 3.4 在 Red Hat Enterprise Linux 7 中支持以下架构:
  • 64 位 ARM 架构
  • IBM Z
  • IBM POWER, little endian
有关组件及其可用性的完整列表,请参阅 表 1.2 “所有可用的 Software Collections”

新 Software Collections

Red Hat Software Collections 3.4 添加以下新 Software Collections:
所有新的 Software Collections 仅适用于 Red Hat Enterprise Linux 7。

更新了 Software Collections

在 Red Hat Software Collections 3.4 中更新了以下组件:

Red Hat Software Collections 容器镜像

以下容器镜像在 Red Hat Software Collections 3.4 中是新的:
  • rhscl/devtoolset-9-toolchain-rhel7
  • rhscl/devtoolset-9-perftools-rhel7
  • rhscl/nodejs-12-rhel7
  • rhscl/php-73-rhel7
  • rhscl/nginx-116-rhel7
  • rhscl/postgresql-12-rhel7
Red Hat Software Collections 3.4 中更新了以下容器镜像:
  • rhscl/httpd-24-rhel7
有关 Red Hat Software Collections 容器镜像的详细信息,请参阅 第 3.4 节 “Red Hat Software Collections 容器镜像”

1.3.2. Red Hat Developer Toolset 中的更改

与之前的 Red Hat Developer Toolset 发行版本相比,在 Red Hat Developer Toolset 中已升级了以下组件:
  • GCC 到版本 9.1.1
  • binutils 到版本 2.32
  • GDB 升级到版本 8.3
  • strace 到版本 5.1
  • SystemTap 到版本 4.1
  • Valgrind 到版本 3.15.0
  • Dyninst 到版本 10.1.0
有关 9.0 中更改的详细信息,请参阅 Red Hat Developer Toolset 用户指南

1.3.3. Node.js 中的更改

新的 rh-nodejs12 Software Collection 提供 Node.js 12.10.0。这个版本中的显著改进包括:
  • V8 引擎升级至版本 7.6
  • 新的默认 HTTP 解析器 llhttp (不再实验性)
  • 堆转储生成的集成功能
  • 支持 ECMAScript 2015 (ES6)模块
  • 改进了原生模块的支持
  • worker 线程不再需要一个标记
  • 新的实验性诊断报告功能
  • 提高的性能
有关 Node.js 12.10.0 的详细信息,请参阅上游发行注记上游文档

1.3.4. PHP 中的更改

使用 PHP 7.3.11 的新 rh-php73 Software Collection 比 rh-php72 引入了以下显著改进:
  • 用于开发的 Xdebug 扩展
  • 增强且更灵活的 heredocnowdoc 语法
  • PCRE 扩展升级到 PCRE2
  • 改进了多字节字符串处理
  • 支持 LDAP 控制
  • 改进了 FastCGI 进程管理器(FPM)日志记录
  • 在功能调用中添加结尾逗号的功能
  • 提高的性能
  • 几个弃用和后不兼容的更改
请注意,以下行为与上游不同:
  • rh-php73 Software Collection 不支持 Argon2 密码哈希算法。
  • X (PCRE_EXTENDED)模式修饰符始终在 rh-php73 软件集合中启用。因此,无效的转义序列不会被解释为字面。

1.3.5. nginx 中的更改

新的 rh-nginx116 Software Collection 提供 nginx 1.16.1,它引入了一些新功能和增强。例如:
  • 与 SSL 相关的大量更新(从变量加载 SSL 证书和密钥,在 ssl_certificatessl_certificate_key 指令中支持,一个新的 ssl_early_data 指令)
  • 新的 keepalive- 相关指令
  • 用于分布式负载均衡的新 随机 指令
  • 对现有指令的新参数和改进( listen 指令的端口范围,用于 limit_req 指令的新 delay 参数,它可启用双阶段速率限制)
  • 新的 $upstream_bytes_sent 变量
  • 用户数据报协议(UDP)代理的改进
其他显著变化包括:
  • ssl 指令已弃用;改为使用 ssl 参数作为 listen 指令。
  • nginx 现在会在配置测试过程中检测缺少的 SSL 证书。
  • 当在 listen 指令中使用主机名时,nginx 现在为主机名解析到的所有地址创建侦听套接字。
有关 nginx 中更改的更多信息,请参阅上游发行注记
有关迁移说明,请参阅 第 5.8 节 “迁移到 nginx 1.16”

1.3.6. PostgreSQL 中的更改

新的 rh-postgresql12 Software Collection 包括 PostgreSQL 12.1。与之前的 Software Collection 版本中发布的版本 10 相比,这个版本引入了各种改进,例如:
  • PostgreSQL Audit 扩展 pgaudit,它通过标准的 PostgreSQL 日志记录功能提供详细的会话和对象审计日志记录。
  • 分区功能的改进,例如,对 hash 分区的支持
  • 查询并行性的改进
  • 启用事务管理存储的 SQL 流程
  • 各种性能改进
  • 管理功能的改进
  • 支持 SQL/JSON 路径语言
  • 存储生成的列
  • Nondeterministic collations
  • 新的身份验证功能,包括在使用 GSSAPI 身份验证或多因素身份验证时对 TCP/IP 连接进行加密。
有关详细更改,请参阅 PostgreSQL 11PostgreSQL 12 的上游发行注记。
请注意,自 PostgreSQL 11 起,对 Just-In-Time (JIT)编译的支持没有由 rh-postgresql12 软件集合提供。
rh-postgresql12 Software Collection 包括 rh-postgresql12-syspaths 软件包,它安装为二进制文件、脚本、手册页等提供系统范围打包程序的软件包。安装 rh-postgreqsl12*-syspaths 软件包后,用户不需要使用 scl enable 命令对 rh-postgreqsl12* 软件包提供的二进制文件和脚本正常工作。请注意,*-syspaths 软件包与基本 Red Hat Enterprise Linux 系统中的对应软件包冲突。要了解更多有关 syspath 的信息,请参阅 Red Hat Software Collections Packaging Guide
有关迁移的详情,请参考 第 5.6 节 “迁移到 PostgreSQL 12”

1.3.7. Maven 中的更改

带有 Maven 3.6.1 的新 rh-maven36 Software Collection 包括大量程序错误修复和增强。有关详细更改,请参阅 上游发行注记

1.3.8. Apache httpd 中的更改

httpd24 Software Collection 已更新,以提供几个安全和程序错误修复。

1.4. 兼容性信息

Red Hat Software Collections 3.4 适用于所有在 AMD64 和 Intel 64 构架中的 Red Hat Enterprise Linux 7 版本、64 位 ARM 架构、IBM Z 和 IBM POWER, little endian。
某些组件也可用于 AMD64 和 Intel 64 构架中所有支持的 Red Hat Enterprise Linux 6 版本。
有关可用组件的完整列表,请参阅 表 1.2 “所有可用的 Software Collections”

1.5. 已知问题

多个组件, 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#1646363
mysql-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 架构、IBM Z 和 IBM POWER, little endian。
httpd24 component, BZ#1327548
mod_ssl 模块不支持 Red Hat Enterprise Linux 6 或 Red Hat Enterprise Linux 7.3 及更早版本上的 ALPN 协议。因此,支持使用 ALPN 将 TLS 连接升级到 HTTP/2 的客户端仅限于 HTTP/1.1 支持。
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 中的任何应用程序都不需要该变量。
rh-python35,rh-python36 组件, BZ#1499990
Babel 用于时区支持的 pytz 模块不包含在 rh-python35rh-python36 Software Collections 中。因此,当用户尝试从 Babel 导入日期模块时,会返回回溯。要临时解决这个问题,请使用 pip install pytz 命令从 pypi 公共存储库安装 pytz。
rh-python36 组件
numpy 提供的某些复杂的 trigonometric 功能可能会返回 64 位 ARM 架构、IBM Z 和 IBM POWER, little endian 上的不正确的值。AMD64 和 Intel 64 架构不受此问题的影响。
python27 component, BZ#1330489
python27-python-pymongo 软件包已更新至版本 3.2.1。请注意,这个版本与之前提供的版本 2.5.2 并不完全兼容。
在 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/
Ruby 组件
确定 RubyGem 安装路径取决于启用多个 Software Collections 的顺序。自 Red Hat Software Collections 2.3 中提供的 Ruby 2.3.1 开始,所需的顺序已被修改,以支持依赖集合。因此,当以不正确的顺序提供 Software Collections 时,用于 gem 安装的 RubyGem 路径无效。例如,如果 RPM spec 文件包含 scl enable rh-ror50 rh-nodejs6,构建将失败。要临时解决这个问题,请启用 rh-ror50 Software Collection 最后,例如 scl enable rh-nodejs6 rh-ror50
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 模块。
PostgreSQL 组件
Red Hat Enterprise Linux 6 的 rh-postgresql9* 软件包不提供 sepgsql 模块,因为这个功能需要安装 libselinux 版本 2.0.99,这在 Red Hat Enterprise Linux 6 中不可用。
httpd,mariadb,mongodb,mysql,nodejs,perl,php, python,ruby, ruby , 和 ror 组件, BZ#1072319
在卸载 httpd24,rh-mariadb*, rh-mongodb*, rh-mysql*, rh-nodejs*, rh-perl*, rh-php*, python27,rh-python*, rh-ruby*, 或 rh-ror* 软件包时,卸载的顺序可能是相关的,因为依赖软件包的所有权相关。因此,一些目录和文件可能无法被正确删除,并可能在系统中保留。
MariaDB,mysql 组件, BZ#1194611
MariaDB 10MySQL 5.6 起,rh-mariadb*-mariadb-serverrh-mysql*-mysql-server 软件包不再提供 test 数据库。虽然在初始化过程中不会创建此数据库,但授权表会预先填充与默认创建测试时相同的值。因此,在稍后创建 testtestzFCP 数据库时,这些数据库的访问权限比新数据库的默认权限要小。
另外,在运行基准时,run-all-tests 脚本不再可用于示例参数。您需要在运行测试前创建 test 数据库,并在 --database 参数中指定数据库名称。如果未指定该参数,则默认执行测试,但需要确保 test 数据库存在。
MariaDB,mysql,postgresql,mongodb 组件
Red Hat Software Collections 包括 MySQL 5.7,MySQL 8.0,MariaDB 10.2,MariaDB 10.3,PostgreSQL 9.6,PostgreSQL 10,PostgreSQL 12,MongoDB 3.4, 和 MongoDB 3.6 数据库。Red Hat Enterprise Linux 6 的核心版本提供了 MySQLPostgreSQL 数据库的早期版本(客户端库和守护进程)。Red Hat Enterprise Linux 7 的核心提供 MariaDBPostgreSQL 数据库的早期版本(客户端库和守护进程)。客户端库也用于动态语言、库等数据库连接器。
PostgreSQL 组件中打包的 Red Hat Software Collections 数据库软件包的客户端库不应被使用,因为它仅用于服务器实用程序和守护进程。用户需要使用随核心系统提供的系统库和数据库连接器。
客户端库和守护进程之间使用的协议在数据库版本之间保持稳定,例如,使用带有 PostgreSQL 9.49.5 守护进程的 PostgreSQL 9.2 客户端库可以正常工作。
Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 的核心不包括 MongoDB 的客户端库。要将这个客户端库用于应用程序,您应该使用 Red Hat Software Collections 中的客户端库,并总是使用 scl enable ... 调用,每次运行链接到此 MongoDB 客户端库的应用程序时。
MariaDB,mysql,mongodb 组件
在创建日志文件时,MariaDB、MySQL 和 MongoDB 不使用 /opt/provider/collection/root 前缀。请注意,日志文件保存在 /var/opt/provider/collection/log/ 目录中,而不是在 /opt/provider/collection/root/var/log/ 中。

其他备注

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,屏幕 组件
有些实用程序(如 suloginscreen )不会在所有情况下都导出环境设置,这可能会导致意外的结果。因此,建议您使用 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 组件
当用户尝试从 python27rh-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)。

1.6. 弃用的功能

httpd24 component, BZ#1434053
在以前的版本中,在需要基于名称的 SSL 虚拟主机选择的 SSL/TLS 配置中,mod_ssl 模块会拒绝带有 400 Bad Request 错误的请求,如果 Host: 标头中提供的主机名与 Server Name Indication (SNI)标头中提供的主机名不匹配。如果在所选虚拟主机之间配置的 SSL/TLS 安全参数与上游 mod_ssl 的行为相同,则此类请求不再被拒绝。