Menu Close

第 16 章 动态编程语言、网页服务器、数据库服务器

本章列出了 RHEL 8 和 RHEL 9 之间的动态编程语言、Web 服务器和数据库服务器的最显著变化。

16.1. 动态编程语言、Web 和数据库服务器的显著变化

RHEL 9 中初始应用程序流版本

RHEL 9 改进了应用程序流的使用体验,它提供了初始的应用程序流版本,可以使用传统的 dnf install 命令作为 RPM 软件包进行安装。

RHEL 9.0 提供以下动态编程语言:

  • Node.js 16
  • Perl 5.32
  • PHP 8.0
  • Python 3.9
  • Ruby 3.0

RHEL 9.0 包括以下版本控制系统:

  • Git 2.31
  • Subversion 1.14

以下 web 服务器随 RHEL 9.0 一起发布:

  • Apache HTTP Server 2.4
  • nginx 1.20

以下代理缓存服务器可用:

  • Varnish Cache 6.6
  • Squid 5.2

RHEL 9.0 提供以下数据库服务器:

  • MariaDB 10.5
  • MySQL 8.0
  • PostgreSQL 13
  • Redis 6.2

一些额外的 Application Stream 版本将作为模块发布,并在以后的 RHEL 9 次要发行本中带有较短的生命周期。

自 RHEL 8 开始的 Python 生态系统的主要区别

本节总结了 RHEL 9 中 Python 生态系统与 RHEL 8 相比的显著变化。

统一的 python 命令

python 命令的未指定版本形式(/usr/bin/python)在 python-unversioned-command 软件包中提供。在某些系统中,默认情况下不安装此软件包。要手动安装 python 命令的未指定版本形式,请使用 dnf install /usr/bin/python 命令。

在 RHEL 9 中,python 命令的未指定版本形式指向默认的 Python 3.9 版本,它等同于 python3python3.9 命令。

python 命令用于交互式会话。在生产环境中,红帽建议明确使用 python3python3.9

您可以使用 dnf remove /usr/bin/python 命令卸载未指定版本的 python 命令。如果需要不同的 python 命令,您可以在 /usr/local/bin~/.local/bin 中创建自定义符号链接。

还有其他未指定版本的命令,如 python3- pip 软件包中的 /usr/bin/ pip。在 RHEL 9 中,所有未指定版本的命令都指向默认的 Python 3.9 版本。

特定于架构的 Python wheels

在 RHEL 9 上 构建的特定于体系结构的 Python wheel 新建了上游架构命名,允许客户在 RHEL 9 上构建其 Python wheel 并在非 RHEL 系统中安装它们。在以前的 RHEL 版本构建的 Python wheel 是向前兼容的,可以在 RHEL 9 上安装。请注意,这仅影响包含 Python 扩展的 wheel,这些扩展针对每个架构构建,而不影响包含纯 Python 代码的 Python wheels,这不是特定于架构的 Python wheel。

libdb的显著变化

RHEL 8 和 RHEL 9 目前提供 Berkeley DB(libdb)版本 5.3.28,该版本根据 LGPLv2 许可证发布。上游 Berkeley DB 版本 6 在 AGPLv3 许可证下提供,该许可证更严格。

从 RHEL 9 开始,libdb 软件包已弃用,可能不会在以后的 RHEL 版本中可用。在 RHEL 9 中,加密算法已从 libdb 中删除。从 RHEL 9 中删除了多个 libdb 依赖项。

建议 libdb 用户迁移到其他键值数据库。如需更多信息,请参阅 RHEL 中已弃用的 Berkeley DB(libdb) 的知识库文章。