Chapter 9. Dynamic programming languages, web servers, database servers The following chapter contains the most notable changes to dynamic programming languages, web servers, and database servers between RHEL 8 and RHEL 9. 9.1. Notable changes to dynamic programming languages, web and database servers Initial Application Streams versions in RHEL 9 RHEL 9 improves the Application Streams experience by providing initial Application Stream versions that can be installed as RPM packages using the traditional dnf install command. RHEL 9.0 provides the following dynamic programming languages: Node.js 16 Perl 5.32 PHP 8.0 Python 3.9 Ruby 3.0 RHEL 9.0 includes the following version control systems: Git 2.31 Subversion 1.14 The following web servers are distributed with RHEL 9.0: Apache HTTP Server 2.4 nginx 1.20 The following proxy caching servers are available: Varnish Cache 6.6 Squid 5.2 RHEL 9.0 offers the following database servers: MariaDB 10.5 MySQL 8.0 PostgreSQL 13 Redis 6.2 Some additional Application Stream versions will be distributed as modules with a shorter life cycle in future minor RHEL 9 releases. Major differences in the Python ecosystem since RHEL 8 The unversioned python command The unversioned form of the python command ( /usr/bin/python ) is available in the python-unversioned-command package. On some systems, this package is not installed by default. To install the unversioned form of the python command manually, use the dnf install /usr/bin/python command. In RHEL 9, the unversioned form of the python command points to the default Python 3.9 version and it is an equivalent to the python3 and python3.9 commands. In RHEL 9, you cannot configure the unversioned command to point to a different version than Python 3.9. The python command is intended for interactive sessions. In production, it is recommended to use python3 , python3.9 , or python3.11 explicitly. You can uninstall the unversioned python command by using the dnf remove /usr/bin/python command. If you need a different python or python3 command, you can create custom symlinks in /usr/local/bin or ~/.local/bin , or use a Python virtual environment. Several other unversioned commands are available, such as /usr/bin/pip in the python3-pip package. In RHEL 9, all unversioned commands point to the default Python 3.9 version. Architecture-specific Python wheels Architecture-specific Python wheels built on RHEL 9 newly adhere to the upstream architecture naming, which allows customers to build their Python wheels on RHEL 9 and install them on non-RHEL systems. Python wheels built on releases of RHEL are forward compatible and can be installed on RHEL 9. Note that this affects only wheels containing Python extensions, which are built for each architecture, not Python wheels with pure Python code, which is not architecture-specific. Differences between the perl and perl-interpreter packages RHEL 9 provides both the perl and perl-interpreter packages. The perl package is suitable for development because it contains the full Perl upstream distribution in dependencies, including GCC. On production systems, use the perl-interpreter package, which contains the main /usr/bin/perl interpreter. Notable changes to libdb RHEL 8 and RHEL 9 currently provide Berkeley DB ( libdb ) version 5.3.28, which is distributed under the LGPLv2 license. The upstream Berkeley DB version 6 is available under the AGPLv3 license, which is more restrictive. The libdb package is deprecated as of RHEL 9 and might not be available in future major RHEL releases. Cryptographic algorithms have been removed from libdb in RHEL 9. Multiple libdb dependencies have been removed from RHEL 9. Users of libdb are advised to migrate to a different key-value database. For more information, see the Knowledgebase article Available replacements for the deprecated Berkeley DB (libdb) in RHEL . Tomcat available since RHEL 9.2 RHEL 9.2 introduces the Apache Tomcat server version 9. Tomcat is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies. The Java Servlet and JavaServer Pages specifications are developed by Sun under the Java Community Process. Tomcat is developed in an open and participatory environment and released under the Apache Software License version 2.0.

Commands: