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


RHEL 8 中提供的 Python 3.12

RHEL 8.10 引入了 Python 3.12,由新软件包 python3.12 提供,以及为其构建的软件包套件,以及 ubi8/python-312 容器镜像。

与之前发布的 Python 3.11 相比,显著改进包括:

  • Python 引入了一个用于通用类和函数的新 type 语句和新类型参数语法。
  • 格式化的字符串字面(f-string)已在语法中被正式化,现在被直接集成到解析器中。
  • Python 现在提供一个唯一的每解释器全局解释器锁(GIL)。
  • 现在,您可以使用 Python 代码中的缓冲协议。
  • 为提高安全性,SHA1、SHA3、SHA2-384、SHA2-512 和 MD5 加密算法的内置 hashlib 实现已被 HACL* 项目的正式验证代码替代。如果 OpenSSL 没有提供它们,则内置的实现仍可用。
  • CPython 中的字典、列标和理解现在是内联的。这显著提高了理解执行的速度。
  • CPython 现在支持 Linux perf 分析器。
  • CPython 现在对支持的平台提供堆栈溢出保护。

要从 python3.12 堆栈安装软件包,请使用,例如:

# yum install python3.12
# yum install python3.12-pip

要运行解释器,请使用,例如:

$ python3.12
$ python3.12 -m pip --help

如需更多信息,请参阅 安装和使用 Python

有关 Python 3.12 的支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-14942

Python 中的一个控制电子邮件地址解析的新环境变量

为缓解 CVE-2023-27043,一个向后兼容的更改,以确保在 Python 3 中引入了更严格的电子邮件地址的解析。

此更新引入了一个新的 PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING 环境变量。当您将此变量设置为 true 时,以前的、不太严格的解析行为是整个系统的默认设置:

export PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING=true

但是,对受影响函数的单个调用可能仍然启用更严格的行为。

您可以通过使用以下内容创建 /etc/python/email.cfg 配置文件来取得相同的结果:

[email_addr_parsing]
PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING = true

如需更多信息,请参阅知识库文章 缓解 Python 中引入更严格的电子邮件地址解析的 CVE-2023-27043

Jira:RHELDOCS-17369[1]

新模块流:ruby:3.3

RHEL 8.10 在新的 ruby:3.3 模块流中引入了 Ruby 3.3.0。与 RHEL 8.7 一起发布的 Ruby 3.1 相比,这个版本提供了几个性能改进、程序错误和安全修复以及新功能。

主要改进包括:

  • 您可以使用新的 Prism 解析器而不是 RipperPrism 是 Ruby 语言的一个可移植的、容错的和可维护的递归下降解析器。
  • YJIT,Ruby 即时(JIT)编译器实现,不再是实验性的,它提供了主要的性能改进。
  • 改进了 Regexp 匹配算法,以减少潜在的正则表达式拒绝服务(ReDoS)漏洞的影响。
  • 新的实验性 RJIT (一个纯 Ruby JIT)编译器取代了 MJIT。在生产环境中使用 YJIT。
  • 现在提供了一个新的 M:N 线程调度程序。

其他显著变化:

  • 现在,您必须使用 Lrama LALR 解析器生成器,而不是 Bison
  • 已删除了几个弃用的方法和常量。
  • Racc gem 已从默认 gem 提升到捆绑 gem。

要安装 ruby:3.3 模块流,请使用:

# yum module install ruby:3.3

如果要从以前的 ruby 模块流升级,请参阅 切换到后期的流

有关 Ruby 3.3 的支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-17090[1]

新模块流:php:8.2

RHEL 8.10 添加了 PHP 8.2,它比版本 8.0 提供了几个程序错误修复和增强。

使用 PHP 8.2,您可以:

  • 使用枚举(Enums)功能,定义一个仅限于离散的可能值之一的自定义类型。
  • 使用 readonly 修饰符声明一个属性,以防止在初始化后修改属性。
  • 使用光纤、全栈和可中断功能。
  • 使用只读类。
  • 声明几个新的独立类型。
  • 使用一个新的 Random 扩展。
  • 在特征中定义约束。

要安装 php:8.2 模块流,请使用以下命令:

# yum module install php:8.2

如果要从以前的 php 流升级,请参阅 切换到后期的流

有关 RHEL 8 上 PHP 用法的详情,请参阅 使用 PHP 脚本语言

有关 php 模块流的支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-14705[1]

perl-DateTime-TimeZone 模块的 name() 方法现在返回时区名称

perl-DateTime-TimeZone 模块已更新至版本 2.62,它将 name() 方法返回的值从时区别名改为主时区名称。

如需更多信息和示例,请参阅知识库文章 perl-DateTime-TimeZone API 中与时区名称和别名相关的更改

Jira:RHEL-35685

一个新模块流:nginx:1.24

nginx 1.24 web 和代理服务器现在作为 nginx:1.24 模块流提供。与之前发布的版本 1.22 相比,这个版本提供了几个程序错误修复、安全修复、新功能和增强。

与传输层安全(TLS)相关的新功能和更改:

  • 当在 ssl_session_cache 指令中使用共享内存时,加密密钥现在会自动为 TLS 会话票据进行轮转。
  • 内存使用率已在带有安全套接字层(SSL)代理的配置中进行了优化。
  • 现在,您可以使用 resolver 指令的 ipv4=off 参数在解析时禁用查找 IPv4 地址。
  • nginx 现在支持 $proxy_protocol_tlv_* 变量,其存储出现在 PROXY v2 TLV 协议中的 Type-Length-Value (TLV)字段的值。
  • ngx_http_gzip_static_module 模块现在支持字节范围。

其他更改:

  • 标头行现在在内部 API 中表示为链接列表。
  • nginx 现在在 ngx_http_perl_module$r->header_in() 方法中和查找 $http_..., $sent_http_..., $sent_trailer_..., $upstream_http_...$upstream_trailer_.. 变量的过程中连接传递给 FastCGI、SCGI 和 uwsgi 后端的相同名称的头字符串。
  • 如果重新定义侦听套接字的协议参数,nginx 现在会显示一个警告。
  • 如果管道被客户端使用了,则 nginx 现在关闭与 lingering 的连接。
  • 各种 SSL 错误的日志记录级别已降低,例如从 Critical 降到 Informational

要安装 nginx:1.24 流,请使用:

# yum module install nginx:1.24

要从以前的 nginx 流升级,请 切换到后期流

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

有关 nginx 模块流的支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期 文章。

Jira:RHEL-14714[1]

一个新模块流:mariadb:10.11

MariaDB 10.11 现在作为新模块流 mariadb:10.11 提供。与之前可用的版本 10.5 相比,显著的改进包括:

  • 一个新的 sys_schema 功能。
  • 原子数据定义语言(DDL)语句。
  • 一个新的 GRANT ...TO PUBLIC 特权。
  • 单独的 SUPERREAD ONLY ADMIN 特权。
  • 一个新的 UUID 数据库数据类型。
  • 支持安全套接字层(SSL)协议版本 3;MariaDB 服务器现在需要正确配置的 SSL 才能启动。
  • 通过 natural_sort_key() 函数支持自然排序顺序。
  • 一个新的用于任意文本格式化的 SFORMAT 函数。
  • 对 UTF-8 字符集和 UCA-14 排序规则的更改。
  • systemd 套接字激活文件在 /usr/share/ 目录中提供。请注意,与上游相反,它们不是 RHEL 中默认配置的一部分。
  • 包含 MariaDB 字符串而不是 MySQL 的错误消息。
  • 中文语言中提供的错误消息。
  • 对默认 logrotate 文件的更改。
  • 对于 MariaDB 和 MySQL 客户端,命令行上指定的连接属性(如 --port=3306)现在强制客户端和服务器之间通信的协议类型,如 tcpsocket管道memory

有关 MariaDB 10.11 中更改的更多信息,请参阅 MariaDB 10.5 和 MariaDB 10.11 之间的显著区别

有关 MariaDB 的更多信息,请参阅 使用 MariaDB

要安装 mariadb:10.11 流,请使用:

# yum module install mariadb:10.11

如果要从 mariadb:10.5 模块流升级,请参阅 从 MariaDB 10.5 升级到 MariaDB 10.11

有关 mariadb 模块流的支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-3637

一个新模块流:postgresql:16

RHEL 8.10 引入了 PostgreSQL 16,它比版本 15 提供了几个新功能和增强。

主要改进包括:

  • 增强的批量加载提高了性能。
  • libpq 库现在支持连接级负载均衡。您可以使用新的 load_balance_hosts 选项来获得更有效的负载平衡。
  • 现在,您可以创建自定义配置文件,并将其包含在 pg_hba.confpg_ident.conf 文件中。
  • PostgreSQL 现在支持与 pg_hba.conf 文件中的数据库和角色条目匹配的正则表达式。

其他更改包括:

  • PostgreSQL 不再与 postmaster 二进制文件一起分发。使用提供的 systemd 单元文件(systemctl start postgres 命令)启动 postgresql 服务器的用户不受这个更改的影响。如果您之前通过 postmaster 二进制文件直接启动了 postgresql 服务器,则您现在必须使用 postgres 二进制文件。
  • PostgreSQL 不再在软件包中提供 PDF 格式的文档。改为使用 在线文档

另请参阅 使用 PostgreSQL

要安装 postgresql:16 流,请使用以下命令:

# yum module install postgresql:16

如果要从 RHEL 8 中早期的 postgresql 流升级,请按照 切换到后期流 中描述的流程操作,然后迁移 PostgreSQL 数据,如 迁移到 PostgreSQL 的 RHEL 8 版本 中所述。

有关支持的 postgresql 模块流长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-3636

Git rebase 到版本 2.43.0

Git 版本控制系统已更新至版本 2.43.0,与之前发布的版本 2.39 相比,它提供了 bug 修复、增强和性能改进。

主要改进包括:

  • 现在,您可以将新的 --source 选项与 git check-attr 命令一起使用,来从提供的 tree-ish 对象,而不是当前工作目录读取 .gitattributes 文件。
  • Git 现在可以将信息从 WWW-Authenticate response-type 标头的传递到凭证帮助程序。
  • 对于空提交,git format-patch 命令现在会写一个包含提交标头的输出文件,而不是创建一个空文件。
  • 现在,您可以使用 git blame --contents=<file> <revision> -- <path> 命令,来通过指向 <revision> 的历史记录查找在 <file> 内容开始的行的源。
  • git log --format 命令现在接受 %(decorate) 占位符来进一步自定义,以扩展 --decorate 选项提供的能力。

Jira:RHEL-17103[1]

Git LFS rebase 到版本 3.4.1

Git 大文件存储(LFS)扩展已更新至版本 3.4.1,与之前发布的版本 3.2.0 相比,它提供了 bug 修复、增强和性能改进。

主要变更包括:

  • git lfs push 命令现在从标准输入读取引用和对象 ID。
  • Git LFS 现在在不依赖 Git 来处理替代的 remote。
  • Git LFS 现在支持 WWW-Authenticate response-type 标头作为凭证帮助程序。

Jira:RHEL-17102[1]

提高了 Python 解释器的性能

RHEL 8 中所有支持的 Python 版本现在使用 -O3 优化标记编译,这是上游中的默认设置。因此,您可以观察到 Python 应用程序和解释器本身的性能的提高。

以下公告发行版本提供了这些更改:

Jira:RHEL-49614[1], Jira:RHEL-49636, Jira:RHEL-49644, Jira:RHEL-49638

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.