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


RHEL 9 中的 Python 3.12 可用

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

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

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

Python 3.12 和为它构建的软件包可以在同一个系统中与 Python 3.9 和 Python 3.11 并行安装。

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

# dnf install python3.12
# dnf install python3.12-pip

要运行解释器,例如:

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

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

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

Jira:RHEL-14941

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 9.4 在新的 ruby:3.3 模块流中引入了 Ruby 3.3.0。与 RHEL 9.1 一起提供的 Ruby 3.1 相比,这个版本提供了很多性能改进、程序错误和安全修复以及新功能。

主要改进包括:

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

其他显著变化:

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

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

# dnf module install ruby:3.3

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

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

Jira:RHEL-17089[1]

新模块流: php:8.2

RHEL 9.4 将 PHP 8.2 添加为新的 php:8.2 模块流。

这个版本的改进包括:

  • readonly 类
  • 几个新的独立类型
  • 新的 随机 扩展
  • 特征中的限制

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

# dnf module install php:8.2

如果要从 php:8.1 流升级,请参阅 切换到更新的流

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

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

Jira:RHEL-14699[1]

新模块流: nginx:1.24

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

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

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

其他更改:

  • 标头行现在作为内部 API 中的链接列表表示。
  • nginx 现在会在 ngx_http_perl_module 的 $r->header_in ()方法中的 $r->header_in () 方法中与 FastCGI、SCGI 和 uwsgi 后端连接相同,并在查找 $http_.... , $sent_http_... $sent_trailer_..., $upstream_http_..., 和 $upstream_trailer_.. 变量.
  • 现在,如果重新定义侦听套接字的协议参数,nginx 会显示一个警告。
  • 现在,如果客户端使用了 pipelining,则 nginx 现在关闭带有 lingering 的连接。
  • 各种 SSL 错误的日志记录级别较低,例如从 Critical信息

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

# dnf module install nginx:1.24

要从 nginx 1.22 流升级 ,请切换到更新的流

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

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

Jira:RHEL-14713[1]

新模块流: mariadb:10.11

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

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

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

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

# dnf module install mariadb:10.11

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

Jira:RHEL-3638

新模块流: postgresql:16

RHEL 9.4 引入了 PostgreSQL 16,作为 postgresql:16 模块流。与版本 15 相比,PostgreSQL 16 提供了很多新功能和增强。

主要改进包括:

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

其他更改包括:

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

另请参阅 使用 PostgreSQL

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

# dnf module install postgresql:16

如果要从 RHEL 9 中的早期 postgresql 流升级,请按照 切换到更新的流中介绍的步骤进行,然后迁移 PostgreSQL 数据,如 迁移到 PostgreSQL 的 RHEL 9 版本 中所述。

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

Jira:RHEL-3635

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> &lt ;revision&gt; -- <path > 命令,通过导致 < revision > 的历史记录查找从 <file > 内容开始的行源
  • git log --format 命令现在接受 %(decorate) 占位符来进一步自定义,以扩展 --decorate 选项提供的功能。

Jira:RHEL-17100[1]

Git LFS rebase 到版本 3.4.1

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

主要变更包括:

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

Jira:RHEL-17101[1]

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.