Chapter 8. Dynamic programming languages, web servers, database servers
Review the most notable changes to dynamic programming languages, web servers, and database servers between RHEL 9 and RHEL 10.
- Initial versions available in RHEL 10
RHEL 10 provides the following dynamic programming languages:
- Python 3.12
- Ruby 3.3
- Node.js 22
- Perl 5.40
- PHP 8.3
RHEL 10 includes the following version control systems:
- Git 2.47
- Subversion 1.14
The following web servers are distributed with RHEL 10:
- Apache HTTP Server 2.4.63
- nginx 1.26
The following proxy caching servers are available:
- Varnish Cache 7.6
- Squid 6.10
RHEL 10 offers the following database servers:
- MariaDB 10.11
- MySQL 8.4
- PostgreSQL 16
- Valkey 8.0
- Additional Application Streams available in RHEL 10
- When planning to adopt or upgrade to RHEL 10, review the Red Hat Enterprise Linux Application Streams Life Cycle for any additional streams that you plan to use. Verify that their supported lifetime matches the lifecycle of your workloads.
- Change of currency symbol for Bulgaria and Croatia in
glibclocales In RHEL 10.2, the C libraries now configure the
glibclocales for Bulgaria and Croatia to use the euro currency symbol. The relevant interfaces are not versioned, so the currency symbol changes immediately for all data that uses these locales, including existing data.If your applications rely on currency formatting or parsing for the Bulgarian or Croatian locales, review their behavior after upgrading to RHEL 10.2. Verify that:
- User interfaces correctly display the euro symbol instead of the previous currency symbol.
- Any parsing, validation, or reporting logic that assumes the old currency symbol continues to work as expected or is updated accordingly.
- PCP archive format change between RHEL 9 and RHEL 10
- From RHEL 10, PCP 7.x changes the default archive version from v2 to v3, introducing 64-bit offsets and nanosecond precision. Both PCP 7.x and the older PCP 6.x, which is available in RHEL 9, can read v2 and v3 archives transparently, ensuring a seamless transition when you upgrade from RHEL 9 to RHEL 10.
- RHEL 10 provides the MariaDB, MySQL, and PostgreSQL services as RPM packages instead of modules
In previous RHEL versions, Red Hat used module streams to provide multiple versions of MariaDB, MySQL, and PostgreSQL in parallel. RHEL 10 provides the MariaDB, MySQL, and PostgreSQL services as RPM and alternative streams will also be provided as RPM packages instead of modules. The new concept incorporates the stream version into the package name, for example
postgresql16. If Red Hat adds a new stream of MariaDB, MySQL, or PostgreSQL in a future RHEL version, you can then also install them also by using the package name.For further details, see The new era of packaging parallel database streams in RHEL 10.
libdbhas been removedRHEL 8 and RHEL 9 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. Therefore, thelibdbpackage is not available in RHEL 10. Users oflibdbare advised to migrate to a different key-value database. For more information, see the following Red Hat Knowledgebase articles:Therefore, the
libdbpackage is not available in RHEL 10. Users oflibdbare 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.- Session extension is now available in SQLite
- RHEL 10 enables session extension in SQLite. With this feature, you can now work in sets of changes that can later be applied to different databases. Additionally, you can revert all changes in the set at once.
- PHP 8.4 available
RHEL 10.2 provides PHP in version 8.4. This version provides many enhancements and bug fixes over version 8.3, most notably:
- Property hooks provide support for computed properties natively understood by IDEs and static analysis tools.
- Asymmetric visibility controls the scope to write to a property independently from the scope to read the property.
-
The
#[\Deprecated]attribute makes the existing deprecation mechanism available to user-defined functions, methods, and class constants. -
A new DOM API is available within the
Domnamespace, which includes standards-compliant support for parsing HTML5 documents. -
The
BcMath\Numberobject enables object-oriented usage and standard mathematical operators when working with arbitrary precision numbers. -
The
array_find(),array_find_key(),array_any(), andarray_all()functions are available. -
You can access properties and methods of a newly instantiated object without wrapping the
newexpression in parentheses.
- MariaDB 11.8 was added
MariaDB 11.8 packages are available in RHEL 10.2.
Notable changes over the previously available version 10.11 include:
-
By default, MariaDB 11.8 uses the
utf8mb4character set instead oflatin1and legacyutf8to ensure full Unicode support. Vector support was added to support machine learning. This includes the
VECTOR(N)data type and the following functions:-
VEC_DISTANCE() -
VEC_DISTANCE_EUCLIDEAN() -
VEC_DISTANCE_COSINE() -
Vec_FromText(json_array) -
Vec_ToText(vector_column)
-
-
The
mariadb-dumpandmariadb-importutilities natively support parallel operations. Specify the--dirand--paralleloptions to dump or load multiple databases simultaneously. -
The upper limit of the
TIMESTAMPdata type was increased from2038-01-19to2106-02-07while still using 4 bytes of storage. -
The
UUID_v4()andUUID_v7()functions were added. -
The JSON handling was improved. This includes new functions, such as
JSON_SCHEMA_VALID(). The following system variables were added to define the maximum storage for temporary tables and other internally created temporary files:
-
max_tmp_session_space_usagelimits the disk space used per session -
max_tmp_total_space_usagelimits the total disk space used by the MariaDB server instance
-
-
The
des_encryptanddes_decryptconfiguration file parameters are deprecated and will be removed in a future MariaDB release.
Notable breaking differences:
The following utilities were renamed but symbolic links were created for backward compatibility:
-
mysql>mariadb -
mysqldump>mariadb-dump -
mysqladmin>mariadb-admin
If you still use the previous names of these utilities, they display deprecation warnings.
-
-
The
innodb_defragmentconfiguration parameter is no longer supported. Remove it from your configuration files.
For more information about MariaDB, see Using MariaDB.
To install the new packages, enter:
# dnf install mariadb11.8-serverIf you want to upgrade from MariaDB 10.11, see Upgrading from a RHEL 9 version of MariaDB 10.11 to MariaDB 11.8.
For information about the length of support for the
mariadbmodule streams, see Red Hat Enterprise Linux Application Streams Life Cycle.-
By default, MariaDB 11.8 uses the
- PostgreSQL 18 was added
PostgreSQL 18 packages are available.
Notable changes:
-
The new Asynchronous I/O (AIO) subsystem provides up to three times faster data reads. You can enable this subsystem by setting the
io_methodvariable. - The MD5 authentication method is deprecated and will be removed in a future major PostgreSQL release.
- By default, data page checksums are enabled in PostgreSQL 18. If you upgrade from a previous version with data page checksums disabled, you must either enable the feature before the update or disable it during the upgrade. For further details, see Upgrading from a RHEL 9 version of PostgreSQL 16 to PostgreSQL 18.
- PostgreSQL 18 supports native OAUth 2.0 single sign-on authentication.
- The database service supports Federal Information Processing Standards (FIPS) mode validation for regulated environments.
-
The
pg_upgradeutility preserves statistics during major release upgrades and significantly faster reaches full performance after an upgrade.
-
The new Asynchronous I/O (AIO) subsystem provides up to three times faster data reads. You can enable this subsystem by setting the