Menu Close
4.11. 动态编程语言、网页和数据库服务器
现在完全支持 nodejs:16
模块流
nodejs:16
模块流以前作为技术预览提供,在 RHSA-2021:5171 公告中被完全支持。nodejs:16
模块流现在提供 Node.js 16.13.1
,它是一个长期支持(LTS)版本。
从 RHEL 8.3 开始,Node .js 16
包括在 RHEL 8.5 中,与 Node.js 14
提供了大量新功能、程序错误和安全修复。
主要变更包括:
-
V8
引擎已升级到 9.4 版本。 -
npm
软件包管理器已升级到 8.1.2 版本。 -
新的
Timers Promises
API 提供了一组替代的计时器函数,可返回Promise
对象。 -
Node.js
现在提供了一个新的实验性Web Streams
API。 -
Node.js
现在包含Corepack
,这是一个实验性工具,可让您使用给定项目中配置的软件包管理器,而无需手动安装它们。 -
Node.js
现在提供了一个实验性的 ECMAScript 模块(ESM)加载程序 API,它整合了 ESM 加载器 hook。
要安装 nodejs:16
模块流,请使用:
# yum module install nodejs:16
如果要从 nodejs:14
流升级,请参阅切换到更新的流。
(BZ#1953991, BZ#2027610)
新模块流: ruby:3.0
RHEL 8.5 在新的 ruby:3.0
模块流中引入了 Ruby 3.0.2
。与 RHEL 8.3 提供的 Ruby 2.7
相比,这个版本提供了很多性能改进、程序错误和安全修复以及新功能。
主要改进包括:
并发和并行功能:
-
Ractor
是提供线程安全并行执行的 Actor-model 抽象,作为实验性功能提供。 -
光纤调度程序
已作为实验性功能推出。光纤调度程序截获
阻止操作,这样便无需更改现有代码,即可实现轻量并发。
-
静态分析功能:
-
引入了
RBS
语言,它描述了Ruby
程序的结构。添加了 Therbs
gem 来解析RBS
编写的类型定义。 -
引进了
TypeProf
实用程序,它是Ruby
代码的类型分析工具。
-
引入了
-
与
case/in 表达式的
模式匹配不再是实验性的。 - 重新设计了单行模式匹配(一种实验功能)。
- find 模式已添加为实验性功能。
改进的性能:
-
现在,将长代码粘贴到
交互式 Ruby Shell(IRB)
的速度要快得多。 -
测量结果
命令已添加到IRB
中以测量时间。
其他显著变化包括:
- 关键字参数已与其他参数分隔。
-
用户安装的 gems 的默认目录现在是
$HOME/.local/share/gem/
,除非$HOME/.gem/
目录已经存在。
要安装 ruby:3.0
模块流,请使用:
# yum module install ruby:3.0
如果要从以前的 ruby
模块流升级,请参阅切换到更新的流。
Python urllib
解析功能的默认分隔符更改
为缓解 Python urllib
库中的 Web Cache Poisoning CVE-2021-23336,urllib.parse.parse_qsl
和 urllib.parse.parse_qs
功能的默认分隔符将从 &
和分号(;
)改为只使用 &。
这个变化是在 Python 3.6 中在 RHEL 8.4 中实施的,现在被向后移植到 Python 3.8 和 Python 2.7。
默认分隔符的更改可能会向后不兼容,因此红帽提供了一种方法来配置 Python 软件包中修改了默认分隔符的行为。此外,如果受影响的 urllib
解析功能检测到客户的应用受到更改的影响,则发出警告。
如需更多信息,请参阅 Python urllib 库(CVE-2021-23336)知识库中的 Web Cache Poisoning 的 Mitigation。
Python 3.9 不受影响,并且已经包含新的默认分隔符(&
),其只能在调用 由Python 代码编写的 urllib.parse.parse_qsl
和 urllib.parse.parse_qs
函数时传递 separator 参数来进行修改。
(BZ#1935686, BZ#1931555, BZ#1969517)
Python ipaddress
模块不再允许 IPv4 地址中的零
为缓解 CVE-2021-29921,Python ipaddress
模块现在拒绝带有 AddressValueError 的前导零的 IPv4 地址:不允许前导零
错误。
python38 和 python
39
模块中引入了这个变化。RHEL 中发布的早期 Python 版本不受 CVE-2021-29921 的影响。
依赖之前行为的客户可以预先处理其 IPv4 地址输入,从而去除前导零。例如:
>>> def reformat_ip(address): return '.'.join(part.lstrip('0') if part != '0' else part for part in address.split('.')) >>> reformat_ip('0127.0.0.1') '127.0.0.1'
要使用显式循环剥离前导零以提高可读性,请使用:
def reformat_ip(address): parts = [] for part in address.split('.'): if part != "0": part = part.lstrip('0') parts.append(part) return '.'.join(parts)
(BZ#1986007, BZ#1970504, BZ#1970505)
php:7.4
模块流被 rebase 到版本 7.4.19
php:7.4
模块流提供的 PHP 脚本语言已从 7.4.6 升级到版本 7.4.19。这个版本提供了多个安全和程序错误修复。
(BZ#1944110)
新软件包: pg_repack
new pg_repack
软件包已添加到 postgresql:12
和 postgresql:13
模块流中。The pg_repack
软件包提供了一个 PostgreSQL
扩展,可让您从表和索引中删除 bloat,也可以恢复集群索引的物理顺序。
(BZ#1967193,BZ#1935889)
新模块流: nginx:1.20
nginx 1.20
web 和代理服务器现在作为 nginx:1.20
模块流提供。与之前发布的 1.18 版本相比,这个版本提供了很多程序错误修复、安全修复、新功能以及改进。
新特性:
-
nginx
现在支持使用在线证书状态协议(OCSP)的客户端 SSL 证书验证。 -
nginx
现在支持根据最小可用空间清除缓存。此支持作为proxy_cache
参数实施。_path 指令的 min_
free -
添加了一个新的
ngx_stream_set_module
模块,它可让您为变量设置值。
增强的指令:
-
现在提供了多个新指令,如
ssl_conf_command
和ssl_reject_handshake
。 -
proxy_cookie_flags
指令现在支持变量。
改进了对 HTTP/2 的支持:
-
ngx_http_v2
模块现在包含 lingering_close、ling
ering_time
、lingering_timeout
指令。 -
HTTP/2 中的连接处理与 HTTP/1.x 一致。从
nginx 1.20
,使用keepalive_timeout
和keepalive_requests
指令,而不是删除的http2_recv_timeout
、http2_idle_timeout
和http2_max_requests
指令。
要安装 nginx:1.20
流,请使用:
# yum module install nginx:1.20
如果要从 nginx:1.20
流升级,请参阅切换到更新的流。
(BZ#1945671)
squid:4
模块流 rebase 到版本 4.15
Squid
代理服务器(位于 squid:4
模块流中)已从 4.11 升级到 4.15 版本。这个版本提供了各种程序错误和安全修复。
(BZ#1964384)
配额
现在支持 HPE XFS
配额
实用程序现在提供对 HPE XFS 文件系统的支持。因此,HPE XFS 用户可以通过 配额
实用程序监控和管理磁盘使用情况。
(BZ#1945408)
mutt
rebase 到版本 2.0.7
Mutt
电子邮件客户端已更新至 2.0.7 版本,提供一些增强和程序错误修复。
主要变更包括:
-
mutt 现在使用
机制提供对XOAUTH2
OAuth 2.0
授权协议的支持。mutt 现在还支持用于 IMAP、POP 和 SMTP 协议的OAUTHBEARER
验证机制。基于 OAuth 的功能通过外部脚本提供。因此,您可以使用身份验证令牌将Mutt
与各种云电子邮件提供商连接,如Gmail
。有关如何使用 OAuth 支持设置Mutt
的更多信息,请参阅 如何使用 OAuth2 身份验证使用 Gmail 设置 Mutt。 -
mutt 添加了对域字面电子邮件地址的支持
,例如user@[IPv6:fcXX:…]
. -
新的
$ssl_use_tlsv1_3
配置变量允许 TLS 1.3 连接(如果电子邮件服务器支持)。此变量默认为启用。 -
新的
$imap_deflate
变量添加了对COMPRESS=DEFLATE
压缩的支持。变量默认为禁用。 -
$ssl_starttls
变量不再控制未加密 IMAPPREAUTH
连接。如果您依赖STARTTLS
进程,则改为使用$ssl_force_tls
变量。
请注意,即使更新到新的 Mutt
版本,ssl_force_tls
配置变量仍默认为 no
,以防止 RHEL 用户在现有环境中遇到问题。在 Mutt
的上游版本中,ssl_force_tls
现在被默认启用。