第 9 章 动态编程语言、网页服务器、数据库服务器
下面的章节包含对 RHEL 8 和 RHEL 9 之间动态编程语言、Web 服务器和数据库服务器的最显著的更改。
9.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 生态系统的主要区别
统一的 python
命令
python
命令的未指定版本形式(/usr/bin/python
)在 python-unversioned-command
软件包中提供。在某些系统中,默认情况下不安装此软件包。要手动安装 python
命令的未指定版本形式,请使用 dnf install /usr/bin/python
命令。
在 RHEL 9 中,python
命令的未指定版本形式指向默认的 Python 3.9 版本,它等同于 python3
和 python3.9
命令。在 RHEL 9 中,您无法配置未版本化的命令以指向与 Python 3.9 不同的版本。
python
命令用于交互式会话。在生产环境中,建议明确使用 python3、
python3.9
或 python3.11
。
您可以使用 dnf remove /usr/bin/python
命令卸载未指定版本的 python
命令。
如果您需要不同的 python
或 python3
命令,您可以在 /usr/local/bin
或 ~/.local/bin
中创建自定义符号链接,或使用 Python 虚拟环境。
还提供了其他未版本化的命令,如 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。
perl
和 perl-interpreter
软件包之间的区别
RHEL 9 提供 perl
和 perl-interpreter
软件包。perl
软件包适用于开发,因为它在依赖项中包含完整的 Perl 上游分发,包括 GCC。在生产系统上,使用 perl-interpreter
软件包,该软件包包含主 /usr/bin/perl
解释器。
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) 的知识库文章。
从 RHEL 9.2 开始提供 Tomcat
RHEL 9.2 引入了 Apache Tomcat 服务器版本 9。Tomcat 是 Java Servlet 和 JavaServer Pages 技术官方参考实现中使用的 servlet 容器。Java Servlet 和 JavaServer Pages 规范是由 Sun 在 Java 社区流程下开发的。Tomcat 是在开放和参与的环境中开发的,并在 Apache 软件许可证版本 2.0 下发布。