Menu Close
Settings Close

Language and Page Formatting Options

4.13. 动态编程语言、网页和数据库服务器

RHEL 9 中的 Python

Python 3.9 是 RHEL 9 中的默认 Python 实现。Python 3.9 在 BaseOS 存储库中的非模块化 python3 RPM 软件包中分发,通常默认安装。Python 3.9 将支持 RHEL 9 的整个生命周期。

其他版本的 Python 3 将以 RPM 软件包的形式发布,并通过 AppStream 软件仓库提供较短的生命周期,并可并行安装。

python 命令(/usr/bin/python)和其他 Python-related 命令(如 pip )位于未指定版本的表单中,并指向默认的 Python 3.9 版本。

Python 2 不随 RHEL 9 提供。

有关 RHEL 9 中的 Python 的更多信息,请参阅 Python 简介

(BZ#1941595, JIRA:RHELPLAN-80598)

Node.js 16 在 RHEL 9 中可用

RHEL 9 提供了一个 Long Term Support(LTS)版本 16 的 Node.js,它是一个软件开发平台,用于使用 JavaScript 编程语言构建快速、可扩展的网络应用程序。

Node.js 14 相比,Node.js 16 中的显著变化包括:

  • V8 引擎已升级至版本 9.4。
  • npm 软件包管理器已升级至 8.3.1 版本。
  • 新的 Timers Promises API 提供了一组替代的计时器功能,用于返回 Promise 对象。
  • Node.js 现在与 OpenSSL 3.0 兼容。
  • Node.js 现在提供一个新的实验性 Web Streams API 和实验性 ECMAScript 模块(ESM)加载程序 hook API。

Node.js 16 是此 Application Stream 的初始版本,您可以轻松地作为 RPM 软件包安装。Node.js 16 生命周期比 RHEL 9 的生命周期短。详情请查看 Red Hat Enterprise Linux Application Streams 生命周期文档。其它 Node.js 版本将作为模块提供,其生命周期在将来的 RHEL 9 次要发行本中也会较短的生命周期。

(BZ#1953491)

RHEL 9 提供 Ruby 3.0

RHEL 9 使用 Ruby 3.0.3 提供,它比 Ruby 2.7 提供了很多性能改进、程序错误和安全修复以及新功能。

主要改进包括:

  • 并发和并行功能:

    • Ractor 作为一个提供线程安全并行执行的 Actor-model 抽象作为实验功能提供。
    • Fiber Scheduler作为一种实验功能引进。Fiber Scheduler 截获阻塞操作,在不更改现有代码的情况下启用轻量级并发操作。
  • 静态分析功能:

    • 引进了 RBS 语言,它描述了 Ruby 程序的结构。rbs gem 已被添加来解析使用 RBS 编写的类型定义。
    • 引进了 TypeProf 实用工具,它是 Ruby 代码的类型分析工具。
  • case/in 表达式的模式匹配不再是实验性。
  • 多行模式匹配(一个实验功能)已被重新设计。
  • find pattern 已被添加为实验功能。

改进的性能:

  • 将长代码粘贴到 Interactive Ruby Shell(IRB) 的速度现在明显加快。
  • measure 命令已添加到 IRB 中以进行测量。

其他显著变化包括:

  • 关键字参数现在与其他参数分开。
  • 用户安装的 gems 的默认目录现在是 $HOME/.local/share/gem/,除非 $HOME/.gem/ 目录已存在。

Ruby 3.0 是此 Application Stream 的初始版本,您可以轻松地作为 RPM 软件包安装。额外的 Ruby 版本将会作为模块提供,在以后的 RHEL 9 的次版本中会带有较短的生命周期。

(JIRA:RHELPLAN-80758)

RHEL 9 引入了 Perl 5.32

RHEL 9 包括 Perl 5.32,它提供很多程序错误修复和增强 5.30。

主要改进包括:

  • Perl 现在支持 Unicode 版本 13.0。
  • qr quote-like 运算符已被改进。
  • POSIX::mblen(), mbtowc, 和 wctomb 功能现在可以在转换状态区域上工作,在 C99 上执行 thread-safe on C99,在具有 locale thread-safety 的平台上执行,长度参数现在是可选的。
  • 新的实验性 isa infix 操作符用于测试一个给定的对象是一个给定类的实例,还是从其中衍生出来的类。
  • alpha assertions 不再是实验性。
  • 脚本运行不再是实验性的。
  • 功能检查现在可以更快。
  • 现在,Perl 可以在优化前转储编译的模式。

Perl 5.32 是此 Application Stream 的初始版本,您可以轻松地作为 RPM 软件包安装。在以后的 RHEL 9 次版本中,会将额外的 Perl 版本作为模块提供,其生命周期会短。

(JIRA:RHELPLAN-80759)

RHEL 9 包括 PHP 8.0

RHEL 9 提供了 PHP 8.0,与版本 7.4 相比,这个版本提供了多个程序错误修复和增强。

主要改进包括:

  • 新的命名参数是独立于顺序且自我记录的参数,并可让您只指定所需的参数。
  • 新的属性允许您将结构化元数据与 PHP 的原生语法搭配使用。
  • 新的 union 类型可让您使用在运行时验证的原生 union 类型声明,而不是运行时验证的 PHPDoc 注解。
  • 现在,如果参数验证失败,内部功能会更加一致地引发 Error 异常而不是警告。
  • 新的 Just-In-Time 编译引擎可显著提高应用程序性能。
  • PHP 的 Xdebug 调试和生产力扩展已更新至版本 3。与 Xdebug 2 相比,这个版本对功能和配置进行了重大更改。

PHP 8.0 是此 Application Stream 的初始版本,您可以轻松地作为 RPM 软件包安装。在以后的 RHEL 9 次版本中,会将其他 PHP 版本作为模块提供更短的生命周期。

如需更多信息,请参阅使用 PHP 脚本语言

(BZ#1949319)

RHEL 9 提供 Git 2.31Git LFS 2.13

RHEL 9 提供了 Git 2.31,它比 RHEL 8 中的版本 2.27 提供了很多改进和性能。主要变更包括:

  • git status 命令现在报告稀疏签出的状态。
  • 现在,您可以将 --add-file 选项与 git archive 命令一起使用,从树状标识符将未跟踪的文件包含在快照中。
  • 您可以使用 clone.defaultremotename 配置变量自定义源远程存储库的 nickname。
  • 您可以配置 git format-patch 命令创建的输出文件名的最大长度。在以前的版本中,长度限制为 64 字节。
  • 删除了对已弃用的 PCRE1 库的支持。

另外,Git 大文件存储(LFS) 扩展版本 2.13 现已正式发布。RHEL 8 中发布的版本 2.11 的增强包括:

  • Git LFS 现在支持 SHA-256 软件仓库。
  • Git LFS 现在支持 socks5h 协议。
  • git lfs installgit lfs uninstall 命令提供了一个新的 --worktree 选项。
  • git lfs migrate import 命令提供了一个新的 --above 参数。

(BZ#1956345, BZ#1952517)

RHEL 9 中的 Subversion 1.14

RHEL 9 由 Subversion 1.14 提供。Subversion 1.14 是此应用程序流的初始版本,您可以将其作为 RPM 软件包轻松安装。在以后的 RHEL 9 次要发行本中,会将其他 Subversion 版本作为模块提供更短的生命周期。

(JIRA:RHELPLAN-82578)

Apache HTTP 服务器中的显著变化

RHEL 9.0 提供 Apache HTTP 服务器的版本 2.4.51。2.4.37 版本的显著变化包括:

  • Apache HTTP 服务器控制接口(apachectl):

    • 现在,apachectl status 输出禁用了 systemctl pager。
    • 现在,如果您传递了附加参数,则 apachectl 命令会失败,而不是发出警告。
    • apachectl graceful-stop 命令现在会立即返回。
    • apachectl configtest 命令现在在不更改 SELinux 上下文的情况下执行 httpd -t 命令。
    • RHEL 中的 apachectl(8) man page 现在完全指明了与上游 apachectl 之间的差异。
  • Apache eXtenSion 工具(pxs):

    • 构建 httpd 软件包时,/usr/bin/apxs 命令不再使用或公开编译器选择的标志。现在,您可以使用 /usr/lib64/httpd/build/vendor-apxs 命令应用与构建 httpd 相同的编译器标志。要使用 vendor-apxs 命令,您必须首先安装 redhat-rpm-config 软件包。
  • Apache 模块:

    • mod_lua 模块现在在一个单独的软件包中提供。
    • Apache HTTP 服务器的新 mod_jk 连接器是利用 Apache JServ 协议(AJP)将 Web 服务器与 Apache Tomcat 和其他后端连接的模块。
    • 新的 mod_proxy_cluster 模块提供基于 httpd 的负载均衡器,它使用通信通道将请求从负载均衡器转发到一组应用服务器节点。应用程序服务器节点使用此连接来传输服务器端负载,通过一组称为 Mod-Cluster Management Protocol(MCMP)的 HTTP 方法将系和生命周期事件回发到负载均衡器。这种附加反馈通道允许 mod_proxy_cluster 提供一定程度的智能和粒度,在其他负载平衡解决方案中未找到。此模块要求在后端服务器中安装 ModCluster 客户端才能成功通信。
  • 配置语法更改:

    • 在由 mod_access_compat 模块提供的已弃用的 Allow 指令中,注释( # 字符)现在会触发语法错误,而不是静默忽略。
  • 其他更改:

    • 内核线程 ID 现在直接在错误信息中使用,从而使它们准确且更简洁。
    • 多个小幅改进和漏洞修复。
    • 模块作者可使用多个新接口。

从 RHEL 8 开始,httpd 模块 API 没有向后兼容的更改。

Apache HTTP Server 2.4 是此 Application Stream 的初始版本,您可以将其作为 RPM 软件包轻松安装。

如需更多信息,请参阅设置 Apache HTTP web 服务器

(JIRA:RHELPLAN-68364, BZ#1931976, JIRA:RHELPLAN-80725)

RHEL 9 提供了 nginx 1.20

RHEL 9 包括 nginx 1.20 web 和代理服务器。与版本 1.18 相比,这个版本提供了很多程序错误修复、安全修复、新功能及改进。

新特性:

  • nginx 现在支持使用在线证书状态协议(OCSP)的客户端 SSL 证书验证。
  • nginx 现在支持基于最小可用空间量清除缓存。此支持作为 proxy_cache_path 指令的 min_free 参数实施。
  • 添加了一个新的 ngx_stream_set_module 模块,它可让您为变量设置值。
  • 添加了一个新的 nginx-mod-devel 软件包,它提供所有必要的文件,包括 RPM 宏和 nginx 源代码,以便为 nginx 构建外部动态模块。

增强的指令:

  • 现在,可以使用多个新指令,如 ssl_conf_commandssl_reject_handshake
  • proxy_cookie_flags 指令现在支持变量。

改进了 HTTP/2:

  • ngx_http_v2 模块现在包含 lingering_closelingering_timelingering_timeout 指令。
  • 处理 HTTP/2 中的连接已与 HTTP/1.x 一致。从 nginx 1.20 中,使用 keepalive_timeoutkeepalive_requests 指令,而不是移除的 http2_recv_timeouthttp2_idle_timeouthttp2_max_requests 指令。

Nginx 1.20 是此 Application Stream 的初始版本,您可以将其作为 RPM 软件包轻松安装。额外的 nginx 版本将会作为模块提供,在以后的 RHEL 9 次版本中会带有较短的生命周期。

如需更多信息,请参阅设置和配置 NGINX

BZ#1953639BZ#1991720

RHEL 9 中的 Varnish Cache 6.6

RHEL 9 包括 Varnish Cache 6.6,这是一个高性能 HTTP 反向代理。

自 6.0 版本开始的主要变化包括:

  • 提高了日志处理工具的性能,如 varnishlog
  • 改进了统计的准确性
  • 在缓存查询中有多个优化
  • 各种配置更改
  • 修复了很多改进和程序错误修复

Varnish Cache 6 是此 Application Stream 的初始版本,您可以将其作为 RPM 软件包轻松安装。

(BZ#1984185)

RHEL 9 引入了 Squid 5

RHEL 9 通过 Squid 5.2 提供,这是一个用于 Web 客户端的高性能代理缓存服务器,支持 FTP、Gopher 和 HTTP 数据对象。与版本 4 相比,这个版本提供了很多程序错误修复、安全修复、新功能及改进。

新特性:

  • Squid 通过使用 Happy Eyeballs(HE)算法提高责任。

    • Squid 现在会在很快请求转发时使用接收的 IP 地址,需要它而无需等待所有潜在的转发目的地完全解析。
    • 可用的新指令包括: happy_eyeballs_connect_gap,happy_eyeballs_connect_limit, 和 happy_eyeballs_connect_timeout 指令。
    • dns_v4_first 指令已被删除。
  • Squid 现在在 Content Delivery Networks(CDN)中使用 CDN-Loop 标头作为循环检测的来源。
  • Squid 引入了对 SSL bumping 的对等支持。
  • 提供了新的互联网内容适配器协议(ICAP)尾随程序功能,它允许 ICAP 代理在邮件正文后可靠地发送消息元数据。

对配置选项的更改:

  • mark_client_packet 配置选项已替换了 clientside_mark
  • shared_transient_entries_limit 配置选项已替换 collapsed_forwarding_shared_entries_limit

Squid 5 是此 Application Stream 的初始版本,您可以将其作为 RPM 软件包轻松安装。

如需更多信息,请参阅配置 Squid 缓存代理服务器

(BZ#1990517)

RHEL 9 中的 MariaDB 10.5

RHEL 9 提供 MariaDB 10.5MariaDB 10.5 是此 Application Stream 的初始版本,您可以轻松地作为 RPM 软件包安装。在以后的 RHEL 9 次要发行本中,其他 MariaDB 版本将会作为模块提供较短的生命周期。

如需更多信息,请参阅使用 MariaDB

(BZ#1971248)

RHEL 9 包括 MySQL 8.0

RHEL 9 提供 MySQL 8.0MySQL 8.0 是此 Application Stream 的初始版本,您可以轻松地作为 RPM 软件包安装。MySQL 8.0 生命周期比 RHEL 9 的生命周期短。详情请查看 Red Hat Enterprise Linux Application Streams 生命周期文档

有关使用方法的详情,请参考 使用 MySQL

(JIRA:RHELPLAN-78673)

RHEL 9 提供 PostgreSQL 13

RHEL 9 提供 PostgreSQL 13PostgreSQL 13 是此 Application Stream 的初始版本,您可以轻松地作为 RPM 软件包安装。在以后的 RHEL 9 次要发行本中,其他 PostgreSQL 版本将会作为模块提供更短的生命周期。

如需更多信息,请参阅使用 PostgreSQL

(JIRA:RHELPLAN-78675)

RHEL 9 中的 Redis 6.2

RHEL 9 由 Redis 6.2 提供,它比 RHEL 8 提供的 6.0 版本提供了很多程序错误和安全修复和增强。

值得注意的是,Red Hatis 服务器配置文件现在位于专用目录中: /etc/redis/redis.conf/etc/redis/sentinel.conf。在 RHEL 8 版本中,这些文件的位置分别是 /etc/redis.conf/etc/redis-sentinel.conf

Redis 6 是此 Application Stream 的初始版本,您可以轻松地作为 RPM 软件包安装。

(BZ#1959756)

新软件包:perl-Module-Signature

RHEL 9 引进了 perl-Module-Signature Perl 模块。使用这个新模块,您可以为 cpan 启用签名检查来缓解 CVE-2020-16156。如需更多信息,请参阅如何在 perl-CPAN 中缓解 perl-App-cpanminus 和 CVE-2020-16156 中的 CVE-2020-16154

(BZ#2039361)