3.2 发行注记
Red Hat Software Collections 3.2
Red Hat Software Collections 3.2 发行注记
Eliška Slobodová
Red Hat Customer Content Services
摘要
Red Hat Software Collections 3.2 发行注记记录了主要功能,并包含有关 Red Hat Software Collections 3.2 中已知问题的重要信息。
Red Hat Developer Toolset 集合记录在 Red Hat Developer Toolset 发行注记 和 Red Hat Developer Toolset 用户指南 中。
第 1 章 Red Hat Software Collections 3.2
本章作为 Red Hat Software Collections 3.2 内容集的概述。它提供组件及其描述列表,以及此版本的更改,记录了相关兼容性信息,以及列出已知问题。
1.1. 关于 Red Hat Software Collections
对于某些应用程序,通常需要较新版本的部分软件组件,以便使用其最新的新功能。Red Hat Software Collections 是一个红帽产品,它提供一组动态编程语言、数据库服务器和各种相关软件包,它们比基本 Red Hat Enterprise Linux 系统中包含的对等版本更最新的,或者首次对此系统可用。
Red Hat Software Collections 3.2 可用于 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 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.2 组件” 列出 Red Hat Software Collections 3.2 版本时支持的所有组件。
表 1.1. Red Hat Software Collections 3.2 组件
组件 | Software Collection | 描述 |
---|---|---|
Red Hat Developer Toolset 8.0 | devtoolset-8 | Red Hat Developer Toolset 是为在 Red Hat Enterprise Linux 平台上工作的开发人员设计的。它提供了 GNU Compiler Collection、GNU Debugger 和其他开发、调试和性能监控工具的当前版本。有关组件的完整列表,请参阅 Red Hat Developer Toolset 用户指南中的 Red Hat Developer Toolset 组件 表。 |
Perl 5.24.0 | rh-perl524 | Perl 的一个高级编程语言,通常用于系统管理实用程序和 Web 编程。rh-perl524 Software Collection 为 MySQL 和 PostgreSQL 提供了额外的实用程序、脚本和数据库连接器。它包括 DateTime Perl 模块和 mod_perl Apache httpd 模块,该模块仅支持 httpd24 软件集合。另外,它还为轻松安装 CPAN 模块提供 cpanm 工具。 |
perl 5.26.1[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.0.27 | rh-php70 | 使用 PEAR 1.10 的 PHP 7.0 发布,增强的语言 功能和性能改进。 |
PHP 7.1.8 [a] | rh-php71 | 带有 PEAR 1.10、APCu 5.1.8 和增强语言功能的 PHP 7.1 版本。 |
PHP 7.2.10 [a] | rh-php72 | 使用 PEAR 1.10.5、APCu 5.1.12 和增强语言功能的 PHP 7.2 发行版本。 |
Python 2.7.13 | 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.5.1 | rh-python35 | rh-python35 Software Collection 包含 Python 3.5.1 解释器,一组用于编程 Web 应用和 mod_wsgi 的扩展库(只在 httpd24 Software Collection 中受支持)、PostgreSQL 数据库连接器和 numpy 和 scipy。 |
Python 3.6.3 | rh-python36 | rh-python36 Software Collection 包含 Python 3.6.3,它引入了多个新功能,如 f-strings、变量注解语法以及异步生成器和理解。此外,还包括一组适用于编程 Web 应用的扩展库,mod_wsgi (仅支持 httpd24 软件集合)、PostgreSQL 数据库连接器、numpy 和 scipy。 |
Ruby 2.3.6 | rh-ruby23 | Ruby 2.3 发行版本。此版本 引入了一个命令行选项,用于冻结源文件中的所有字符串文字、安全导航 Operator 和多个性能增强, 同时维护与 Ruby 2.2、Ruby 2.0.0 和 Ruby 1.9.3 的源级向后兼容性。 |
Ruby 2.4.3 | 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.0 [a] | rh-ruby25 | Ruby 2.5 发布。此版本提供多个性能改进和新功能,例如,简化了带有 rescue 、else 和 ensure 关键字的块的使用,一个新的 yield_self 方法,支持分支覆盖和方法覆盖测量、新的 Hash#slice 和 Hash#transform_keys 方法。Ruby 2.5.0 维护与 Ruby 2.4 的源级向后兼容性。 |
Ruby on Rails 4.2.6 | rh-ror42 | Ruby on Rails 4.2 的一个发行版本,它是一个使用 Ruby 语言编写的 web 应用程序框架。本发行版本中突出显示包括 Active Job、异步邮件、Adequate Record、Web 控制台和外键支持。此 Software Collection 与 rh-ruby23 和 rh-nodejs4 Collections 一起被支持。 |
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 和 rh-nodejs6 Collections 一起被支持。 |
Scala 2.10.6 [a] | rh-scala210 | Scala 是 Java 平台的通用编程语言版本,集成了面向对象和功能语言的功能。 |
MariaDB 10.1.29 | rh-mariadb101 | MariaDB 发布,这是 Red Hat Enterprise Linux 用户的替代选择。就所有实际目的而言,MySQL 与 MariaDB 兼容,可以在没有任何数据转换的情况下替换为它。此版本添加了 Galera 集群支持。 |
MariaDB 10.2.8 | rh-mariadb102 | MariaDB 发布,这是 Red Hat Enterprise Linux 用户的替代选择。就所有实际目的而言,MySQL 与 MariaDB 兼容,可以在没有任何数据转换的情况下替换为它。此版本添加了 MariaDB 备份、Flashback、支持 Recursive Common Table Expressions、窗口功能和 JSON 功能。 |
MongoDB 3.2.10 | rh-mongodb32 | MongoDB 的一个发行版本,是一个 面向跨平台文档的数据库系统,被分类为一个 NoSQL 数据库。此 Software Collection 包括 mongo-java-driver 软件包版本 3.2.1。 |
MongoDB 3.4.9 | rh-mongodb34 | MongoDB 的一个发行版本,是一个面向跨平台文档的数据库系统,被分类为一个 NoSQL 数据库。此发行版本引入了对新架构的支持,增加了对十进制128 类型的消息压缩和支持,增强了联合 功能等。 |
MongoDB 3.6.3 [a] | rh-mongodb36 | MongoDB 的一个发行版本,是一个面向跨平台文档的数据库系统,被分类为一个 NoSQL 数据库。此发行版本引入了 更改流、可重试的写入和 JSON Schema,以及其他功能。 |
MySQL 5.7.24 | rh-mysql57 | MySQL 的一个发行版本,它提供了很多新功能和增强,包括更好的性能。 |
MySQL 8.0.13 [a] | rh-mysql80 | MySQL 服务器的发行版本,它引入了多个新的 安全性和帐户管理功能及 增强功能。 |
PostgreSQL 9.5.14 | rh-postgresql95 | PostgreSQL 的一个发行版本,它提供了很多改进,包括 行级安全控制, 引入复制进度跟踪,改进了具有大量列的大型表,并提高排序和多 CPU 机器的性能。 |
PostgreSQL 9.6.10 | rh-postgresql96 | PostgreSQL 的一个发行版本,它引入了后续扫描、加入和聚合的并行执行,并提供同步复制、全文本搜索、重复数据删除驱动程序、postgres_fdw 以及性能改进的改进。 |
PostgreSQL 10.5 [a] | rh-postgresql10 | PostgreSQL 发行版本,它包括显著的性能改进和一些新功能,如使用 publish 和 subscribe 关键字的逻辑复制,或者基于 SCRAM-SHA-256 机制的更强大的密码身份验证。 |
Node.js 6.11.3 | rh-nodejs6 | 一个 Node.js 版本,提供多个 API 增强、性能和安全改进,ECMA Script 2015 支持,npm 3.10.9。 |
Node.js 8.11.4 [a] | rh-nodejs8 | Node.js 发行版本提供多个 API 增强功能和新功能,包括 V8 引擎版本 6.0、npm 5.6.0 和 npx、增强的安全性、实验性 N-API 支持和性能改进。 |
Node.js 10.10.0 [a] | rh-nodejs10 | Node.js 发行版本提供多个 API 增强功能和新功能,包括 V8 引擎版本 6.6、完整的 N-API 支持 以及稳定性改进。 |
nginx 1.10.2 | rh-nginx110 | nginx 版本(一个 Web 和代理服务器),专注于高并发性、性能和低内存用量。此版本引入了许多新功能,包括 动态模块支持、HTTP/2 支持、Perl 集成以及大量性能改进。 |
nginx 1.12.1 [a] | rh-nginx112 | nginx 版本(一个 Web 和代理服务器),专注于高并发性、性能和低内存用量。此版本引入了许多新功能,包括 IP Transparency、改进 TCP/UDP 负载平衡、增强的缓存性能和大量性能。 |
nginx 1.14.0 [a] | rh-nginx114 | nginx 版本(一个 Web 和代理服务器),专注于高并发性、性能和低内存用量。此版本提供了很多功能,如 mirror 模块、HTTP/2 服务器推送、gRPC 代理模块以及大量性能改进。 |
Apache httpd 2.4.34 | httpd24 | 发布 Apache HTTP 服务器(httpd),包括 高性能事件处理模型,增强的 SSL 模块和 FastCGI 支持。还包括 mod_auth_kerb 和 mod_auth_mellon 模块。 |
Varnish Cache 5.2.1 [a] | rh-varnish5 | Varnish 缓存发行版本,它是一个高性能 HTTP 反向代理。此版本包括 分片 director、实验性 HTTP/2 支持以及通过单独的 VCL 文件和 VCL 标签对 Varnish 配置的改进。 |
Varnish Cache 6.0.0 [a] | rh-varnish6 | Varnish 缓存发行版本,它是一个高性能 HTTP 反向代理。此版本包括对 Unix 域套接字的支持(包括客户端和后端服务器)、新级别的 VCL 语言(vcl 4.1 ),以及改进的 HTTP/2 支持。 |
Maven 3.3.9 | rh-maven33 | Maven 版本,它是一种 软件项目管理和理解工具,主要用于 Java 项目。此版本提供各种增强功能,例如 改进的核心扩展机制。 |
Maven 3.5.0 [a] | rh-maven35 | Maven 发布,这是一个软件项目管理和理解工具。此发行版本引进了对新架构和许多新功能的支持,包括 颜色的日志记录。 |
Git 2.18.1 [a] | rh-git218 | Git 的一个发行版本,即具有分散架构的分布式修订控制系统。与使用客户端-服务器模型的集中版本控制系统外,Git 确保 Git 存储库的每个工作副本都与完整的修订历史记录完全相同。此版本包括 大文件存储(LFS)扩展。 |
Redis 3.2.4 | rh-redis32 | Redis 3.2 版本是一个 持久的键值数据库。 |
HAProxy 1.8.4 [a] | rh-haproxy18 | HAProxy 1.8 版本,这是一个可靠、高性能的 网络负载均衡器,适用于 TCP 和基于 HTTP 的应用程序。 |
常见 Java 软件包 | rh-java-common | 此 Software Collection 提供了由 其他集合使用的通用 Java 库和工具。devtoolset-4 需要 rh-java-common Software Collection,devtoolset-3,rh-maven33,maven30,rh-mongodb32,rh-mongodb26 , Thermostat1, rh-thermostat16, 和 rh-eclipse46 组件,用户不应直接安装它。 |
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.2 中的组件 | |||
Red Hat Developer Toolset 8.0 | devtoolset-8 | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64, ppc64le |
PHP 7.2.10 | rh-php72 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
MySQL 8.0.13 | rh-mysql80 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Node.js 10.10.0 | rh-nodejs10 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
nginx 1.14.0 | rh-nginx114 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Varnish Cache 6.0.0 | rh-varnish6 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Git 2.18.1 | rh-git218 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
JDK Mission Control | rh-jmc | RHEL7 | x86_64 |
在 Red Hat Software Collections 3.2 中更新的组件 | |||
---|---|---|---|
Apache httpd 2.4.34 | httpd24 | RHEL6, 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.1 | rh-perl526 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
Ruby 2.5.0 | rh-ruby25 | 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.5 | rh-postgresql10 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
HAProxy 1.8.4 | rh-haproxy18 | RHEL7 | x86_64 |
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.3 | rh-python36 | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64le |
Maven 3.5.0 | rh-maven35 | RHEL7 | x86_64, s390x, aarch64, ppc64le |
MariaDB 10.2.8 | rh-mariadb102 | RHEL6, RHEL7 | x86_64, s390x, aarch64, ppc64le |
PostgreSQL 9.6.10 | 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.3 | 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.13 | 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 |
常见 Java 软件包 | 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.6 | 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 - 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.2 中的更改
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.2 在 Red Hat Enterprise Linux 7 中支持以下构架:
- 64 位 ARM 架构
- IBM Z
- IBM POWER, little endian
有关组件及其可用性的完整列表,请参阅 表 1.2 “所有可用的 Software Collections”。
新 Software Collections
Red Hat Software Collections 3.2 添加了这些新 Software Collections:
- devtoolset-8 — see 第 1.3.2 节 “Red Hat Developer Toolset 中的更改”
- rh-php72 — see 第 1.3.3 节 “PHP 中的更改”
- rh-mysql80 — see 第 1.3.4 节 “MySQL 中的更改”
- rh-nodejs10 — see 第 1.3.5 节 “Node.js 中的更改”
- rh-nginx114 — see 第 1.3.6 节 “nginx 中的更改”
- rh-varnish6 — see 第 1.3.7 节 “Varnish Cache 中的更改”
- rh-git218 — see 第 1.3.8 节 “Git 中的更改”
- RH-jmc - JDK Mission Control (JMC)是 HotSpot JVM 的强大配置集器。JMC 提供了一组高级工具,用于对 JDK Flight Recorder 收集的大量数据进行高效和详细分析。通过工具链,开发人员和管理员可以从生产环境中运行的 Java 应用程序收集和分析数据。请注意,JMC 需要运行 JDK 版本 8 或更高版本。目标 Java 应用程序必须至少使用 OpenJDK 版本 11 运行,以便 JMC 可以访问 JDK Flight Recorder 功能。rh-jmc Software Collection 包括 RHEA-2019:0543 公告。
所有新的 Software Collections 仅适用于 Red Hat Enterprise Linux 7。
更新了 Software Collections
在 Red Hat Software Collections 3.2 中更新了以下组件:
- httpd24 — see 第 1.3.9 节 “Apache httpd 中的更改”
Red Hat Software Collections 容器镜像
以下容器镜像在 Red Hat Software Collections 3.2 中是新的:
- rhscl/devtoolset-8-toolchain-rhel7
- rhscl/devtoolset-8-perftools-rhel7
- rhscl/mysql-80-rhel7
- rhscl/nginx-114-rhel7
- rhscl/php-72-rhel7
- rhscl/varnish-6-rhel7
在 Red Hat Software Collections 3.2 中更新了以下容器镜像:
- 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 8.0 中已升级了以下组件:
- GCC 到版本 8.2.1
- GDB 到版本 8.2
- Valgrind 到版本 3.14.0
- elfutils 到版本 0.174
- binutils 到版本 2.30
- strace 到版本 4.24
- OProfile 到版本 1.3.0
- SystemTap 到版本 3.3
另外,以下组件提供了程序错误修复更新:
- dwz
- ltrace
- Dyninst
有关 8.0 中更改的详细信息,请参阅 Red Hat Developer Toolset 用户指南。
1.3.3. PHP 中的更改
新的 rh-php2 Software Collection 包括 PHP 7.2.10,带有 PEAR 1.10. 5、APCu 5.1.12 和改进的语言功能。此版本包括以下改进:
- 在 object-to-array 和 array-to-object casts 中转换数字键
- 非可数对象计数
- 新
对象类型
hint HashContext
从资源变为对象- 改进了 TLS 常量
- 性能改进
1.3.4. MySQL 中的更改
新的 rh-mysql80 Software Collection 包括 MySQL 8.0.13,它引入了一些新的安全性和帐户管理功能和增强。主要变更包括:
- MySQL 现在包含一个 事务数据字典,它存储了数据库对象的信息。
- MySQL 现在支持 角色,它们是特权的集合。
- 默认字符集已从
latin1
改为utf8mb4
。 - 添加了对 通用表表达式 (非递归和递归)的支持。
- MySQL 现在支持 窗口功能,它使用相关行对查询中的每行执行计算。
InnoDB
现在支持带有锁定读 语句的NOWAIT
和SKIP LOCKED
选项。- 改进了与 GIS 相关的功能。
- JSON 功能已被改进。
有关迁移说明,请参阅 第 5.2 节 “迁移到 MySQL 8.0”。
上游 MySQL 8.0 和 rh-mysql80之间的显著区别
- rh-mysql80 Software Collection 提供的 MySQL 8.0 服务器被配置为使用
mysql_native_password
作为默认身份验证插件,因为 Red Hat Enterprise Linux 7 中的客户端工具和库与caching_sha2_password
方法不兼容,后者在上游 MySQL 8.0 版本中默认使用。要将默认身份验证插件更改为caching_sha2_password
,请编辑/etc/opt/rh/rh-mysql80/my.cnf.d/mysql-default-authentication-plugin.cnf
文件:[mysqld] default_authentication_plugin=caching_sha2_password
有关caching_sha2_password
身份验证插件的更多信息,请参阅上游文档。 - rh-mysql80 Software Collection 包含 rh-mysql80-syspaths 软件包,它将安装 rh-mysql80-mysql-config-syspaths,rh-mysql80-mysql-syspaths, 和 rh-mysql80-mysql-syspaths 软件包。这些子软件包为二进制文件、脚本、手册页和其他提供系统范围的打包程序。安装 rh-mysql80*-syspaths 软件包后,用户不需要使用 scl enable 命令对 rh-mysql80* 软件包提供的二进制文件和脚本正常工作。请注意,*-syspaths 软件包与基础 Red Hat Enterprise Linux 系统以及 rh-mariadb102 Software Collection 的对应软件包冲突。
1.3.5. Node.js 中的更改
新的 rh-nodejs10 Software Collection 为 Node.js 10.10.0 提供 npm 6.4.1。这个版本中的显著特性包括:
- V8 引擎 版本 6.6
- 对 N-API 的支持不再是实验性的
- 稳定性改进
- 增强的安全功能
1.3.6. nginx 中的更改
新的 rh-nginx114 Software Collection 包括 nginx 1.14.0,它提供很多性能改进、错误修复和新功能,例如:
mirror
模块gRPC
代理模块- HTTP/2 服务器推送
- Vim 语法的改进,突出显示脚本
有关 nginx 中更改的更多信息,请参阅上游发行注记。
有关迁移说明,请参阅 第 5.8 节 “迁移到 nginx 1.14”
1.3.7. Varnish Cache 中的更改
与之前发布的版本相比,新 rh-varnish6 Software Collection 中包含的 Varnish Cache 6.0.0 提供了很多程序错误修复和增强。例如:
- 支持 Unix 域套接字(UDS),包括客户端和后端服务器
- 一个新的 Varnish 配置语言(VCL)
vcl 4.1
- HTTP/2 支持的改进
- 新的和改进的 Varnish 模块(VMODs):
vmod_directors
vmod_proxy
vmod_unix
vmod_vtc
1.3.8. Git 中的更改
新的 rh-git218 Software Collection 包括 Git 2.18.1,与 Red Hat Software Collections 2.3 一起发布的 rh-git29 Collection 相比,它提供了大量程序错误修复和增强。特定于 rh-git218 Software Collection 的显著变化包括:
- 提供了新的 rh-git218-git-instaweb 子软件包,它依赖于 Apache HTTP 服务器的基本 Red Hat Enterprise Linux 版本。安装 rh-git218-git-instaweb 软件包时,git instaweb 命令可与 Web 服务器一起工作,而无需进一步配置。
1.3.9. Apache httpd 中的更改
由 httpd24 Software Collection 提供的 Apache HTTP Server 已更新至上游版本 2.4.34。主要变更包括:
- 改进了 HTTP/2 支持。
OpenSSL 1.0.2
提供的其他功能已被实现。- 在这个版本中,
mod_md
模块添加到 httpd24 Software Collection 中。该模块启用使用自动证书管理环境(ACME)协议管理跨虚拟主机和证书调配的域。mod_md
模块仅适用于 Red Hat Enterprise Linux 7。 - Apache HTTP 服务器中的 TLS Server Name Indication (SNI)提示的处理 已更改。
- 如果 TLS 握手中给出的 SNI 提示与 HTTP 请求中的
Host:
标头不匹配,服务器现在会发送 HTTP421 Misdirected Request
错误响应,而不是之前的400 Bad Request
错误响应。 - 如果 SNI 提示与配置的
VirtualHost
的服务器名称不匹配,则现在会遵循常见的VirtualHost
匹配规则,即与第一个配置的主机匹配。在以前的版本中,发送400 Bad Request
错误响应。
有关 Apache httpd 2.4.34 中更改的更多信息,请参阅 上游发行注记。
1.4. 兼容性信息
Red Hat Software Collections 3.2 适用于所有在 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. 已知问题
rh-mysql80
, BZ#1646363mysql-connector-java
数据库连接器无法用于 MySQL 8.0 服务器。rh-mysql80
, 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
组件- httpd24 软件集合中包含的 cURL 工具的更新版本不支持 HTTP/2。因此,在此版本的 cURL 中,脚本依赖于 HTTP/2 支持失败,或者回退到 HTTP/1.1。
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#1327548mod_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#1499990Babel
用于时区支持的pytz
模块不包含在 rh-python35 和 rh-python36 Software Collections 中。因此,当用户尝试从Babel
导入日期模块时,会返回回溯。要临时解决这个问题,请使用 pip installpytz
命令从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 并不完全兼容。
-
python27
组件 - 在 Red Hat Enterprise Linux 7 中,当用户试图安装 python27-python-debuginfo 软件包时,
/usr/src/debug/Python-2.7.5/Modules/socketmodule.c
文件与核心系统上安装的 python-debuginfo 软件包的对应文件冲突。因此,安装 python27-python-debuginfo 会失败。要临时解决这个问题,请卸载 python-debuginfo 软件包,然后安装 python27-python-debuginfo 软件包。 - 在
- 在 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/
。 -
rh-ruby24
,rh-ruby23
components - 确定
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。 rh-maven35
,rh-maven33
组件- 当用户同时安装了 maven-local 软件包的 Red Hat Enterprise Linux 系统版本,并且 rh-maven35-maven -local 软件包或 rh-maven33-maven-local 软件包时,XMvn 用于构建 Java RPM 软件包的工具,从 rh-maven35 或 rh-maven33 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 10 和 MySQL 5.6 起,rh-mariadb*-mariadb-server 和 rh-mysql*-mysql-server 软件包不再提供
test
数据库。虽然在初始化过程中不会创建此数据库,但授权表会预先填充与默认创建测试时相同的值。因此,在稍后创建
test
或testzFCP
数据库时,这些数据库的访问权限比新数据库的默认权限要小。另外,在运行基准时,run-all-tests
脚本不再可用于示例参数。您需要在运行测试前创建 test 数据库,并在--database
参数中指定数据库名称。如果未指定该参数,则默认执行测试,但需要确保test
-
MariaDB
,mysql
,postgresql
,mongodb
组件 - Red Hat Software Collections 3.2 包括 MySQL 5.7,MySQL 8.0,MariaDB 10.0,MariaDB 10.1,MariaDB 10.2,PostgreSQL 9.5,PostgreSQL 9.6,PostgreSQL 10,MongoDB 3.2,MongoDB 3.4, 和 MongoDB 3.6 数据库。Red Hat Enterprise Linux 6 的核心版本提供了 MySQL 和 PostgreSQL 数据库的早期版本(客户端库和守护进程)。Red Hat Enterprise Linux 7 的核心提供 MariaDB 和 PostgreSQL 数据库的早期版本(客户端库和守护进程)。客户端库也用于动态语言、库等数据库连接器。PostgreSQL 组件中打包的 Red Hat Software Collections 数据库软件包的客户端库不应被使用,因为它仅用于服务器实用程序和守护进程。用户需要使用随核心系统提供的系统库和数据库连接器。客户端库和守护进程之间使用的协议在数据库版本之间保持稳定,例如,使用带有 PostgreSQL 9.4 或 9.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-eclipse46
组件- 当安装第三方更新站点的插件时,Eclipse 有时无法在工作区日志文件中以
NullPointerException
开始。要临时解决这个问题,请使用-clean
选项重启 Eclipse。例如:~]$ scl enable rh-eclipse46 "eclipse -clean"
rh-eclipse46
组件- Eclipse Docker 工具 引入了一个 Dockerfile 编辑器,其语法突出显示和基本的命令自动完成功能。打开 Build Image 向导 并按下 Edit Dockerfile 按钮时,Dockerfile 编辑器 会在分离的编辑器窗口中打开该文件。但是,此窗口不包含 Cancel 和 Save 按钮。要临时解决这个问题,请按 Ctrl+S 保存您的更改,或者右键单击编辑器以启动上下文菜单,该菜单提供 Save 选项。要取消您的更改,请关闭窗口。
rh-eclipse46
组件- 在 Red Hat Enterprise Linux 7.2 中,perf 工具中的一个错误,用于在 Eclipse 中填充
Perf Profile View
,这会导致视图中的一些项目没有正确链接到 Eclipse Editor 中的相应位置。虽然性能分析按预期工作,但无法通过单击Perl Profile View
的部分来导航到编辑器中的相关位置。
其他备注
-
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
)。
1.6. 弃用的功能
httpd24
component, BZ#1434053- 在以前的版本中,在需要基于名称的 SSL 虚拟主机选择的 SSL/TLS 配置中,
mod_ssl
模块会拒绝带有400 Bad Request
错误的请求,如果Host:
标头中提供的主机名与 Server Name Indication (SNI)标头中提供的主机名不匹配。如果在所选虚拟主机之间配置的 SSL/TLS 安全参数与上游mod_ssl
的行为相同,则此类请求不再被拒绝。
第 2 章 安装
本章论述了如何访问内容集合,在系统中安装 Red Hat Software Collections 3.2,并重建 Red Hat Software Collections。
2.1. 获取 Red Hat Software Collections
Red Hat Software Collections 内容集可供客户使用 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 订阅,网址为 https://access.redhat.com/solutions/472793。有关如何在 Red Hat Subscription Management (RHSM)中注册您的系统的详情,请参考使用和配置 Red Hat Subscription Manager。有关如何使用 RHSM 启用 Red Hat Software Collections 的详情,请参考 第 2.1.1 节 “使用 Red Hat Subscription Management”。
从 Red Hat Software Collections 2.2 开始,Red Hat Software Collections 和 Red Hat Developer Toolset 内容也以 ISO 格式( https://access.redhat.com/downloads 特别是 Server 和 Workstation )提供。请注意,需要
Optional
频道的软件包(在 第 2.1.2 节 “可选频道的软件包” 中列出的)无法从 ISO 镜像安装。
注意
Beta 内容在 ISO 格式不可用。
2.1.1. 使用 Red Hat Subscription Management
如果您的系统注册到 Red Hat Subscription Management,请完成以下步骤以附加提供对 Red Hat Software Collections 仓库的访问权限并启用存储库的订阅:
- 显示可用于您的系统的所有订阅的列表,并确定提供 Red Hat Software Collections 的订阅池 ID。要做到这一点,以
root
用户身份在 shell 提示符后输入以下内容:subscription-manager list --available
对于每个可用订阅,这个命令会显示其名称、唯一标识符、到期日期以及与之相关的其他详细信息。池 ID 在以Pool Id
开头的行上列出。 - 以
root
用户身份运行以下命令,为您的系统附加适当的订阅:subscription-manager attach --pool=pool_id
使用您在上一步中确定的池 ID 替换 pool_id。要验证系统当前附加的订阅列表,以root
用户身份输入:subscription-manager list --consumed
- 显示可用的 Yum 列表存储库列表,以检索存储库元数据,并确定红帽软件集合存储库的确切名称。以
root
用户身份,输入:subscription-manager repos --list
或者,对简短列表运行 yum repolist all。软件仓库名称取决于您使用的 Red Hat Enterprise Linux 的特定版本,并采用以下格式:rhel-variant-rhscl-6-rpms rhel-variant-rhscl-6-debug-rpms rhel-variant-rhscl-6-source-rpms rhel-server-rhscl-6-eus-rpms rhel-server-rhscl-6-eus-source-rpms rhel-server-rhscl-6-eus-debug-rpms rhel-variant-rhscl-7-rpms rhel-variant-rhscl-7-debug-rpms rhel-variant-rhscl-7-source-rpms rhel-server-rhscl-7-eus-rpms rhel-server-rhscl-7-eus-source-rpms rhel-server-rhscl-7-eus-debug-rpms>
使用 Red Hat Enterprise Linux 系统变体(即server
或workstation
)替换 variant。请注意,在客户端或ComputeNode
变体上都不支持 Red Hat Software Collections。 - 以
root
用户身份运行以下命令来启用适当的存储库:subscription-manager repos --enable repository
当订阅附加到系统后,您可以安装 Red Hat Software Collections,如 第 2.2 节 “安装 Red Hat Software Collections” 所述。有关如何使用红帽订阅管理注册您的系统并将其与订阅相关联的更多信息,请参阅使用和配置红帽订阅管理器。
注意
通过 RHN 的订阅不再可用。
2.1.2. 可选频道的软件包
有些 Red Hat Software Collections 3.2 软件包需要启用
Optional
频道才能完成这些软件包的完整安装。有关如何向这个频道订阅您的系统的详情,请参考 https://access.redhat.com/solutions/392003。
下表中列出了需要启用
Optional
频道的 Software Collections for Red Hat Enterprise Linux 6 中的软件包。
表 2.1. 在 Red Hat Enterprise Linux 6 中启用可选频道的软件包
Software Collection 中的软件包 | 可选频道的所需软件包 |
---|---|
devtoolset-6-dyninst-testsuite | glibc-static |
devtoolset-7-dyninst-testsuite | glibc-static |
devtoolset-8-dyninst-testsuite | glibc-static |
rh-git29-git-all | cvsps, perl-Net-SMTP-SSL |
rh-git29-git-cvs | cvsps |
rh-git29-git-email | perl-Net-SMTP-SSL |
rh-git29-perl-Git-SVN | perl-YAML, subversion-perl |
rh-mariadb101-boost-devel | libicu-devel |
rh-mariadb101-boost-examples | libicu-devel |
rh-mariadb101-boost-static | libicu-devel |
rh-mongodb32-boost-devel | libicu-devel |
rh-mongodb32-boost-examples | libicu-devel |
rh-mongodb32-boost-static | libicu-devel |
rh-mongodb32-yaml-cpp-devel | libicu-devel |
rh-mongodb34-boost-devel | libicu-devel |
rh-mongodb34-boost-examples | libicu-devel |
rh-mongodb34-boost-static | libicu-devel |
rh-mongodb34-yaml-cpp-devel | libicu-devel |
rh-php70-php-imap | libc-client |
rh-php70-php-recode | recode |
下表中列出了需要 Red Hat Enterprise Linux 7 中
Optional
频道的 Software Collections 软件包。
表 2.2. 在 Red Hat Enterprise Linux 7 中启用可选频道的软件包
Software Collection 中的软件包 | 可选频道的所需软件包 |
---|---|
devtoolset-7-dyninst-testsuite | glibc-static |
devtoolset-7-gcc-plugin-devel | libmpc-devel |
devtoolset-8-dyninst-testsuite | glibc-static |
devtoolset-8-gcc-plugin-devel | libmpc-devel |
httpd24-mod_ldap | apr-util-ldap |
rh-eclipse46 | ruby-doc |
rh-eclipse46-eclipse-dltk-ruby | ruby-doc |
rh-eclipse46-eclipse-dltk-sdk | ruby-doc |
rh-eclipse46-eclipse-dltk-tests | ruby-doc |
rh-eclipse46-icu4j-javadoc | java-1.8.0-openjdk-javadoc |
rh-eclipse46-stringtemplate-javadoc | java-1.8.0-openjdk-javadoc |
rh-git218-git-all | cvsps, subversion-perl |
rh-git218-git-cvs | cvsps |
rh-git218-git-svn | subversion-perl |
rh-git218-perl-Git-SVN | subversion-perl |
rh-git29-git-all | cvsps |
rh-git29-git-cvs | cvsps |
rh-git29-perl-Git-SVN | subversion-perl |
请注意,不支持
Optional
频道中的软件包。详情请查看知识库文章 https://access.redhat.com/articles/1150793。
2.2. 安装 Red Hat Software Collections
Red Hat Software Collections 是 RPM 软件包的集合,可以使用 Red Hat Enterprise Linux 中包含的标准软件包管理工具进行安装、更新和卸载。请注意,需要一个有效的订阅才能在您的系统上安装红帽软件集合。有关如何将您的系统与适当的订阅相关联的详情,并可以访问 Red Hat Software Collections,请参阅 第 2.1 节 “获取 Red Hat Software Collections”。
使用 Red Hat Software Collections 3.2 需要删除所有更早的版本,包括 Beta 版本。如果安装了任何以前的 Red Hat Software Collections 3.2 版本,请从系统中卸载它并安装新版本,如 第 2.3 节 “卸载 Red Hat Software Collections” 和 第 2.2.1 节 “安装单个 Software Collections” 部分所述。
Red Hat Software Collections 不支持从 Red Hat Enterprise Linux 6 原位升级到 Red Hat Enterprise Linux 7。因此,升级后安装的 Software Collections 可能无法正常工作。如果要从 Red Hat Enterprise Linux 6 升级到 Red Hat Enterprise Linux 7,强烈建议您删除所有 Red Hat Software Collections 软件包,执行原位升级,更新 Red Hat Software Collections 存储库,然后再次安装 Software Collections 软件包。建议在升级前备份所有数据。
2.2.1. 安装单个 Software Collections
要安装 表 1.1 “Red Hat Software Collections 3.2 组件” 中列出的任何 Software Collections,请以
root
用户身份在 shell 提示符后输入以下内容来安装对应的 meta 软件包:
yum install software_collection...
将 software_collection 替换为您要安装的以空格分隔的 Software Collections 列表。例如,要安装 php54 和 rh-mariadb100,请以
root
用户身份键入:
~]# yum install rh-php72 rh-mariadb102
这会为所选 Software Collection 安装主 meta 软件包,以及一组必要的软件包作为其依赖项。有关如何安装其他软件包(如附加模块)的详情,请参考 第 2.2.2 节 “安装可选软件包”。
2.2.2. 安装可选软件包
Red Hat Software Collections 的每个组件都附带多个可选软件包,它们默认没有安装。要列出部分特定 Software Collection 但不安装在您的系统中的所有软件包,在 shell 提示符后输入以下内容:
yum list available software_collection-\*
要安装这些可选软件包,以
root
用户身份键入:
yum install package_name...
使用您要安装的软件包列表替换 package_name。例如,要安装 rh-perl526-perl-CPAN 和 rh-perl526-perl-Archive-Tar,请输入:
~]# yum install rh-perl526-perl-CPAN rh-perl526-perl-Archive-Tar
2.2.3. 安装调试信息
要为任何 Red Hat Software Collections 软件包安装调试信息,请确保已安装 yum-utils 软件包,并以
root
用户身份运行以下命令:
debuginfo-install package_name
例如,要为 rh-ruby25-ruby 软件包安装调试信息,请输入:
~]# debuginfo-install rh-ruby25-ruby
请注意,您需要使用这些软件包访问存储库。如果您的系统通过红帽订阅管理注册,请启用
rhel-variant-rhscl-6-debug-rpms
或 rhel-variant-rhscl-7-debug-rpms
存储库,如 第 2.1.1 节 “使用 Red Hat Subscription Management” 所述。有关如何访问 debuginfo 软件包的更多信息,请参阅 https://access.redhat.com/solutions/9907。
2.3. 卸载 Red Hat Software Collections
要卸载任何 Software Collections 组件,以
root
用户身份在 shell 提示符后输入以下内容:
yum remove software_collection\*
将 software_collection 替换为您要卸载的 Software Collection 组件。
请注意,卸载由 Red Hat Software Collections 提供的软件包不会影响这些工具的 Red Hat Enterprise Linux 系统版本。
2.4. 重建 Red Hat Software Collections
<collection>-build 软件包默认不提供。如果要重建集合,且不想使用 rpmbuild --define 'scl foo' 命令,您首先需要重新构建 metapackage,它提供 < collection>-build 软件包。
请注意,不应使用不同内容重建现有集合。要将新软件包添加到现有集合中,您需要创建一个包含新软件包的新集合,并使其依赖于原始集合中的软件包。原始集合必须在不更改的情况下使用。
有关构建 Software Collections 的详细信息,请参阅 Red Hat Software Collections Packaging Guide。
第 3 章 使用方法
本章论述了重建和使用 Red Hat Software Collections 3.2 所需的步骤,以及部署使用 Red Hat Software Collections 的应用程序。
3.1. 使用 Red Hat Software Collections
3.1.1. 从 Software Collection 运行可执行文件
要从特定的 Software Collection 运行可执行文件,在 shell 提示符下输入以下命令:
scl enable software_collection... 'command...'
或者,使用以下命令:
scl enable software_collection... -- command...
将 software_collection 替换为您要使用的空间分隔的 Software Collections 列表,并使用您要运行的命令替换 software_collection。例如,要执行存储在名为
hello.pl
的 Perl 程序以及 perl526 Software Collection 中的 Perl 解释器,请输入:
~]$ scl enable rh-perl526 'perl hello.pl'
Hello, World!
您可以使用 scl 工具执行任何命令,从而导致它使用所选 Software Collection 的可执行文件运行,并优先选择其对应的 Red Hat Enterprise Linux 系统。有关随 Red Hat Software Collections 一起发布的 Software Collections 的完整列表,请参阅 表 1.1 “Red Hat Software Collections 3.2 组件”。
3.1.2. 使用 Software Collection 作为默认运行 Shell 会话
要在首选使用所选 Software Collection 中启动带有可执行文件的新 shell 会话,在 shell 提示符后输入以下内容:
scl enable software_collection... bash
将 software_collection 替换为您要使用的以空格分隔的 Software Collections 列表。例如,要启动一个带有 python27 和 rh-postgresql10 Software Collections 的新 shell 会话作为默认值,请输入:
~]$ scl enable python27 rh-postgresql10 bash
在当前会话中启用的 Software Collections 列表存储在
$X_SCLS
环境变量中,例如:
~]$ echo $X_SCLS
python27 rh-postgresql10
有关随 Red Hat Software Collections 一起发布的 Software Collections 的完整列表,请参阅 表 1.1 “Red Hat Software Collections 3.2 组件”。
3.1.3. 从 Software Collection 运行系统服务
从 Red Hat Enterprise Linux 6 中的 Software Collection 运行系统服务
包括系统服务的软件集合在
/etc/rc.d/init.d/
目录中安装相应的初始化脚本。要在当前会话中启动该服务,以 root
用户身份在 shell 提示符后输入以下内容:
service software_collection-service_name start
将 software_collection 替换为 Software Collection 和 service_name 的名称,作为您要启动的服务的名称。
要将此服务配置为在引导时自动启动,请以
root
用户身份输入以下命令:
chkconfig software_collection-service_name on
例如,要从 rh-
postgresql
96 软件集合启动 postgresql 服务,并在运行级别 2、3、4 和 5 中启用它,以 root
用户身份:
~]# service rh-postgresql96-postgresql start Starting rh-postgresql96-postgresql service: [ OK ] ~]# chkconfig rh-postgresql96-postgresql on
有关如何在 Red Hat Enterprise Linux 6 中管理系统服务的更多信息,请参阅 Red Hat Enterprise Linux 6 部署指南。有关随 Red Hat Software Collections 一起发布的 Software Collections 的完整列表,请参阅 表 1.1 “Red Hat Software Collections 3.2 组件”。
从 Red Hat Enterprise Linux 7 中的 Software Collection 运行系统服务
在 Red Hat Enterprise Linux 7 中,初始化脚本已被
systemd
服务单元文件替代,该文件以 .service
文件扩展结尾,并作为初始化脚本提供类似的目的。要在当前会话中启动服务,以 root
用户身份执行以下命令:
systemctl start software_collection-service_name.service
将 software_collection 替换为 Software Collection 和 service_name 的名称,作为您要启动的服务的名称。
要将此服务配置为在引导时自动启动,请以
root
用户身份输入以下命令:
systemctl enable software_collection-service_name.service
例如,要从 rh-
postgresql
10 Software Collection 启动 postgresql 服务并在引导时启用它,以 root
用户身份键入:
~]# systemctl start rh-postgresql10-postgresql.service ~]# systemctl enable rh-postgresql10-postgresql.service
有关如何在 Red Hat Enterprise Linux 7 中管理系统服务的更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南。有关随 Red Hat Software Collections 一起发布的 Software Collections 的完整列表,请参阅 表 1.1 “Red Hat Software Collections 3.2 组件”。
3.2. 从 Software Collection 访问 man page
每个 Software Collection 均包含一个常规手册页,用于描述此组件的内容。每个手册页的名称都与组件相同,它位于
/opt/rh
目录中。
要读取 Software Collection 的 man page,请输入以下命令:
scl enable software_collection 'man software_collection'
将 software_collection 替换为特定的 Red Hat Software Collections 组件。例如,要显示 rh-mariadb102 的手册页,请输入:
~]$ scl enable rh-mariadb102 "man rh-mariadb102"
3.3. 部署使用 Red Hat Software Collections 的应用程序
通常,您可以使用以下两种方法之一来部署依赖于生产环境中的 Red Hat Software Collections 组件的应用程序:
- 手动安装所有必需的 Software Collections 和软件包,然后部署应用程序,或者
- 为您的应用程序创建一个新的 Software Collection,并将所有必需的 Software Collections 和其他软件包指定为依赖项。
有关如何手动安装单独的 Red Hat Software Collections 组件的详情,请参考 第 2.2 节 “安装 Red Hat Software Collections”。有关如何使用 Red Hat Software Collections 的详情,请参考 第 3.1 节 “使用 Red Hat Software Collections”。有关如何创建自定义 Software Collection 或扩展现有软件集合的详细信息,请阅读 Red Hat Software Collections Packaging Guide。
3.4. Red Hat Software Collections 容器镜像
基于 Red Hat Software Collections 的容器镜像包括应用程序、守护进程和数据库。镜像可以在 Red Hat Enterprise Linux 7 服务器和 Red Hat Enterprise Linux Atomic Host 上运行。有关其用法的详情,请参考使用 Red Hat Software Collections 3 容器镜像。有关基于 Red Hat Software Collections 版本 2.4 及更早版本的容器镜像的详情,请参阅使用 Red Hat Software Collections 2 容器镜像。
Red Hat Software Collections 3.2 提供以下容器镜像:
- rhscl/devtoolset-8-toolchain-rhel7
- rhscl/devtoolset-8-perftools-rhel7
- rhscl/httpd-24-rhel7
- rhscl/mysql-80-rhel7
- rhscl/nginx-114-rhel7
- rhscl/php-72-rhel7
- rhscl/varnish-6-rhel7
以下容器镜像基于 Red Hat Software Collections 3.1:
- rhscl/devtoolset-7-toolchain-rhel7
- rhscl/devtoolset-7-perftools-rhel7
- rhscl/mongodb-36-rhel7
- rhscl/perl-526-rhel7
- rhscl/php-70-rhel7
- rhscl/postgresql-10-rhel7
- rhscl/ruby-25-rhel7
- rhscl/varnish-5-rhel7
以下容器镜像基于 Red Hat Software Collections 3.0:
- rhscl/mariadb-102-rhel7
- rhscl/mongodb-34-rhel7
- rhscl/nginx-112-rhel7
- rhscl/nodejs-8-rhel7
- rhscl/php-71-rhel7
- rhscl/postgresql-96-rhel7
- rhscl/python-36-rhel7
以下容器镜像基于 Red Hat Software Collections 2.4:
- rhscl/devtoolset-6-toolchain-rhel7 (EOL)
- rhscl/devtoolset-6-perftools-rhel7 (EOL)
- rhscl/nginx-110-rhel7
- rhscl/nodejs-6-rhel7
- rhscl/python-27-rhel7
- rhscl/ruby-24-rhel7
- rhscl/ror-50-rhel7
- rhscl/thermostat-16-agent-rhel7 (EOL)
- rhscl/thermostat-16-storage-rhel7 (EOL)
以下容器镜像基于 Red Hat Software Collections 2.3:
- rhscl/mysql-57-rhel7
- rhscl/perl-524-rhel7
- rhscl/redis-32-rhel7
- rhscl/mongodb-32-rhel7
- rhscl/php-56-rhel7 (EOL)
- rhscl/python-35-rhel7
- rhscl/ruby-23-rhel7
以下容器镜像基于 Red Hat Software Collections 2.2:
- rhscl/devtoolset-4-toolchain-rhel7 (EOL)
- rhscl/devtoolset-4-perftools-rhel7 (EOL)
- rhscl/mariadb-101-rhel7
- rhscl/nginx-18-rhel7 (EOL)
- rhscl/nodejs-4-rhel7 (EOL)
- rhscl/postgresql-95-rhel7
- rhscl/ror-42-rhel7
- rhscl/thermostat-1-agent-rhel7 (EOL)
- rhscl/varnish-4-rhel7 (EOL)
以下容器镜像基于 Red Hat Software Collections 2.0:
- rhscl/mariadb-100-rhel7 (EOL)
- rhscl/mongodb-26-rhel7 (EOL)
- rhscl/mysql-56-rhel7 (EOL)
- rhscl/nginx-16-rhel7 (EOL)
- rhscl/passenger-40-rhel7 (EOL)
- rhscl/perl-520-rhel7 (EOL)
- rhscl/postgresql-94-rhel7 (EOL)
- rhscl/python-34-rhel7 (EOL)
- rhscl/ror-41-rhel7 (EOL)
- rhscl/ruby-22-rhel7 (EOL)
- rhscl/s2i-base-rhel7
标记为"生命周期结束(EOL) "的镜像不再被支持。
第 4 章 独立 Software Collections 的具体信息
本章着重介绍了特定的 Software Collections 细节,并提供了有关这些组件的更多详情。
4.1. Red Hat Developer Toolset
Red Hat Developer Toolset 是为在 Red Hat Enterprise Linux 平台上工作的开发人员设计的。Red Hat Developer Toolset 提供 GNU Compiler Collection、GNU Debugger 和其他开发、调试和性能监控工具的当前版本。与其他 Software Collections 类似,还有一组额外的工具安装到
/opt/
目录中。这些工具由用户使用提供的 scl 工具根据需要启用。与其他 Software Collections 类似,它们不会替换这些工具的 Red Hat Enterprise Linux 系统版本,除非使用 scl 程序显式调用这些系统版本,它们不会被使用。
有关功能的概述,请参阅 Red Hat Developer Toolset 发行注记 的主功能 部分。
有关组件的完整列表,请参阅 Red Hat Developer Toolset 用户指南中的 Red Hat Developer Toolset 组件 表。
请注意,从 Red Hat Developer Toolset 3.1 开始,Red Hat Developer Toolset 需要 rh-java-common Software Collection。
4.2. Ruby on Rails 5.0
Red Hat Software Collections 3.2 提供 rh-ruby24 Software Collection 和 rh-ror50 Collection。
要安装 Ruby on Rails 5.0,以
root
用户身份运行以下命令:
yum install rh-ror50
从 rh-ror50 Software Collection 安装任何软件包,会自动拉取 rh-ruby24 和 rh-nodejs6 作为依赖项。
rh-nodejs6 Collection 由资产管道中的某些 gems 用于处理后 web 资源,如 sass 或 coffee-script 源文件。此外,Action Cable 框架使用 rh-nodejs6 来处理 Rails 中的
WebSocket
。
要运行 rails s 命令而无需 rh-nodejs6,请在
Gemfile
中禁用 coffee-rails 和 uglifier gems。
要在没有 Node.js 的情况下运行 Ruby on Rails,请运行以下命令,它将自动启用 rh-ruby24 :
scl enable rh-ror50 bash
要使用所有功能运行 Ruby on Rails,请同时启用 rh-nodejs6 Software Collection:
scl enable rh-ror50 rh-nodejs6 bash
rh-ror50 Software Collection 与 rh-ruby24 和 rh-nodejs6 组件一起被支持。
4.3. MongoDB 3.6
rh-mongodb36 Software Collection 仅适用于 Red Hat Enterprise Linux 7。有关如何在 Red Hat Enterprise Linux 6 中使用 MongoDB 3.4 的说明,请参阅 第 4.4 节 “MongoDB 3.4”。
要安装 rh-mongodb36 集合,请以
root
用户身份输入以下命令:
yum install rh-mongodb36
要运行 MongoDB shell 工具,请输入以下命令:
scl enable rh-mongodb36 'mongo'
注意
rh-mongodb36-mongo-cxx-driver 软件包已使用 Red Hat Developer Toolset 6 中的 GCC 使用
-std=gnu++14
选项构建。将共享库用于使用 C++11 (或更新版本)功能的 MongoDB C++ 驱动程序的二进制文件,还必须使用 Red Hat Developer Toolset 6 或更高版本构建。请参阅 Red Hat Developer Toolset 6 用户指南中的 C++ 兼容性详情。
要启动 MongoDB 守护进程,请以
root
用户身份输入以下命令:
systemctl start rh-mongodb36-mongod.service
要在引导时启动 MongoDB 守护进程,请以
root
身份输入这个命令:
systemctl enable rh-mongodb36-mongod.service
要启动 MongoDB 分片服务器,请以
root
用户身份输入以下命令:
systemctl start rh-mongodb36-mongos.service
要在引导时启动 MongoDB 分片服务器,以
root
身份输入这个命令:
systemctl enable rh-mongodb36-mongos.service
请注意,除非用户至少启动一个配置服务器并在
mongos.conf
文件中指定它,否则 MongoDB 分片服务器无法正常工作。
4.4. MongoDB 3.4
要安装 rh-mongodb34 集合,请以
root
用户身份输入以下命令:
yum install rh-mongodb34
要运行 MongoDB shell 工具,请输入以下命令:
scl enable rh-mongodb34 'mongo'
注意
rh-mongodb34-mongo-cxx-driver 软件包已使用 Red Hat Developer Toolset 6 中的 GCC 使用
-std=gnu++14
选项构建。使用使用 C++11 (或更新版本)功能的 MongoDB C++ 驱动程序的共享库进行二进制文件,还必须使用 Red Hat Developer Toolset 6 构建。请参阅 Red Hat Developer Toolset 6 用户指南中的 C++ 兼容性详情。
MongoDB 3.4 on Red Hat Enterprise Linux 6
如果您使用 Red Hat Enterprise Linux 6,以下指令适用于您的系统。
要启动 MongoDB 守护进程,请以
root
用户身份输入以下命令:
service rh-mongodb34-mongod start
要在引导时启动 MongoDB 守护进程,请以
root
身份输入这个命令:
chkconfig rh-mongodb34-mongod on
要启动 MongoDB 分片服务器,以
root
身份输入这个命令:
service rh-mongodb34-mongos start
要在引导时启动 MongoDB 分片服务器,请以
root
用户身份输入以下命令:
chkconfig rh-mongodb34-mongos on
请注意,除非用户至少启动一个配置服务器并在
mongos.conf
文件中指定它,否则 MongoDB 分片服务器无法正常工作。
MongoDB 3.4 on Red Hat Enterprise Linux 7
使用 Red Hat Enterprise Linux 7 时,可以使用以下命令:
要启动 MongoDB 守护进程,请以
root
用户身份输入以下命令:
systemctl start rh-mongodb34-mongod.service
要在引导时启动 MongoDB 守护进程,请以
root
身份输入这个命令:
systemctl enable rh-mongodb34-mongod.service
要启动 MongoDB 分片服务器,请以
root
用户身份输入以下命令:
systemctl start rh-mongodb34-mongos.service
要在引导时启动 MongoDB 分片服务器,以
root
身份输入这个命令:
systemctl enable rh-mongodb34-mongos.service
请注意,除非用户至少启动一个配置服务器并在
mongos.conf
文件中指定它,否则 MongoDB 分片服务器无法正常工作。
4.5. Maven
rh-maven35 Software Collection 仅适用于 Red Hat Enterprise Linux 7,提供了一个软件项目管理和理解工具。根据项目对象模型(POM)的概念,Maven 可以在中央信息中管理项目的构建、报告和文档。
要安装 rh-maven35 Collection,请以
root
用户身份运行以下命令:
yum install rh-maven35
要启用此集合,在 shell 提示符后输入以下命令:
scl enable rh-maven35 bash
全局 Maven 设置(如远程存储库或镜像)可以通过编辑
/opt/rh/rh-maven35/root/etc/maven/settings.xml
文件进行自定义。
有关使用 Maven 的更多信息,请参阅 Maven 文档。本节描述了插件的使用;要查找有关各个插件的文档,请参阅 插件的索引。https://maven.apache.org/guides/getting-started/index.html#how-do-i-use-plugins
4.6. Passenger
rh-passenger40 Software Collection 提供 Phusion Passenger,它是一个旨在快速、强大且轻量级的 Web 和应用服务器。
rh-passenger40 Collection 支持 Ruby 的多个版本,特别是 ruby193、ruby200 和 rh-ruby22 Software Collections,以及使用 ror40 或 rh-ror41 Collections 的 Ruby on Rails。在将 Passenger 与任何 Ruby Software Collections 搭配使用前,请先从 rh-passenger40 Collection 安装对应的软件包: rh-passenger-ruby193、rh-passenger-ruby200 或 rh-passenger-ruby22 软件包。
rh-passenger40 Software Collection 也可以与 httpd24 Software Collection 中的 Apache httpd 一起使用。为此,请安装 rh-passenger40-mod_passenger 软件包。对于 Apache httpd 配置示例,请参考默认配置文件
/opt/rh/httpd24/root/etc/httpd/conf.d/passenger.conf
,它演示了如何在单个 Apache httpd 实例中使用多个 Ruby 版本。
此外,rh-passenger40 Software Collection 可以和 nginx16 软件集合中的 nginx 1.6 web 服务器一起使用。要将 nginx 1.6 与 rh-passenger40 搭配使用,您可以在 web 应用请求的目录中以 Standalone 模式运行 Passenger :
scl enable nginx16 rh-passenger40 'passenger start'
或者,按照上游 Passenger 文档中所述编辑 nginx16 配置文件。
4.7. 数据库连接器
数据库连接器软件包提供数据库客户端功能,这是到数据库服务器的本地或远程连接所必需的。表 4.1 “语言和数据库间的互操作性” 使用包括特定数据库服务器连接器的语言运行时列出 Software Collections
- 支持 - 支持组合
- 否 - 不支持组合
表 4.1. 语言和数据库间的互操作性
数据库 | |||||
---|---|---|---|---|---|
语言(软件集合) | MariaDB | MongoDB | MySQL | PostgreSQL | Redis |
rh-nodejs4 | 否 | 否 | 否 | 否 | 否 |
rh-nodejs6 | 否 | 否 | 否 | 否 | 否 |
rh-nodejs8 | 否 | 否 | 否 | 否 | 否 |
rh-nodejs10 | 否 | 否 | 否 | 否 | 否 |
rh-perl520 | 是 | 否 | 是 | 是 | 否 |
rh-perl524 | 是 | 否 | 是 | 是 | 否 |
rh-perl526 | 是 | 否 | 是 | 是 | 否 |
rh-php56 | 是 | 是 | 是 | 是 | 否 |
rh-php70 | 是 | 否 | 是 | 是 | 否 |
rh-php71 | 是 | 否 | 是 | 是 | 否 |
rh-php72 | 是 | 否 | 是 | 是 | 否 |
python27 | 是 | 是 | 是 | 是 | 否 |
rh-python34 | 否 | 是 | 否 | 是 | 否 |
rh-python35 | 是 | 是 | 是 | 是 | 否 |
rh-python36 | 是 | 是 | 是 | 是 | 否 |
rh-ror41 | 是 | 是 | 是 | 是 | 否 |
rh-ror42 | 是 | 是 | 是 | 是 | 否 |
rh-ror50 | 是 | 是 | 是 | 是 | 否 |
rh-ruby25 | 是 | 是 | 是 | 是 | 否 |
第 5 章 Migration(迁移)
本章提供有关迁移到 Red Hat Software Collections 3.2 中包含的组件版本的信息。
5.1. 迁移到 MariaDB 10.2
Red Hat Enterprise Linux 6 包含 MySQL 5.1,作为默认的 MySQL 实现。Red Hat Enterprise Linux 7 包括 MariaDB 5.5 作为默认的 MySQL 实现。MariaDB 是社区开发的 MySQL 的简易替代品。自 Red Hat Software Collections 2.2 开始,MariaDB 10.1 作为一个 Software Collection 提供;Red Hat Software Collections 3.2 提供了 MariaDB 10.2。
rh-mariadb102 Software Collection 适用于 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7,与核心系统的 mysql 或 mariadb 软件包不会冲突,因此可以一起安装 rh-mariadb102 Software Collection 和 mysql 或 mariadb 软件包。也可以同时运行这两个版本,但
my.cnf
文件中的端口号和套接字需要更改,以防止这些特定资源冲突。此外,还可以安装 rh-mariadb102 Software Collection,而 rh-mariadb101 Collection 仍已安装甚至正在运行。
请注意,如果您使用 MariaDB 5.5 或 MariaDB 10.0,首先需要升级到 rh-mariadb101 Software Collection,这在 Red Hat Software Collections 2.4 发行注记 中进行了描述。
注意
rh-mariadb102 Software Collection 支持使用 scl register 命令通过 NFS 挂载,也不支持使用 scl register 命令进行动态注册。
5.1.1. rh-mariadb101 和 rh-mariadb102 Software Collections 之间的显著差异
MariaDB 10.2 的主要变化在 Red Hat Software Collections 3.0 发行注记 中进行了描述。
多个选项更改了其默认值,或者已弃用或删除。详情请查看 从 MariaDB 10.1 迁移到 MariaDB 10.2 Software Collection 的知识库文章。
rh-mariadb102 Software Collection 包括 rh-mariadb102-syspaths 软件包,它将安装为二进制文件、脚本、手册页和其他提供系统范围打包程序的软件包。安装 rh-mariadb102*-syspaths 软件包后,用户不需要使用 scl enable 命令对 rh-mariadb102* 软件包提供的二进制文件和脚本正常工作。请注意,*-syspaths 软件包与基本 Red Hat Enterprise Linux 系统中的对应软件包冲突。要了解更多有关 syspaths 的信息,请参阅 Red Hat Software Collections Packaging Guide。
5.1.2. 从 rh-mariadb101 升级到 rh-mariadb102 Software Collection
重要
在升级前,备份所有数据,包括任何 MariaDB 数据库。
- 如果 rh-mariadb101 数据库服务器仍在运行,请停止它。在停止服务器前,将
innodb_fast_shutdown
选项设置为0,
以便InnoDB
执行缓慢关闭,包括完整清除和插入缓冲区合并。在 上游文档 中了解更多有关此选项的信息。这个操作的时间可能比正常关闭的时间要长。mysql -uroot -p -e "SET GLOBAL innodb_fast_shutdown = 0"
停止 rh-mariadb101 服务器。service rh-mariadb101-mariadb stop
- 安装 rh-mariadb102 Software Collection。
yum install rh-mariadb102-mariadb-server
请注意,可以在仍然安装 rh-mariadb101 Software Collection 时安装 rh-mariadb102 Software Collection,因为这些集合不会冲突。 - 检查 rh-mariadb102 的配置,它存储在
/etc/opt/rh/rh-mariadb102/my.cnf
文件和/etc/opt/rh/rh-mariadb102/my.cnf.d/
目录中。将其与存储在 /etc/opt/rh/ rh-mariadb101 /my.cnf 和/
配置进行比较,并根据需要进行调整。etc/opt/rh/rh-mariadb101/my.cnf
.d/ 中的 rh-mariadb101 - rh-mariadb101 Software Collection 的所有数据存储在
/var/opt/rh/rh-mariadb101/lib/mysql/
目录中,除非进行了不同。将该目录的整个内容复制到/var/opt/rh/rh-mariadb102/lib/mysql/
。您可以移动内容,但要记住在继续升级前备份数据。确保数据归mysql
用户和 SELinux 上下文所有。 - 启动 rh-mariadb102 数据库服务器。
service rh-mariadb102-mariadb start
- 执行数据迁移。
scl enable rh-mariadb102 mysql_upgrade
如果root
用户定义了非空密码(应该定义了密码),则需要使用-p
选项调用 mysql_upgrade 工具并指定密码。scl enable rh-mariadb102 -- mysql_upgrade -p
5.2. 迁移到 MySQL 8.0
rh-mysql80 Software Collection 适用于 Red Hat Enterprise Linux 7,其中包括 MariaDB 5.5 作为默认的 MySQL 实施。
rh-mysql80 Software Collection 不与来自核心系统的 mysql 或 mariadb 软件包以及 rh-mysql* 或 rh-mariadb* Software Collections 冲突。也可以同时运行多个版本;但是,需要更改
my.cnf
文件中的端口号和套接字,以防止这些特定资源冲突。
请注意,只能从 MySQL 5.7 升级到 MySQL 8.0。如果您需要从早期版本升级,请首先升级到 MySQL 5.7。第 5.3 节 “迁移到 MySQL 5.7” 中提供了有关如何升级到 MySQL 5.7 的说明。
5.2.1. MySQL 5.7 和 MySQL 8.0 之间的显著差异
特定于 rh-mysql80 Software Collection 的不同
- rh-mysql80 Software Collection 提供的 MySQL 8.0 服务器被配置为使用
mysql_native_password
作为默认身份验证插件,因为 Red Hat Enterprise Linux 7 中的客户端工具和库与caching_sha2_password
方法不兼容,后者在上游 MySQL 8.0 版本中默认使用。要将默认身份验证插件更改为caching_sha2_password
,请编辑/etc/opt/rh/rh-mysql80/my.cnf.d/mysql-default-authentication-plugin.cnf
文件:[mysqld] default_authentication_plugin=caching_sha2_password
有关caching_sha2_password
身份验证插件的更多信息,请参阅上游文档。 - rh-mysql80 Software Collection 包含 rh-mysql80-syspaths 软件包,它将安装 rh-mysql80-mysql-config-syspaths,rh-mysql80-mysql-syspaths, 和 rh-mysql80-mysql-syspaths 软件包。这些子软件包为二进制文件、脚本、手册页和其他提供系统范围的打包程序。安装 rh-mysql80*-syspaths 软件包后,用户不需要使用 scl enable 命令对 rh-mysql80* 软件包提供的二进制文件和脚本正常工作。请注意,*-syspaths 软件包与基础 Red Hat Enterprise Linux 系统以及 rh-mariadb102 Software Collection 的对应软件包冲突。要了解更多有关 syspaths 的信息,请参阅 Red Hat Software Collections Packaging Guide。
MySQL 8.0中的常规更改
- 在服务器启动期间,默认启用二进制日志记录。现在,
log_bin
系统变量默认被设置为ON
,即使没有指定--log-bin
选项。要禁用二进制日志记录,请在启动时指定--skip-log-bin
或--disable-log-bin
选项。 - 要接受
CREATE FUNCTION
语句,必须至少指定DETERMINISTIC
、NO SQL
或READS SQL DATA
关键字,否则必须明确指定错误。 - 与帐户管理相关的某些功能已被删除。即,使用
GRANT
语句修改特权分配以外的帐户属性,如身份验证、SSL 和 resource-limit 等。要在创建 account-creation 时建立上述属性,请使用CREATE USER
语句。要修改这些属性,请使用ALTER USER
语句。 - 客户端中删除了某些与 SSL 相关的选项。使用
--ssl-mode=REQUIRED
选项,而不是--ssl=1
或--enable-ssl
。使用--ssl-mode=DISABLED
选项,而不是--ssl=0
、--skip-ssl
或--disable-ssl
。使用--ssl-mode=VERIFY_IDENTITY
选项而不是--ssl-verify-server-cert
选项。请注意,这些选项在服务器端保持不变。 - 默认字符集已从
latin1
改为utf8mb4
。 utf8
字符集目前是utf8mb3
的别名,但将来它将成为utf8mb4
的引用。要防止不确定性,请为字符集引用(而不是 utf8)明确指定utf8
mb4- 在
SET
以外的声明中设置用户变量已被弃用。 log_syslog
变量之前配置了到系统日志的错误日志记录,它已被删除。- 引入了对空间数据支持的某些不兼容的更改。
GROUP BY
子句的已弃用的ASC
或DESC
限定符已被删除。要生成指定的排序顺序,请提供ORDER BY
子句。
5.2.2. 升级到 rh-mysql80 Software Collection
重要
在升级前,备份所有数据,包括任何 MySQL 数据库。
- 安装 rh-mysql80 Software Collection。
yum install rh-mysql80-mysql-server
- 检查 rh-mysql80 的配置,它存储在
/etc/opt/rh/rh-mysql80/my.cnf
文件中,以及/etc/opt/rh/rh-mysql80/my.cnf.d/
目录中。将它与存储在 /etc/opt/rh/ rh-mysql57 /my.cnf 和/etc/opt/rh/rh-mysql57
的配置进行比较,并在需要时进行调整。/my.cnf
.d/ 中的 rh-mysql57/my.cnf.d/ - 如果 rh-mysql57 数据库服务器仍在运行,请停止它。
systemctl stop rh-mysql57-mysqld.service
- rh-mysql57 Software Collection 的所有数据存储在
/var/opt/rh/rh-mysql57/lib/mysql/
目录中。将该目录的整个内容复制到/var/opt/rh/rh-mysql80/lib/mysql/
。您还可以移动内容,但记得在继续升级前备份数据。 - 启动 rh-mysql80 数据库服务器。
systemctl start rh-mysql80-mysqld.service
- 执行数据迁移。
scl enable rh-mysql80 mysql_upgrade
如果root
用户定义了非空密码(应该定义了密码),则需要使用-p
选项调用 mysql_upgrade 工具并指定密码。scl enable rh-mysql80 -- mysql_upgrade -p
请注意,当安装 rh-mysql80*-syspaths 软件包时,不需要 scl enable 命令。但是,*-syspaths 软件包与基础 Red Hat Enterprise Linux 系统以及 rh-mariadb102 Software Collection 的对应软件包冲突。
5.3. 迁移到 MySQL 5.7
Red Hat Enterprise Linux 6 包含 MySQL 5.1,作为默认的 MySQL 实现。Red Hat Enterprise Linux 7 包括 MariaDB 5.5 作为默认的 MySQL 实现。除了这些基本版本外,自 Red Hat Software Collections 2.0 开始,MySQL 5.6 也可作为 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 的 Software Collection 提供。
文档
rh- mysql 57 Software Collection 适用于 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7,都不能与来自核心系统的 mysql 或 mariadb 软件包冲突,也无法与 rh-mysql56 Software Collection 一起安装 rh-mysql 57 Software Collection。也可以同时运行多个版本;但是,需要更改
my.cnf
文件中的端口号和套接字,以防止这些特定资源冲突。
请注意,只能从 MySQL 5.6 升级到 MySQL 5.7。如果您需要从早期版本升级,请首先升级到 MySQL 5.6。Red Hat Software Collections 2.2 发行注记中 提供了有关如何升级到 MySQL 5.6 的说明。
5.3.1. MySQL 5.6 和 MySQL 5.7 之间的显著差异
- rh-mysql57 Software Collection 不包含 mysql-bench 子软件包。
- 自 MySQL 5.7.7 起,默认的 SQL 模式包含
NO_AUTO_CREATE_USER
。因此,需要使用CREATE USER
语句创建 MySQL 帐户,因为GRANT
语句不再默认创建用户。详情请查看上游文档。http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html
5.3.2. 升级到 rh-mysql57 Software Collection
重要
在升级前,备份所有数据,包括任何 MySQL 数据库。
- 安装 rh-mysql57 Software Collection。
yum install rh-mysql57-mysql-server
- 检查 rh-mysql57 的配置,它存储在
/etc/opt/rh/rh-mysql57/my.cnf
文件中,以及/etc/opt/rh/rh-mysql57/my.cnf.d/
目录中。将它与存储在 /etc/opt/rh/ rh-mysql56 /my.cnf 和/etc/opt/rh/rh-mysql56
的配置进行比较,并根据需要进行调整。/my.cnf
.d/ 中的 rh-mysql56/my.cnf.d/ - 如果 rh-mysql56 数据库服务器仍在运行,请停止它。
service rh-mysql56-mysqld stop
- rh-mysql56 Software Collection 的所有数据存储在
/var/opt/rh/rh-mysql56/lib/mysql/
目录中。将该目录的整个内容复制到/var/opt/rh/rh-mysql57/lib/mysql/
。您还可以移动内容,但记得在继续升级前备份数据。 - 启动 rh-mysql57 数据库服务器。
service rh-mysql57-mysqld start
- 执行数据迁移。
scl enable rh-mysql57 mysql_upgrade
如果root
用户定义了非空密码(应该定义了密码),则需要使用-p
选项调用 mysql_upgrade 工具并指定密码。scl enable rh-mysql57 -- mysql_upgrade -p
5.4. 迁移到 MongoDB 3.6
Red Hat Software Collections 3.2 带有 MongoDB 3.6,由 rh-mongodb36 Software Collection 提供,并仅适用于 Red Hat Enterprise Linux 7。
rh-mongodb36 Software Collection 包括 rh-mongodb36-syspaths 软件包,它安装为二进制文件、脚本、手册页和其他提供系统范围打包程序的软件包。安装 rh-mongodb36*-syspaths 软件包后,用户不需要使用 scl enable 命令对 rh-mongodb36* 软件包提供的二进制文件和脚本正常工作。要了解更多有关 syspaths 的信息,请参阅 Red Hat Software Collections Packaging Guide。
5.4.1. MongoDB 3.4 和 MongoDB 3.6 之间的显著差异
常规更改
rh-mongodb36 Software Collection 包括以下显著的常规更改:
- 在 Non-Uniform Access Memory (NUMA)硬件上,可以将
systemd
服务配置为使用 numactl 命令启动;请参阅 上游建议。要将 MongoDB 与 numactl 命令搭配使用,您需要安装 numactl RPM 软件包,并相应地更改/etc/opt/rh/rh-mongodb36/sysconfig/mongod
和/etc/opt/rh/rh-mongodb36/sysconfig/mongos
配置文件。
兼容性更改
MongoDB 3.6 包括各种小更改,可能会影响与以前版本的 MongoDB 的兼容性:
- MongoDB 二进制文件现在默认绑定到
localhost
,因此需要明确启用侦听不同的 IP 地址。请注意,这已经是 MongoDB Software Collections 发布的systemd
服务的默认行为。 - MONGODB-CR 身份验证机制已弃用。对于由 3.0 之前的 MongoDB 版本创建的用户的数据库,请将身份验证模式升级到 SCRAM。
- HTTP 接口和 REST API 已被删除
- 副本集中的仲裁程序具有优先级
0
- master-slave 复制已被弃用
有关 MongoDB 3.6 的详细兼容性更改,请参阅 上游发行注记。
后向兼容功能
以下 MongoDB 3.6 功能向后兼容,需要使用 featureCompatibilityVersion 命令将版本 设置为 3.6:
- 集合的 UUID
$jsonschema
文档验证- 更改流
- 块了解第二个工具
- 查看使用版本 3.6 查询功能的定义、文档验证器和部分索引过滤器
- 会话和可重试写入
- 带有
authenticationRestrictions
的用户和角色
有关 MongoDB 3.6 中向后兼容更改的详情,请查看 上游发行注记。
5.4.2. 从 rh-mongodb34 升级到 rh-mongodb36 Software Collection
重要
在从 rh-mongodb34 迁移到 rh-mongodb36 Software Collection 之前,请备份所有数据,包括任何 MongoDB 数据库,这些数据库默认存储在
/var/opt/rh/rh-mongodb34/lib/mongodb/
目录中。另外,请参阅 兼容性更改 以确保应用程序和部署与 MongoDB 3.6 兼容。
要升级到 rh-mongodb36 Software Collection,请执行以下步骤。
- 要进行升级,rh-mongodb34 实例必须将
featureCompatibilityVersion
设置为3.4
。检查featureCompatibilityVersion
:~]$ scl enable rh-mongodb34 'mongo --host localhost --port 27017 admin' --eval 'db.adminCommand({getParameter: 1, featureCompatibilityVersion: 1})'
如果mongod
服务器配置有启用的访问控制,请在 mongo 命令中添加--username
和--password
选项。 - 从 rh-mongodb36 Software Collections 安装 MongoDB 服务器和 shell:
~]# yum install rh-mongodb36
- 停止 MongoDB 3.4 服务器:
~]# systemctl stop rh-mongodb34-mongod.service
- 将数据复制到新位置:
~]# cp -a /var/opt/rh/rh-mongodb34/lib/mongodb/* /var/opt/rh/rh-mongodb36/lib/mongodb/
- 在
/etc/opt/rh/rh-mongodb36/mongod.conf
文件中配置rh-mongodb36-mongod
守护进程。 - 启动 MongoDB 3.6 服务器:
~]# systemctl start rh-mongodb36-mongod.service
- 启用向后不兼容的功能:
~]$ scl enable rh-mongodb36 'mongo --host localhost --port 27017 admin' --eval 'db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )'
如果mongod
服务器配置有启用的访问控制,请在 mongo 命令中添加--username
和--password
选项。注意升级后,建议首先运行部署,而不为刻录的周期启用后不兼容的功能,以最大程度降低降级的可能性。
有关升级的详情,请查看 上游发行注记。
有关升级 Replica Set 的详情,请参考上游 MongoDB Manual。
有关升级 Sharded 集群的详情,请参考上游 MongoDB Manual。
5.5. 迁移到 MongoDB 3.4
rh-mongodb34 Software Collection 适用于 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7,提供 MongoDB 3.4。
5.5.1. MongoDB 3.2 和 MongoDB 3.4 之间的显著差异
常规更改
rh-mongodb34 Software Collection 引进了各种常规更改。知识库文章 Migrating from MongoDB 3.2 to MongoDB 3.4 一书中列出了主要变化。有关详细更改,请参阅 上游发行注记。
此外,这个 Software Collection 中包含 rh-mongodb34-syspaths 软件包,它安装为二进制文件、脚本、手册页和其他提供系统范围打包程序的软件包。安装 rh-mongodb34*-syspaths 软件包后,用户不需要使用 scl enable 命令对 rh-mongodb34* 软件包提供的二进制文件和脚本正常工作。要了解更多有关 syspaths 的信息,请参阅 Red Hat Software Collections Packaging Guide。
兼容性更改
MongoDB 3.4 包括各种小更改,可能会影响与以前版本的 MongoDB 的兼容性。详情请查看 从 MongoDB 3.2 迁移到 MongoDB 3.4 和上游文档 的知识库文章。https://docs.mongodb.com/manual/release-notes/3.4-compatibility/
值得注意的是,以下 MongoDB 3.4 功能会向后兼容,需要使用
featureCompatibilityVersion
命令将版本设置为 3.4
:
- 支持从现有集合或其他视图中创建只读视图
- 索引版本
v:2
,它添加了对协调、十进制数据和区分大小写的索引的支持 - 支持带有新
十进制数据类型
格式的十进制
128
有关 MongoDB 3.4 中向后兼容更改的详情,请查看 上游发行注记。
5.5.2. 从 rh-mongodb32 升级到 rh-mongodb34 Software Collection
请注意,在升级到 MongoDB 3.4 并使用新功能启动后,无法降级到 3.2.7 或更早版本。您只能降级为 3.2.8 或更高版本。
重要
在从 rh-mongodb32 迁移到 rh-mongodb34 Software Collection 之前,请备份所有数据,包括任何 MongoDB 数据库,这些数据库默认存储在
/var/opt/rh/rh-mongodb32/lib/mongodb/
目录中。另外,请参阅兼容性更改,以确保应用程序和部署与 MongoDB 3.4 兼容。
要升级到 rh-mongodb34 Software Collection,请执行以下步骤:
- 从 rh-mongodb34 Software Collections 安装 MongoDB 服务器和 shell:
~]# yum install rh-mongodb34
- 停止 MongoDB 3.2 服务器:
~]# systemctl stop rh-mongodb32-mongod.service
在 Red Hat Enterprise Linux 6 系统上使用 服务 rh-mongodb32-mongodb stop 命令。 - 将数据复制到新位置:
~]# cp -a /var/opt/rh/rh-mongodb32/lib/mongodb/* /var/opt/rh/rh-mongodb34/lib/mongodb/
- 在
/etc/opt/rh/rh-mongodb34/mongod.conf
文件中配置rh-mongodb34-mongod
守护进程。 - 启动 MongoDB 3.4 服务器:
~]# systemctl start rh-mongodb34-mongod.service
在 Red Hat Enterprise Linux 6 上,改为使用服务 rh-mongodb34-mongodb start 命令。 - 启用向后兼容的功能:
~]$ scl enable rh-mongodb34 'mongo --host localhost --port 27017 admin' --eval 'db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )'
如果mongod
服务器配置有启用的访问控制,请将--username
和--password
选项添加到 mongo 命令。请注意,建议您在升级后运行部署,而不先启用这些功能。
有关升级的详情,请查看 上游发行注记。
有关升级 Replica Set 的详情,请参考上游 MongoDB Manual。
有关升级 Sharded 集群的详情,请参考上游 MongoDB Manual。
5.6. 迁移到 PostgreSQL 10
Red Hat Software Collections 3.2 带有 PostgreSQL 10,仅适用于 Red Hat Enterprise Linux 7。rh-postgresql10 Software Collection 可以与 PostgreSQL 基本或任何 PostgreSQL Software Collection 并行安装在同一台机器上。也可以同时在一台机器上运行多个 PostgreSQL 版本,但您需要使用不同的端口或 IP 地址并调整 SELinux 策略。有关如何迁移到较早版本或使用 Red Hat Enterprise Linux 6 时,请参阅 第 5.7 节 “迁移到 PostgreSQL 9.6”。
rh-postgresql10 Software Collection 包括 rh-postgresql10-syspaths 软件包,它安装为二进制文件、脚本、手册页和其他提供系统范围打包程序的软件包。安装 rh-postgreqsl10*-syspaths 软件包后,用户不需要使用 scl enable 命令对 rh-postgreqsl10* 软件包提供的二进制文件和脚本正常工作。请注意,*-syspaths 软件包与基本 Red Hat Enterprise Linux 系统中的对应软件包冲突。要了解更多有关 syspaths 的信息,请参阅 Red Hat Software Collections Packaging Guide。
重要
在迁移到 PostgreSQL 10 之前,请查看上游兼容性备注。
下表提供了 postgresql 软件包提供的 PostgreSQL 的 Red Hat Enterprise Linux 7 系统版本以及 rh- postgresql 96 和 rh-postgresql10 Software Colections 中的不同路径的概述。
表 5.1. PostgreSQL 路径中的 Diferences
内容 | postgresql | rh-postgresql96 | rh-postgresql10 |
---|---|---|---|
可执行文件 | /usr/bin/ | /opt/rh/rh-postgresql96/root/usr/bin/ | /opt/rh/rh-postgresql10/root/usr/bin/ |
libraries | /usr/lib64/ | /opt/rh/rh-postgresql96/root/usr/lib64/ | /opt/rh/rh-postgresql10/root/usr/lib64/ |
Documentation | /usr/share/doc/postgresql/html/ | /opt/rh/rh-postgresql96/root/usr/share/doc/postgresql/html/ | /opt/rh/rh-postgresql10/root/usr/share/doc/postgresql/html/ |
PDF 文档 | /usr/share/doc/postgresql-docs/ | /opt/rh/rh-postgresql96/root/usr/share/doc/postgresql-docs/ | /opt/rh/rh-postgresql10/root/usr/share/doc/postgresql-docs/ |
contrib 文档 | /usr/share/doc/postgresql-contrib/ | /opt/rh/rh-postgresql96/root/usr/share/doc/postgresql-contrib/ | /opt/rh/rh-postgresql10/root/usr/share/doc/postgresql-contrib/ |
源 | 未安装 | 未安装 | 未安装 |
data | /var/lib/pgsql/data/ | /var/opt/rh/rh-postgresql96/lib/pgsql/data/ | /var/opt/rh/rh-postgresql10/lib/pgsql/data/ |
备份区域 | /var/lib/pgsql/backups/ | /var/opt/rh/rh-postgresql96/lib/pgsql/backups/ | /var/opt/rh/rh-postgresql10/lib/pgsql/backups/ |
模板 | /usr/share/pgsql/ | /opt/rh/rh-postgresql96/root/usr/share/pgsql/ | /opt/rh/rh-postgresql10/root/usr/share/pgsql/ |
流程语言 | /usr/lib64/pgsql/ | /opt/rh/rh-postgresql96/root/usr/lib64/pgsql/ | /opt/rh/rh-postgresql10/root/usr/lib64/pgsql/ |
开发标头 | /usr/include/pgsql/ | /opt/rh/rh-postgresql96/root/usr/include/pgsql/ | /opt/rh/rh-postgresql10/root/usr/include/pgsql/ |
其他共享数据 | /usr/share/pgsql/ | /opt/rh/rh-postgresql96/root/usr/share/pgsql/ | /opt/rh/rh-postgresql10/root/usr/share/pgsql/ |
回归测试 | /usr/lib64/pgsql/test/regress/ (in the -test package) | /opt/rh/rh-postgresql96/root/usr/lib64/pgsql/test/regress/ (in the -test package) | /opt/rh/rh-postgresql10/root/usr/lib64/pgsql/test/regress/ (in the -test package) |
5.6.1. 从 Red Hat Enterprise Linux System 版本的 PostgreSQL 迁移到 PostgreSQL 10 Software Collection
Red Hat Enterprise Linux 7 带有 PostgreSQL 9.2。要将数据从 PostgreSQL 的 Red Hat Enterprise Linux 系统版本迁移到 rh-postgresql10 Software Collection,您可以使用
pg_upgrade
工具(推荐)执行快速升级,或使用 SQL 命令将数据库数据转储到文本文件中,并在新数据库中导入它。请注意,第二个方法通常非常慢,可能需要手动修复;有关此升级方法的更多信息,请参阅 PostgreSQL 文档。
重要
在将数据从 PostgreSQL 的 Red Hat Enterprise Linux 系统版本迁移到 PostgreSQL 10 之前,请确保备份所有数据,包括 PostgreSQL 数据库文件,这些文件默认位于
/var/lib/pgsql/data/
目录中。
过程 5.1. 使用 pg_upgrade
工具快速升级
要执行 PostgreSQL 服务器的快速升级,请完成以下步骤:
- 停止旧的 PostgreSQL 服务器,以确保数据不处于不一致的状态。要做到这一点,以
root
用户身份在 shell 提示符后输入以下内容:systemctl stop postgresql.service
要验证服务器是否正在运行,请键入:systemctl status postgresql.service
- 验证旧目录
/var/lib/pgsql/data/
是否存在:file /var/lib/pgsql/data/
并备份您的数据。 - 验证新数据目录
/var/opt/rh/rh-postgresql10/lib/pgsql/data/
不存在:file /var/opt/rh/rh-postgresql10/lib/pgsql/data/
如果您正在运行一个全新的 PostgreSQL 10 安装,则系统中不存在此目录。如果是,请以root
用户身份运行以下命令备份它:mv /var/opt/rh/rh-postgresql10/lib/pgsql/data{,-scl-backup}
- 以
root
用户身份运行以下命令来升级新服务器的数据库数据:scl enable rh-postgresql10 -- postgresql-setup --upgrade
另外,您可以使用 /opt/rh/rh-postgresql10/root/usr/bin/postgresql-setup --upgrade 命令。请注意,您可以使用--upgrade-from
选项从不同的 PostgreSQL 版本升级。可以使用--upgrade-ids
选项获得可能的升级场景列表。建议您读取生成的/var/lib/pgsql/upgrade_rh-postgresql10-postgresql.log
日志文件,以了解升级过程中是否存在任何问题。 - 以
root
用户身份启动新服务器:systemctl start rh-postgresql10-postgresql.service
另外,建议您运行analyze_new_cluster.sh
脚本,如下所示:su - postgres -c 'scl enable rh-postgresql10 ~/analyze_new_cluster.sh'
- 另外,您可以将 PostgreSQL 10 服务器配置为在引导时自动启动。要禁用旧的系统 PostgreSQL 服务器,以
root
用户身份运行以下命令:chkconfig postgresql off
要启用 PostgreSQL 10 服务器,以root
用户身份键入:chkconfig rh-postgresql10-postgresql on
- 如果您的配置与默认文件不同,请确保更新配置文件,特别是
/var/opt/rh/rh-postgresql10/lib/pgsql/data/pg_hba.conf
配置文件。否则,只有postgres
用户才能访问数据库。
过程 5.2. 执行转储和恢复升级
要执行 PostgreSQL 服务器的转储和恢复升级,请完成以下步骤:
- 以
root
用户身份在 shell 提示符后输入以下内容来确保旧的 PostgreSQL 服务器正在运行:systemctl start postgresql.service
- 将 PostgreSQL 数据库中的所有数据转储到脚本文件中。以
root
用户身份,输入:su - postgres -c 'pg_dumpall > ~/pgdump_file.sql'
- 以
root
用户身份运行以下命令来停止旧服务器:systemctl stop postgresql.service
- 以
root
用户身份初始化新服务器的数据目录:scl enable rh-postgresql10-postgresql -- postgresql-setup --initdb
- 以
root
用户身份启动新服务器:systemctl start rh-postgresql10-postgresql.service
- 从之前创建的 SQL 文件中导入数据:
su - postgres -c 'scl enable rh-postgresql10 "psql -f ~/pgdump_file.sql postgres"'
- 另外,您可以将 PostgreSQL 10 服务器配置为在引导时自动启动。要禁用旧的系统 PostgreSQL 服务器,以
root
用户身份运行以下命令:chkconfig postgresql off
要启用 PostgreSQL 10 服务器,以root
用户身份键入:chkconfig rh-postgresql10-postgresql on
- 如果您的配置与默认文件不同,请确保更新配置文件,特别是
/var/opt/rh/rh-postgresql10/lib/pgsql/data/pg_hba.conf
配置文件。否则,只有postgres
用户才能访问数据库。
5.6.2. 从 PostgreSQL 9.6 Software Collection 迁移到 PostgreSQL 10 Software Collection
要将数据从 rh-postgresql96 Software Collection 迁移到 rh-postgresql10 Collection,您可以使用
pg_upgrade
工具(推荐)执行快速升级,或使用 SQL 命令将数据库数据转储到文本文件中,并在新数据库中导入它。请注意,第二个方法通常非常慢,可能需要手动修复;有关此升级方法的更多信息,请参阅 PostgreSQL 文档。
重要
在将数据从 PostgreSQL 9.6 迁移到 PostgreSQL 10 之前,请确保备份所有数据,包括 PostgreSQL 数据库文件,这些文件默认位于
/var/opt/rh/rh-postgresql96/lib/pgsql/data/
目录中。
过程 5.3. 使用 pg_upgrade
工具快速升级
要执行 PostgreSQL 服务器的快速升级,请完成以下步骤:
- 停止旧的 PostgreSQL 服务器,以确保数据不处于不一致的状态。要做到这一点,以
root
用户身份在 shell 提示符后输入以下内容:systemctl stop rh-postgresql96-postgresql.service
要验证服务器是否正在运行,请键入:systemctl status rh-postgresql96-postgresql.service
- 验证旧目录
/var/opt/rh/rh-postgresql96/lib/pgsql/data/
是否存在:file /var/opt/rh/rh-postgresql96/lib/pgsql/data/
并备份您的数据。 - 验证新数据目录
/var/opt/rh/rh-postgresql10/lib/pgsql/data/
不存在:file /var/opt/rh/rh-postgresql10/lib/pgsql/data/
如果您正在运行一个全新的 PostgreSQL 10 安装,则系统中不存在此目录。如果是,请以root
用户身份运行以下命令备份它:mv /var/opt/rh/rh-postgresql10/lib/pgsql/data{,-scl-backup}
- 以
root
用户身份运行以下命令来升级新服务器的数据库数据:scl enable rh-postgresql10 -- postgresql-setup --upgrade --upgrade-from=rh-postgresql96-postgresql
另外,您可以使用 /opt/rh/rh-postgresql10/root/usr/bin/postgresql-setup --upgrade --upgrade-from=rh-postgresql96-postgresql 命令。请注意,您可以使用--upgrade-from
选项来从不同版本的 PostgreSQL 升级。可以使用--upgrade-ids
选项获得可能的升级场景列表。建议您读取生成的/var/lib/pgsql/upgrade_rh-postgresql10-postgresql.log
日志文件,以了解升级过程中是否存在任何问题。 - 以
root
用户身份启动新服务器:systemctl start rh-postgresql10-postgresql.service
另外,建议您运行analyze_new_cluster.sh
脚本,如下所示:su - postgres -c 'scl enable rh-postgresql10 ~/analyze_new_cluster.sh'
- 另外,您可以将 PostgreSQL 10 服务器配置为在引导时自动启动。要禁用旧的 PostgreSQL 9.6 服务器,请以
root
用户身份输入以下命令:chkconfig rh-postgresql96-postgreqsql off
要启用 PostgreSQL 10 服务器,以root
用户身份键入:chkconfig rh-postgresql10-postgresql on
- 如果您的配置与默认文件不同,请确保更新配置文件,特别是
/var/opt/rh/rh-postgresql10/lib/pgsql/data/pg_hba.conf
配置文件。否则,只有postgres
用户才能访问数据库。
过程 5.4. 执行转储和恢复升级
要执行 PostgreSQL 服务器的转储和恢复升级,请完成以下步骤:
- 以
root
用户身份在 shell 提示符后输入以下内容来确保旧的 PostgreSQL 服务器正在运行:systemctl start rh-postgresql96-postgresql.service
- 将 PostgreSQL 数据库中的所有数据转储到脚本文件中。以
root
用户身份,输入:su - postgres -c 'scl enable rh-postgresql96 "pg_dumpall > ~/pgdump_file.sql"'
- 以
root
用户身份运行以下命令来停止旧服务器:systemctl stop rh-postgresql96-postgresql.service
- 以
root
用户身份初始化新服务器的数据目录:scl enable rh-postgresql10-postgresql -- postgresql-setup --initdb
- 以
root
用户身份启动新服务器:systemctl start rh-postgresql10-postgresql.service
- 从之前创建的 SQL 文件中导入数据:
su - postgres -c 'scl enable rh-postgresql10 "psql -f ~/pgdump_file.sql postgres"'
- 另外,您可以将 PostgreSQL 10 服务器配置为在引导时自动启动。要禁用旧的 PostgreSQL 9.6 服务器,请以
root
用户身份输入以下命令:chkconfig rh-postgresql96-postgresql off
要启用 PostgreSQL 10 服务器,以root
用户身份键入:chkconfig rh-postgresql10-postgresql on
- 如果您的配置与默认文件不同,请确保更新配置文件,特别是
/var/opt/rh/rh-postgresql10/lib/pgsql/data/pg_hba.conf
配置文件。否则,只有postgres
用户才能访问数据库。
5.7. 迁移到 PostgreSQL 9.6
PostgreSQL 9.6 可用于 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7,它可以与 Red Hat Enterprise Linux 6 中的 PostgreSQL 8.4 并行安装同一机器上,或者 Red Hat Enterprise Linux 7 中的 PostgreSQL 9.2 或之前版本的 Red Hat Software Collections 中发布的任何 PostgreSQL 版本。也可以同时在一台机器上运行多个 PostgreSQL 版本,但您需要使用不同的端口或 IP 地址并调整 SELinux 策略。
5.7.1. PostgreSQL 9.5 和 PostgreSQL 9.6 之间的显著差异
rh-postgresql96 Software Collection 包括 rh-postgresql96-syspaths 软件包,它安装为二进制文件、脚本、手册页和其他提供系统范围打包程序的软件包。安装 rh-postgreqsl96*-syspaths 软件包后,用户不需要使用 scl enable 命令对 rh-postgreqsl96* 软件包提供的二进制文件和脚本正常工作。请注意,*-syspaths 软件包与基本 Red Hat Enterprise Linux 系统中的对应软件包冲突。要了解更多有关 syspaths 的信息,请参阅 Red Hat Software Collections Packaging Guide。
下表提供了 Red Hat Enterprise Linux 系统版本 PostgreSQL (postgresql)和 postgresql92、rh-postgresql95 和 rh-postgresql96 Software Collections 中的不同路径的概述。请注意,Red Hat Enterprise Linux 6 发布的 PostgreSQL 8.4 的路径以及 Red Hat Enterprise Linux 7 提供的 PostgreSQL 9.2 系统版本相同; rh-postgresql94 Software Collection 的路径与 rh-postgresql95 类似。
表 5.2. PostgreSQL 路径中的 Diferences
内容 | postgresql | postgresql92 | rh-postgresql95 | rh-postgresql96 |
---|---|---|---|---|
可执行文件 | /usr/bin/ | /opt/rh/postgresql92/root/usr/bin/ | /opt/rh/rh-postgresql95/root/usr/bin/ | /opt/rh/rh-postgresql96/root/usr/bin/ |
libraries | /usr/lib64/ | /opt/rh/postgresql92/root/usr/lib64/ | /opt/rh/rh-postgresql95/root/usr/lib64/ | /opt/rh/rh-postgresql96/root/usr/lib64/ |
Documentation | /usr/share/doc/postgresql/html/ | /opt/rh/postgresql92/root/usr/share/doc/postgresql/html/ | /opt/rh/rh-postgresql95/root/usr/share/doc/postgresql/html/ | /opt/rh/rh-postgresql96/root/usr/share/doc/postgresql/html/ |
PDF 文档 | /usr/share/doc/postgresql-docs/ | /opt/rh/postgresql92/root/usr/share/doc/postgresql-docs/ | /opt/rh/rh-postgresql95/root/usr/share/doc/postgresql-docs/ | /opt/rh/rh-postgresql96/root/usr/share/doc/postgresql-docs/ |
contrib 文档 | /usr/share/doc/postgresql-contrib/ | /opt/rh/postgresql92/root/usr/share/doc/postgresql-contrib/ | /opt/rh/rh-postgresql95/root/usr/share/doc/postgresql-contrib/ | /opt/rh/rh-postgresql96/root/usr/share/doc/postgresql-contrib/ |
源 | 未安装 | 未安装 | 未安装 | 未安装 |
data | /var/lib/pgsql/data/ | /opt/rh/postgresql92/root/var/lib/pgsql/data/ | /var/opt/rh/rh-postgresql95/lib/pgsql/data/ | /var/opt/rh/rh-postgresql96/lib/pgsql/data/ |
备份区域 | /var/lib/pgsql/backups/ | /opt/rh/postgresql92/root/var/lib/pgsql/backups/ | /var/opt/rh/rh-postgresql95/lib/pgsql/backups/ | /var/opt/rh/rh-postgresql96/lib/pgsql/backups/ |
模板 | /usr/share/pgsql/ | /opt/rh/postgresql92/root/usr/share/pgsql/ | /opt/rh/rh-postgresql95/root/usr/share/pgsql/ | /opt/rh/rh-postgresql96/root/usr/share/pgsql/ |
流程语言 | /usr/lib64/pgsql/ | /opt/rh/postgresql92/root/usr/lib64/pgsql/ | /opt/rh/rh-postgresql95/root/usr/lib64/pgsql/ | /opt/rh/rh-postgresql96/root/usr/lib64/pgsql/ |
开发标头 | /usr/include/pgsql/ | /opt/rh/postgresql92/root/usr/include/pgsql/ | /opt/rh/rh-postgresql95/root/usr/include/pgsql/ | /opt/rh/rh-postgresql96/root/usr/include/pgsql/ |
其他共享数据 | /usr/share/pgsql/ | /opt/rh/postgresql92/root/usr/share/pgsql/ | /opt/rh/rh-postgresql95/root/usr/share/pgsql/ | /opt/rh/rh-postgresql96/root/usr/share/pgsql/ |
回归测试 | /usr/lib64/pgsql/test/regress/ (in the -test package) | /opt/rh/postgresql92/root/usr/lib64/pgsql/test/regress/ (in the -test package) | /opt/rh/rh-postgresql95/root/usr/lib64/pgsql/test/regress/ (in the -test package) | /opt/rh/rh-postgresql96/root/usr/lib64/pgsql/test/regress/ (in the -test package) |
有关 PostgreSQL 8.4 和 PostgreSQL 9.2 之间的更改,请参阅 Red Hat Software Collections 1.2 发行注记。Red Hat Software Collections 2.0 发行注记 中描述了 PostgreSQL 9.2 和 PostgreSQL 9.4 之间的显著变化。有关 PostgreSQL 9.4 和 PostgreSQL 9.5 之间的区别,请参阅 Red Hat Software Collections 2.2 发行注记。
5.7.2. 从 Red Hat Enterprise Linux System 版本的 PostgreSQL 迁移到 PostgreSQL 9.6 Software Collection
Red Hat Enterprise Linux 6 包括 PostgreSQL 8.4,Red Hat Enterprise Linux 7 带有 PostgreSQL 9.2。要将数据从 PostgreSQL 的 Red Hat Enterprise Linux 系统版本迁移到 rh-postgresql96 Software Collection,您可以使用
pg_upgrade
工具(推荐)执行快速升级,或使用 SQL 命令将数据库数据转储到文本文件中,并在新数据库中导入它。请注意,第二个方法通常非常慢,可能需要手动修复;有关此升级方法的更多信息,请参阅 PostgreSQL 文档。以下流程适用于 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 系统版本。
重要
在将数据从 PostgreSQL 的 Red Hat Enterprise Linux 系统版本迁移到 PostgreSQL 9.6 之前,请确保备份所有数据,包括 PostgreSQL 数据库文件,这些文件默认位于
/var/lib/pgsql/data/
目录中。
过程 5.5. 使用 pg_upgrade
工具快速升级
要执行 PostgreSQL 服务器的快速升级,请完成以下步骤:
- 停止旧的 PostgreSQL 服务器,以确保数据不处于不一致的状态。要做到这一点,以
root
用户身份在 shell 提示符后输入以下内容:service postgresql stop
要验证服务器是否正在运行,请键入:service postgresql status
- 验证旧目录
/var/lib/pgsql/data/
是否存在:file /var/lib/pgsql/data/
并备份您的数据。 - 验证新数据目录
/var/opt/rh/rh-postgresql96/lib/pgsql/data/
不存在:file /var/opt/rh/rh-postgresql96/lib/pgsql/data/
如果您正在运行一个全新的 PostgreSQL 9.6 安装,则系统中不存在此目录。如果是,请以root
用户身份运行以下命令备份它:mv /var/opt/rh/rh-postgresql96/lib/pgsql/data{,-scl-backup}
- 以
root
用户身份运行以下命令来升级新服务器的数据库数据:scl enable rh-postgresql96 -- postgresql-setup --upgrade
或者,您可以使用 /opt/rh/rh-postgresql96/root/usr/bin/postgresql-setup --upgrade 命令。请注意,您可以使用--upgrade-from
选项从不同的 PostgreSQL 版本升级。可以使用--upgrade-ids
选项获得可能的升级场景列表。建议您读取生成的/var/lib/pgsql/upgrade_rh-postgresql96-postgresql.log
日志文件,以了解升级过程中是否存在任何问题。 - 以
root
用户身份启动新服务器:service rh-postgresql96-postgresql start
另外,建议您运行analyze_new_cluster.sh
脚本,如下所示:su - postgres -c 'scl enable rh-postgresql96 ~/analyze_new_cluster.sh'
- 另外,您可以将 PostgreSQL 9.6 服务器配置为在引导时自动启动。要禁用旧的系统 PostgreSQL 服务器,以
root
用户身份运行以下命令:chkconfig postgresql off
要启用 PostgreSQL 9.6 服务器,以root
用户身份输入:chkconfig rh-postgresql96-postgresql on
- 如果您的配置与默认文件不同,请确保更新配置文件,特别是
/var/opt/rh/rh-postgresql96/lib/pgsql/data/pg_hba.conf
配置文件。否则,只有postgres
用户才能访问数据库。
过程 5.6. 执行转储和恢复升级
要执行 PostgreSQL 服务器的转储和恢复升级,请完成以下步骤:
- 以
root
用户身份在 shell 提示符后输入以下内容来确保旧的 PostgreSQL 服务器正在运行:service postgresql start
- 将 PostgreSQL 数据库中的所有数据转储到脚本文件中。以
root
用户身份,输入:su - postgres -c 'pg_dumpall > ~/pgdump_file.sql'
- 以
root
用户身份运行以下命令来停止旧服务器:service postgresql stop
- 以
root
用户身份初始化新服务器的数据目录:scl enable rh-postgresql96-postgresql -- postgresql-setup --initdb
- 以
root
用户身份启动新服务器:service rh-postgresql96-postgresql start
- 从之前创建的 SQL 文件中导入数据:
su - postgres -c 'scl enable rh-postgresql96 "psql -f ~/pgdump_file.sql postgres"'
- 另外,您可以将 PostgreSQL 9.6 服务器配置为在引导时自动启动。要禁用旧的系统 PostgreSQL 服务器,以
root
用户身份运行以下命令:chkconfig postgresql off
要启用 PostgreSQL 9.6 服务器,以root
用户身份输入:chkconfig rh-postgresql96-postgresql on
- 如果您的配置与默认文件不同,请确保更新配置文件,特别是
/var/opt/rh/rh-postgresql96/lib/pgsql/data/pg_hba.conf
配置文件。否则,只有postgres
用户才能访问数据库。
5.7.3. 从 PostgreSQL 9.5 Software Collection 迁移到 PostgreSQL 9.6 Software Collection
要将数据从 rh-postgresql95 Software Collection 迁移到 rh-postgresql96 Collection,您可以使用
pg_upgrade
工具(推荐)执行快速升级,或使用 SQL 命令将数据库数据转储到文本文件中,并在新数据库中导入它。请注意,第二个方法通常非常慢,可能需要手动修复;有关此升级方法的更多信息,请参阅 PostgreSQL 文档。
重要
在将数据从 PostgreSQL 9.5 迁移到 PostgreSQL 9.6 之前,请确保备份所有数据,包括 PostgreSQL 数据库文件,这些文件默认位于
/var/opt/rh/rh-postgresql95/lib/pgsql/data/
目录中。
过程 5.7. 使用 pg_upgrade
工具快速升级
要执行 PostgreSQL 服务器的快速升级,请完成以下步骤:
- 停止旧的 PostgreSQL 服务器,以确保数据不处于不一致的状态。要做到这一点,以
root
用户身份在 shell 提示符后输入以下内容:service rh-postgresql95-postgresql stop
要验证服务器是否正在运行,请键入:service rh-postgresql95-postgresql status
- 验证旧目录
/var/opt/rh/rh-postgresql95/lib/pgsql/data/
是否存在:file /var/opt/rh/rh-postgresql95/lib/pgsql/data/
并备份您的数据。 - 验证新数据目录
/var/opt/rh/rh-postgresql96/lib/pgsql/data/
不存在:file /var/opt/rh/rh-postgresql96/lib/pgsql/data/
如果您正在运行一个全新的 PostgreSQL 9.6 安装,则系统中不存在此目录。如果是,请以root
用户身份运行以下命令备份它:mv /var/opt/rh/rh-postgresql96/lib/pgsql/data{,-scl-backup}
- 以
root
用户身份运行以下命令来升级新服务器的数据库数据:scl enable rh-postgresql96 -- postgresql-setup --upgrade --upgrade-from=rh-postgresql95-postgresql
或者,您可以使用 /opt/rh/rh-postgresql96/root/usr/bin/postgresql-setup --upgrade --upgrade-from=rh-postgresql95-postgresql 命令。请注意,您可以使用--upgrade-from
选项来从不同版本的 PostgreSQL 升级。可以使用--upgrade-ids
选项获得可能的升级场景列表。建议您读取生成的/var/lib/pgsql/upgrade_rh-postgresql96-postgresql.log
日志文件,以了解升级过程中是否存在任何问题。 - 以
root
用户身份启动新服务器:service rh-postgresql96-postgresql start
另外,建议您运行analyze_new_cluster.sh
脚本,如下所示:su - postgres -c 'scl enable rh-postgresql96 ~/analyze_new_cluster.sh'
- 另外,您可以将 PostgreSQL 9.6 服务器配置为在引导时自动启动。要禁用旧的 PostgreSQL 9.5 服务器,请以
root
用户身份输入以下命令:chkconfig rh-postgresql95-postgreqsql off
要启用 PostgreSQL 9.6 服务器,以root
用户身份输入:chkconfig rh-postgresql96-postgresql on
- 如果您的配置与默认文件不同,请确保更新配置文件,特别是
/var/opt/rh/rh-postgresql96/lib/pgsql/data/pg_hba.conf
配置文件。否则,只有postgres
用户才能访问数据库。
过程 5.8. 执行转储和恢复升级
要执行 PostgreSQL 服务器的转储和恢复升级,请完成以下步骤:
- 以
root
用户身份在 shell 提示符后输入以下内容来确保旧的 PostgreSQL 服务器正在运行:service rh-postgresql95-postgresql start
- 将 PostgreSQL 数据库中的所有数据转储到脚本文件中。以
root
用户身份,输入:su - postgres -c 'scl enable rh-postgresql95 "pg_dumpall > ~/pgdump_file.sql"'
- 以
root
用户身份运行以下命令来停止旧服务器:service rh-postgresql95-postgresql stop
- 以
root
用户身份初始化新服务器的数据目录:scl enable rh-postgresql96-postgresql -- postgresql-setup --initdb
- 以
root
用户身份启动新服务器:service rh-postgresql96-postgresql start
- 从之前创建的 SQL 文件中导入数据:
su - postgres -c 'scl enable rh-postgresql96 "psql -f ~/pgdump_file.sql postgres"'
- 另外,您可以将 PostgreSQL 9.6 服务器配置为在引导时自动启动。要禁用旧的 PostgreSQL 9.5 服务器,请以
root
用户身份输入以下命令:chkconfig rh-postgresql95-postgresql off
要启用 PostgreSQL 9.6 服务器,以root
用户身份输入:chkconfig rh-postgresql96-postgresql on
- 如果您的配置与默认文件不同,请确保更新配置文件,特别是
/var/opt/rh/rh-postgresql96/lib/pgsql/data/pg_hba.conf
配置文件。否则,只有postgres
用户才能访问数据库。
如果您需要从 postgresql92 Software Collection 迁移,请参阅 Red Hat Software Collections 2.0 发行注记。该流程是相同的,您只需要调整新集合的版本。同样适用于从 rh-postgresql94 Software Collection 迁移,这在 Red Hat Software Collections 2.2 发行注记 中进行了描述。
5.8. 迁移到 nginx 1.14
rh-nginx114 Software Collection 的根目录位于
/opt/rh/rh-nginx114/root/
中。默认情况下,错误日志存储在 /var/opt/rh/rh-nginx114/log/nginx
中。
配置文件存储在
/etc/opt/rh/rh-nginx114/nginx/
目录中。nginx 1.14 中的配置文件的语法相同,其格式与之前的 nginx Software Collections 相同。
/etc/opt/rh/rh-nginx114/nginx/default.d/
目录中的配置文件(带有 .conf
扩展名)包含在端口 80
的默认服务器块配置中。
重要
在从 nginx 1.12 升级到 nginx 1.14 之前,请备份您的所有数据,包括位于
/opt/rh/nginx112/root/
tree 和配置文件(位于 /etc/opt/rh/nginx112/nginx/
树)中的 web 页面。
如果您进行了任何特定的更改,如更改配置文件或设置 web 应用程序,在
/opt/rh/nginx112/root/
树中,在新的 /opt/rh/rh-nginx114/root/
和 / etc/opt/rh-nginx114/nginx/
目录中复制这些更改。
您可以使用此流程直接从 nginx 1.8、nginx 1.10 或 nginx 1.12 升级到 nginx 1.14。在这种情况下使用适当的路径。
有关官方 nginx 文档,请参阅 http://nginx.org/en/docs/。
第 6 章 其它资源
本章提供了关于 Red Hat Software Collections 3.2 和 Red Hat Enterprise Linux 的其他相关信息参考。
6.1. 红帽产品文档
以下文档与本书直接或间接相关:
- Red Hat Software Collections 3.2 打包指南 - Red Hat Software Collections 的打包指南解释了 Software Collections 的概念,记录 scl 实用程序,并提供了有关如何创建自定义 Software Collection 或扩展现有软件集合的详细说明。
- Red Hat Developer Toolset 8.0 发行注记 - Red Hat Developer Toolset 文档已知问题、可能的问题、更改和其他有关这个 Software Collection 的重要信息。
- Red Hat Developer Toolset 8.0 User Guide - Red Hat Developer Toolset 用户指南 包含有关安装和使用此 Software Collection 的更多信息。
- 使用 Red Hat Software Collections 容器镜像 - 本书提供了有关如何使用基于 Red Hat Software Collections 的容器镜像的信息。可用的容器镜像包括应用程序、守护进程、数据库和 Red Hat Developer Toolset 容器镜像。镜像可以在 Red Hat Enterprise Linux 7 服务器和 Red Hat Enterprise Linux Atomic Host 上运行。
- 容器入门 - 本指南包含有关在 Red Hat Enterprise Linux 7 和 Red Hat Enterprise Linux Atomic Host 上构建和使用容器镜像的全面概述。
- 使用和配置红帽订阅管理器 - 使用和配置 红帽订阅管理器 书提供了有关如何注册 Red Hat Enterprise Linux 系统、管理订阅和查看已注册系统通知的详细信息。
- Red Hat Enterprise Linux 6 部署指南 - Red Hat Enterprise Linux 6 的部署指南提供了有关该系统的部署、配置和管理的信息。
- Red Hat Enterprise Linux 7 系统管理员指南 - Red Hat Enterprise Linux 7 的 系统管理员指南 提供了有关该系统的部署、配置和管理的信息。
6.2. Red Hat Developers
- Red Hat Developer Program - 红帽开发人员社区 门户。
- Red Hat Developers 上的 Red Hat Software Collections 概述 - Red Hat Developers Portal 提供了多个教程来帮助您使用不同的开发技术开发代码。这包括 Node.js、Perl、PHP、Python 和 Ruby Software Collections。
- Red Hat Developer Blog - Red Hat Developer Blog 包含最新的信息、最佳实践、建议、产品和程序公告,以及基于红帽技术设计和开发应用程序的指针。
附录 A. 修订历史记录
修订历史 | |||
---|---|---|---|
修订 3.2-7 | Wed Dec 20 2023 | Lenka Špačková | |
| |||
修订 3.2-6 | Fri Nov 12 2021 | Lenka Špačková | |
| |||
修订 3.2-5 | Wed May 01 2019 | Lenka Špačková | |
| |||
修订 3.2-4 | Wed Mar 13 2019 | Lenka Špačková | |
| |||
修订 3.2-3 | Thu Dec 20 2018 | Lenka Špačková | |
| |||
修订 3.2-2 | Tue Dec 18 2018 | Lenka Špačková | |
| |||
修订 3.2-1 | Tue Nov 13 2018 | Lenka Špačková | |
| |||
修订 3.2-0 | Tue Oct 23 2018 | Lenka Špačková | |
|
法律通告
Copyright © 2018-2019 Red Hat, Inc.
本文档由红帽根据 Creative Commons Attribution-ShareAlike 3.0 Unported License 提供许可证授权。如果您发布本文档,或者修改本文档,您必须为 Red Hat, Inc. 提供相关功能,并提供到原始版本的链接。如果修改了本文档,则必须删除所有红帽商标。
作为本文档的许可者,红帽可能会放弃强制制执行 CC-BY-SA 第4d 条款,且不声明该条款在适用条款允许的最大限度内有效。
Red Hat、Red Hat Enterprise Linux、Shadowman 徽标、红帽徽标、JBoss、OpenShift、Fedora、Infinity 徽标和 RHCE 是 Red Hat, Inc. 在美国和其他国家注册的商标。
Linux® 是 Linus Torvalds 在美国和其它国家注册的商标。
Java® 是 Oracle 和/或其附属公司注册的商标。
XFS® 是 Silicon Graphics International Corp. 或其子公司在美国和/或其他国家的商标。
MySQL® 是 MySQL AB 在美国、美国和其他国家注册的商标。
Node.js® 是 Joyent 的官方商标。红帽与官方 Joyent Node.js 开源社区或商业项目没有正式的关系或认可。
OpenStack® Word Mark 和 OpenStack 徽标是 OpenStack Foundation 在美国及其他国家注册的商标/服务标记或商标/服务标记,在 OpenStack Foundation 许可的情况下使用。我们不附属于 OpenStack Foundation 或 OpenStack 社区。
所有其他商标均由其各自所有者所有。