Chapter 16. Dynamic programming languages, web servers, database servers
This chapter lists the most notable changes to dynamic programming languages, web servers, and database servers between RHEL 8 and RHEL 9.
16.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.
The python
command is intended for interactive sessions. In production, Red Hat recommends using python3
or python3.9
explicitly.
You can uninstall the unversioned python
command by using the dnf remove /usr/bin/python
command. If you need a different python command, you can create custom symlinks in /usr/local/bin
or ~/.local/bin
or 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 previous 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.
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.