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


RHEL 10 中的 Python 3.12

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

其他版本的 Python 3 将通过 AppStream 存储库作为具有较短生命周期的 RPM 软件包发布,并可并行安装。python 命令(/usr/bin/python)和其他 Python 相关的命令(如 pip )位于未指定版本的表单中,并指向默认的 Python 3.12 版本。

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

  • Python 引入了一个用于通用类和函数的新 type 语句和新类型参数语法。
  • 格式化的字符串字面(f-string)已在语法中被正式化,现在被直接集成到解析器中。
  • Python 现在提供一个唯一的每解释器全局解释器锁(GIL)。
  • 现在,您可以使用 Python 代码中的缓冲协议。
  • CPython 中的字典、列标和理解现在是内联的。这显著提高了理解执行的速度。
  • CPython 现在支持 Linux perf 分析器。
  • CPython 现在对支持的平台提供堆栈溢出保护。
  • Python 3.12 使用 GCC 的 -O3 优化标记进行编译,该标记已默认在上游使用。因此,您可以观察到 Python 应用程序和解释器的性能有所提高。

例如,要从 Python 3.12 堆栈安装软件包,您可以使用以下命令:

# dnf install python3
# dnf install python3-pip
Copy to Clipboard Toggle word wrap

例如,要运行解释器,例如,您可以使用以下命令:

$ python
$ python3
$ python3 -m pip --help
Copy to Clipboard Toggle word wrap

Jira:RHELDOCS-18402[1], Jira:RHEL-45315

RHEL 10 引入了 Perl 5.40

RHEL 10 包括 Perl 5.40,与以前可用的 5.32 版本相比,其提供了各种改进。

  • 内核改进:

    • Perl 现在支持 Unicode 15.0。
    • 现在,您可以使用一个新的 -g 命令行选项,它是 umask 选项 -0777 的一个别名。
    • -M 命令行选项现在接受空格。
    • 新的 内置 模块现在为新的始终存在的功能提供文档。
    • 添加了一个新的 try/catch 功能。
    • 弃用警告现在有特定的子类来提供精细的控制。请注意,您仍然可以在单个声明中禁用所有弃用警告。
    • @INC 钩子已被改进,包括 $INC 变量和新的 INCDIR 方法。
    • 现在在编译时间会检测流出 deferfinally 模块的控制流。
    • 在模式中使用 (?{ …​ })(?{ …​ }) 现在会在该模式中全局禁用各种优化。
    • REG_INF 正则表达式引擎限定符的限制已从 65,536 增加到 2,147,483,647。
    • 新的正则表达式变量 ${^LAST_SUCCESSFUL_PATTERN} 允许访问当前范围中匹配的最后一个成功的模式。
    • 引入了一个新的 __CLASS__ 关键字。
    • Perl 现在支持一个新的 ^^ 逻辑 XOR 运算符。
  • 不兼容的更改:

    • 物理空 sort 函数现在会触发一个编译时间错误。
    • readline() 函数不再清除流错误和 EOF 标志。
    • INIT 块不再在 BEGIN 块内的 exit() 函数后运行。
    • 对未知软件包调用 import 方法现在会产生一条警告。
    • return 函数不再允许一个间接对象。
    • 错误和警告中的更改现在可以在测试中导致失败。
  • 弃用:

    • ' 字符用作软件包名称分隔符已弃用。
    • switch 功能和智能匹配运算符 ~~ 已被弃用。
    • 使用 goto 函数从外部范围跳到内部范围已弃用。
  • 内部更改:

    • 已删除多个已弃用的 C 函数。
    • 内部 C API 功能现在在支持它的平台上使用 __attribute__(hidden) 属性隐藏。这意味着它们不再从这些平台上的 XS 模块调用。
  • 模块:

    • Term::TableTest2::Suite 模块已添加到 Perl Core 中。
    • 大多数模块都已更新。

如需更多信息,请参阅 perl5340delta,perl5360delta,perl5380deltaperldelta 手册页。

Jira:RHELDOCS-18869[1]

RHEL 10 引入了 Ruby 3.3

RHEL 10 包括 Ruby 3.3.7。这个版本提供了几个性能改进、程序错误和安全修复以及新功能:

主要改进包括:

  • 您可以使用新的 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,请输入:

# dnf install ruby
Copy to Clipboard Toggle word wrap

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

Jira:RHELDOCS-19658[1]

RHEL 10 提供了 Node.js 22

RHEL 10 与 Node.js 22 一起分发。与之前可用的 Node.js 20 相比,这个版本提供了许多新功能、bug 修复、安全修复和性能改进。

主要变更包括:

  • V8 JavaScript 引擎已升级至版本 12.4。
  • 现在在可用的构架(AMD 和 Intel 64 位构架和 64 位 ARM 架构)上默认启用了 V8 Maglev 编译器。
  • Maglev 提高了短期 CLI 程序的性能。
  • npm 软件包管理器已升级至 10.8.1 版本。
  • node --watch 模式现在被视为稳定。在 watch 模式下,监视文件中的更改导致 Node.js 进程重启。
  • 与浏览器兼容的 WebSocket 实现现在被视为稳定,并默认启用。因此,提供了 Node.js 的 WebSocket 客户端,而没有外部依赖。
  • Node.js 现在包含从 package.json 执行脚本的一个实验性功能。要使用这个功能,请运行 node --run <script-in-package.json> 命令。

要安装 Node.js 22,请输入:

# dnf install nodejs
Copy to Clipboard Toggle word wrap

Jira:RHEL-35992

RHEL 10 引入了 PostgreSQL 16

RHEL 10 与 PostgreSQL 版本 16 一起分发。

主要改进包括:

  • 增强的批量加载提高了性能。
  • libpq 库中的新的 load_balance_hosts 选项支持更高效的负载均衡。
  • /var/lib/pgsql/data/ 目录中的配置文件支持包括自定义 pg_hba.confpg_ident.conf 文件。
  • /var/lib/pgsql/data/pg_hba.conf 文件支持匹配数据库和角色条目的正则表达式。

其他更改包括:

  • 没有 postmaster 二进制文件。改为使用 postgres 二进制文件。此更改仅影响使用 postmaster 启动服务的用户。
  • 软件包中没有 PDF 文档。改为使用 上游文档

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

要安装 PostgreSQL 16,请输入:

# dnf install postgresql16
Copy to Clipboard Toggle word wrap

Jira:RHEL-62694

RHEL 10 引入了 MySQL 8.4

RHEL 10 与 MySQL 8.4 一起分发。与之前提供的 8.0 版本相比,主要变化包括:

  • 弃用的 mysql_native_password 身份验证插件不再启用。
  • 当升级到 MySQL 8.4 时,具有 BINLOG_ADMIN 特权的用户帐户或角色会自动被授予 TRANSACTION_GTID_TAG 特权。
  • 安装 MySQL 8.4 时,会在服务器的数据目录中创建或更新 mysql_upgrade_history 文件。文件为 JSON 格式,包括有关安装的版本、安装的日期和时间的信息,以及发行版本是否是长期支持(LTS 系列)或创新系列的一部分。
  • 在数据库中授权使用 %_ 字符作为通配符已被弃用,通配符功能将在以后的 MySQL 发行版本中被删除。这些字符将被视为文字。当 partial_revokes 服务器系统变量设为 ON 时,它们已被视为文字。
  • 在检查特权时,服务器将 % 字符视为 localhost 的同义词已被弃用。
  • 弃用的 --ssl-admin-ssl 服务器选项及 have_sslhave_openssl 服务器系统变量已被删除。改为使用 --tls-version--admin-tls-version 服务器系统变量。
  • 弃用的 default_authentication_plugin 系统变量已被删除。改为使用 authentication_policy 服务器系统变量。
  • 弃用的 SET_USER_ID 特权已被删除。改为您可以将 SET_ANY_DEFINER 特权用来创建定义器对象,以及用于孤立对象保护的 ALLOW_NONEXISTENT_DEFINER 特权。
  • 弃用的 mysql_upgrade 工具已被删除。

如需更多信息,请参阅 上游 MySQL 文档

Jira:RHEL-36050

RHEL 10 提供了带有 pgvector 扩展的 PostgreSQL 16

RHEL 10 与 PostgreSQL 16 一起分发。除了 pgaudit,pg_repackdecoderbufs 扩展外,Postgreql 堆栈现在还提供 pgvector 扩展。使用 pgvector 扩展,您可以直接存储和查询 PostgreSQL 数据库中嵌入的高维度向量,并执行向量相似性搜索。向量嵌入的是通常在机器学习和 AI 应用程序中使用的数据的数字表示,用来捕获文本的语义含义、镜像或其他数据类型。

Jira:RHEL-35993[1]

RHEL 10 引入了 MariaDB 10.11

RHEL 10 与 MariaDB 10.11 一起分发。主要变更包括:

  • 新的 sys_schema 功能。
  • 原子数据定义语言(DDL)语句。
  • 新的 GRANT …​ TO PUBLIC 特权。
  • 将 SUPER 与 READ 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)现在强制客户端与服务器之间通信的协议类型,如 tcp、socket、pipe 或 memory。

Jira:RHELDOCS-19550[1]

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat