4.10. 动态编程语言、网页和数据库服务器
nodejs:18
模块流现在完全支持
以前作为技术预览提供的 nodejs:18
模块流,现在在 RHSA-2022:8833 公告版中完全支持。nodejs:18
模块流现在提供 Node.js 18.12
,它是一个长期支持(LTS)版本。
RHEL 8.7 中包含的 Node.js 18
提供了许多新功能,以及自 RHEL 8.5 以来对 Node.js 16
的 bug 和安全修复。
主要变更包括:
-
V8
引擎已升级到版本 10.2。 -
npm
软件包管理器已升级到版本 8.18.0。 -
Node.js
现在提供了一个新的实验性fetch
API。 -
Node.js
现在提供了一个新的实验性node:test
模块,它便于创建以 test Anything Protocol (TAP)格式报告结果的测试。 -
Node.js
现在首选 IPv6 地址,而不是 IPv4 地址。
要安装 nodejs:18
模块流,请使用:
# yum module install nodejs:18
如果要从 nodejs:16
流升级,请参阅 切换到更新的流。
(BZ#2083073)
nodejs:18
rebase 到版本 18.14,npm
rebase 到版本 9
Node.js 18.14
在 RHSA-2023:1583 中发布,包括 npm
从版本 8 升级到版本 9 的 SemVer 主要升级。由于维护原因,这个更新是必需的,可能需要调整 npm
配置。
值得注意的是,不限定到特定注册中心的与身份验证相关的设置不再支持。所做的这一变化是出于安全原因。如果您使用了无范围的身份验证配置,则提供的令牌将被发送到 .npmrc
文件中列出的每个注册中心。
如果您使用无范围的身份验证令牌,请在 .npmrc
文件中生成并提供注册中心范围的令牌。
如果您有使用 _auth
的配置行,如 .npmrc
文件中的 //registry.npmjs.org/:_auth
,请将它们替换为 //registry.npmjs.org/:_authToken=${NPM_TOKEN}
,并提供您生成的有范围的令牌。
有关更改的完整列表,请参阅 上游更改日志。
新模块流:ruby:3.1
RHEL 8.7 在新的 ruby:3.1
模块流中引入了 Ruby 3.1.2
。这个版本提供了很多性能改进、bug和安全修复,以及与 RHEL 8.5 一起发布的 Ruby 3.0
的新功能。
主要改进包括:
-
Interactive Ruby
(IRB)工具现在提供自动完成功能以及文档对话框 -
新的
debug
gem,它替换了lib/debug.rb
,提供了改进的性能,并支持远程调试和多进程/多线程调试 -
error_highlight
gem 现在在 backtrace 中提供精细的错误位置 - 现在可以省略哈希文本数据类型和关键字参数中的值
-
pin 运算符(
^
)现在接受模式匹配中的表达式 - 现在,可以在单行模式匹配省略括号
- YJIT 一种新的实验性进程内实时(JIT)编译器,现在在 AMD 和 Intel 64 位构架上提供
-
已引进了
TypeProf For IDE
工具,这是 IDE 中Ruby
代码的实验性静态类型分析工具。
以下性能改进已在基于方法的实时编译器(MJIT)中实现了:
-
对于像
Rails
这样的工作负载,默认的最大 JIT 缓存值从 100 增加到 10000 -
当启用了 class 事件的
TracePoint
时,使用 JIT 编译的代码将不再被取消
其他显著变化包括:
-
tracer.rb
文件已被删除 -
自版本 4.0 起,
Psych
YAML 解析器默认使用secure_load
方法
要安装 ruby:3.1
模块流,请使用:
# yum module install ruby:3.1
如果要从以前的 ruby
模块流升级,请参阅 切换到更新的流。
(BZ#2063772)
新模块流:mercurial:6.2
RHEL 8.7 将 Mercurial 6.2
添加为新的模块流。从 RHEL 8.0 开始,此版本提供了很多 bug 修复、增强,以及 Mercurial 4.8
方面的性能改进。
主要变更包括:
-
Mercurial 6.2
支持Python 3.6
或更高版本 -
Mercurial
不再支持Python 2
-
hg purge
和hg clean
命令现在提供了一个新的-i
选项,该选项允许您删除忽略的文件,而不是未跟踪的文件 -
hg diff
和hg extdiff
命令现在支持--from <revision>
和--to <revision>
参数 -
现在提供了一个新的内部合并工具
internal:mergediff
- Z 标准(ZSTD)压缩现在默认用于新的存储库(如果有的话)
-
现在,提供了一个指定所需扩展的新方法,其在找不到所需的扩展时防止
Mercurial
启动
另外,提供了一个新的 mercurial-chg
工具,它为 hg
命令提供了一个 C 包装器。当您使用 chg
命令时,会创建一个 Mercurial
命令服务器后台进程,C 程序连接到该后台进程并执行 Mercurial
命令。因此,性能会显著提高。
要安装 mercurial:6.2
模块流,请使用:
# yum module install mercurial:6.2
如果要从 mercurial:4.8
流升级,请参阅 切换到更新的流。
(BZ#2089849)
mariadb-java-client
rebase 到版本 2.7.1
为用 Java 开发的应用程序提供 MariaDB
连接器的 mariadb-java-client
软件包更新至版本 2.7.1。
这个更新在服务中引入了以下变化:
-
客户端身份验证插件现在被定义为服务。因此,您可以轻松地添加新的客户端身份验证插件。驱动程序包括
caching_sha2_password
和sha256_password
插件,用于与MySQL
兼容。 -
现在,凭证插件允许提供凭证信息。驱动程序包含三个默认插件:
AWS IAM
、Environment
和Property
。 -
SSL 工厂服务现在使您能够使用自定义的 SSL 实现。例如,您可以创建一个新的
HostnameVerifier
实现。
其他显著变化包括:
-
enabledSslProtocolSuites
选项现在默认包含 TLSv1.2。
Redis
rebase 到版本 6.2.7
Redis 6
是提供 redis:6
模块流的高级键值存储,现已更新到版本 6.2.7。这个更新提供了 RHEL 8.4 以来的 bug 修复、安全修复以及对 6.0 版本的改进。
httpd
配置中 LimitRequestBody
指令的新默认值
要修复 CVE-2022-29404,Apache HTTP 服务器中的 LimitRequestBody
指令的默认值已从 0
(无限)变为 1 GiB。
在 httpd
配置文件中没有明确指定 LimitRequestBody
的值系统上,更新 httpd
软件包会将 LimitRequestBody
设为默认值 1 GiB。因此,如果 HTTP 请求正文的总大小超过这个 1 GiB 默认限制,则 httpd
会返回 413 Request Entity Too Large
错误码。
如果 HTTP 请求消息正文的新默认允许的大小不满足您的用例,请在相应的上下文中(服务器、每目录、每文件或每位置)更新您的 httpd
配置文件,并以字节为单位设置您的首选限制。例如,要设置一个新的 2 GiB 限制,请使用:
LimitRequestBody 2147483648
已被配置为使用 LimitRequestBody
指令的任何显式值的系统不受此更改的影响。
(BZ#2128016)