4.9. 動的プログラミング言語、Web サーバー、およびデータベースサーバー
Python 3.12 が RHEL 8 で利用できるようになりました
RHEL 8.10 では、新しいパッケージ python3.12 とそのためにビルドされた一連のパッケージ、および ubi8/python-312 コンテナーイメージによって提供される Python 3.12 が導入されています。
以前にリリースされた Python 3.11 と比較しての主な機能拡張は次のとおりです。
-
Python では、ジェネリッククラスと関数に対して新しい
typeステートメントと新しい型パラメーター構文が導入されています。 - フォーマットされた文字列リテラル (f-strings) が文法で形式化され、パーサーに直接統合できるようになりました。
- Python が、インタープリターごとに固有のグローバルインタープリターロック (GIL) を提供するようになりました。
- Python コードからバッファープロトコルを使用できるようになりました。
-
CPythonのディクショナリー、リスト、セットの内包表記がインライン化されました。これにより、内包表記の実行速度が大幅に向上します。 -
CPythonが Linuxperfプロファイラーをサポートするようになりました。 -
CPythonが、サポート対象のプラットフォームでスタックオーバーフローの保護を提供するようになりました。
python3.12 スタックからパッケージをインストールするには、たとえば、以下を使用します。
yum install python3.12 yum install python3.12-pip
# yum install python3.12
# yum install python3.12-pip
インタープリターを実行するには、たとえば、以下を使用します。
python3.12 python3.12 -m pip --help
$ python3.12
$ python3.12 -m pip --help
詳細は、Python のインストールおよび使用 を参照してください。
Python 3.12 のサポート期間は、Red Hat Enterprise Linux Application Streams ライフサイクル を参照してください。
メールアドレスの解析を制御するための Python の新しい環境変数
CVE-2023-27043 の問題を軽減するために、メールアドレスをより厳密に解析するための後方互換性のない変更が Python 3 に導入されました。
この更新では、新しい PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING 環境変数が導入されました。この変数を true に設定すると、比較的厳密ではない以前の解析動作が、システム全体のデフォルトになります。
export PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING=true
export PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING=true
ただし、該当する関数を個別に呼び出すと、より厳密な動作が有効になる可能性があります。
次の内容で /etc/python/email.cfg 設定ファイルを作成しても、同じ結果を得ることができます。
[email_addr_parsing] PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING = true
[email_addr_parsing]
PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING = true
詳細は、ナレッジベース記事 Mitigation of CVE-2023-27043 introducing stricter parsing of email addresses in Python を参照してください。
Jira:RHELDOCS-17369[1]
新しいモジュールストリーム: ruby:3.3
RHEL 8.10 では、新しい ruby:3.3 モジュールストリームに Ruby 3.3.0 が導入されました。このバージョンでは、RHEL 8.7 で配布される Ruby 3.1 に対するパフォーマンスの向上、バグおよびセキュリティー修正、および新機能がいくつか追加されました。
主な機能拡張は、次のとおりです。
-
Ripperの代わりに新しいPrismパーサーを使用できます。Prismは、移植可能で、エラー耐性があり、メンテナンス性に優れた Ruby 言語の再帰下降パーサーです。 - Ruby の just-in-time (JIT) コンパイラー実装である YJIT は、もはや実験的機能ではなく、大幅なパフォーマンスの向上をもたらします。
-
Regexp一致アルゴリズムが改善され、潜在的な正規表現サービス拒否 (ReDoS) の脆弱性の影響が軽減されました。 - 新しい実験的な RJIT (純粋な Ruby の JIT) コンパイラーが MJIT を置き換えます。実稼働環境では YJIT を使用してください。
- 新しい M:N スレッドスケジューラーが利用可能になりました。
その他の主な変更点:
-
今後は、
Bisonの代わりにLramaLALR パーサージェネレーターを使用する必要があります。 - いくつかの非推奨のメソッドと定数が削除されました。
-
Raccgem はデフォルトの gem からバンドルされた gem に昇格しました。
ruby:3.3 モジュールストリームをインストールするには、次のコマンドを使用します。
yum module install ruby:3.3
# yum module install ruby:3.3
以前の ruby モジュールストリームからアップグレードするには、後続のストリームへの切り替え を参照してください。
Ruby 3.3 のサポート期間は、Red Hat Enterprise Linux Application Streams ライフサイクル を参照してください。
Jira:RHEL-17090[1]
新しいモジュールストリーム: php:8.2
RHEL 8.10 では、PHP 8.2 が追加され、バージョン 8.0 に対するバグ修正と機能拡張がいくつか提供されています。
PHP 8.2 では、以下が可能です。
- 列挙 (Enums) 機能を使用して、可能な値の離散数の 1 つに制限されるカスタム型を定義します。
-
初期化後のプロパティー変更を防ぐために、
readonly修飾子を使用してプロパティーを宣言します。 - ファイバー、フルスタック、割り込み可能な関数を使用します。
- 読み取り専用クラスを使用します。
- いくつかの新しいスタンドアロン型を宣言します。
-
新しい
Random拡張機能を使用します。 - 特性の制約を定義します。
php:8.2 モジュールストリームをインストールするには、次のコマンドを使用します。
yum module install php:8.2
# yum module install php:8.2
以前のphp ストリームからアップグレードする場合は、新しいストリームへの切り替え を参照してください。
RHEL 8 での PHP の使用方法の詳細は、PHP スクリプト言語の使用 を参照してください。
php モジュールストリームのサポート期間の詳細は、Red Hat Enterprise Linux Application Streams のライフサイクル を参照してください。
Jira:RHEL-14705[1]
perl-DateTime-TimeZone モジュールの name() メソッドは、タイムゾーン名を返すようになりました。
perl-DateTime-TimeZone モジュールがバージョン 2.62 に更新され、name() メソッドによって返される値がタイムゾーンエイリアスからメインのタイムゾーン名に変更されました。
詳細と例は、ナレッジベースの記事 Change in the perl-DateTime-TimeZone API related to time zone name and alias を参照してください。
新しいモジュールストリーム: nginx:1.24
nginx 1.24 Web およびプロキシーサーバーが、nginx:1.24 モジュールストリームとして利用できるようになりました。この更新では、以前にリリースされたバージョン 1.22 に対するバグ修正、セキュリティー修正、新機能、および機能拡張がいくつか提供されます。
Transport Layer Security (TLS) に関連する新機能と変更点:
-
ssl_session_cacheディレクティブで共有メモリーを使用する場合、TLS セッションチケットの暗号鍵が自動的にローテーションされるようになりました。 - Secure Sockets Layer (SSL) プロキシーを使用した設定でメモリー使用量が最適化されました。
-
resolverディレクティブのipv4=offパラメーターを使用して、解決時に IPv4 アドレスの検索を無効にできるようになりました。 -
nginx は、PROXY v2 TLV プロトコルに表示される Type-Length-Value (TLV) フィールドの値を格納する
$proxy_protocol_tlv_*変数をサポートするようになりました。 -
ngx_http_gzip_static_moduleモジュールはバイト範囲をサポートするようになりました。
その他の変更点:
- ヘッダー行は、内部 API でリンクされたリストとして表されるようになりました。
-
nginx は、
ngx_http_perl_moduleの$r->header_in()メソッドと、$http_...、$sent_http_...、$sent_trailer_...、$upstream_http_...、および$upstream_trailer_...変数の検索中に、FastCGI、SCGI、および uwsgi バックエンドに渡される同一の名前のヘッダー文字列を連結するようになりました。 - nginx は、リスニングソケットのプロトコルパラメーターが再定義されると警告を表示するようになりました。
- nginx は、クライアントによってパイプラインが使用された場合、接続を遅延して閉じるようになりました。
-
さまざまな SSL エラーのロギングレベルが、たとえば
CriticalからInformationalに引き下げられました。
nginx:1.24 ストリームをインストールするには、以下を実行します。
yum module install nginx:1.24
# yum module install nginx:1.24
以前の nginx ストリームからアップグレードするには、新しいストリームに切り替えます。
詳細は、NGINX のセットアップと設定 を参照してください。
nginx モジュールストリームのサポート期間は、Red Hat Enterprise Linux アプリケーションストリームのライフサイクル を参照してください。
Jira:RHEL-14714[1]
新しいモジュールストリーム: mariadb:10.11
MariaDB 10.11 が、新しいモジュールストリーム mariadb:10.11 として利用できるようになりました。以前に利用可能であったバージョン 10.5 に対する主な機能拡張は、以下のとおりです。
-
新しい
sys_schema機能。 - アトミックデータ定義言語 (DDL) ステートメント。
-
新しい
GRANT ... TO PUBLIC特権。 -
SUPER特権とREAD ONLY ADMIN特権の分離。 -
新しい
UUIDデータベースデータ型。 - Secure Socket Layer (SSL) プロトコルのバージョン 3 のサポート。MariaDB サーバーの起動には、正しく設定された SSL が必要になりました。
-
natural_sort_key()関数による自然なソート順序のサポート。 -
任意のテキストフォーマットのための新しい
SFORMAT関数。 - UTF-8 文字セットと UCA-14 照合の変更。
-
/usr/share/ディレクトリーで利用可能なsystemdソケットのアクティベーションファイル。アップストリームとは異なり、これらのファイルは RHEL のデフォルト設定の一部ではないことに注意してください。 -
MySQLの代わりにMariaDB文字列を含むエラーメッセージ。 - 中国語で利用可能なエラーメッセージ。
- デフォルトの logrotate ファイルへの変更。
-
MariaDB および MySQL クライアントの場合、コマンドラインで指定した接続プロパティー (例:
--port=3306) によって、クライアントとサーバー間の通信のプロトコルタイプ (tcp、socket、pipe、memoryなど) が強制されるようになりました。
MariaDB 10.11 の変更点の詳細は、MariaDB 10.5 と MariaDB 10.11 の主な違い を参照してください。
MariaDB の詳細は、MariaDB の使用 を参照してください。
mariadb:10.11 ストリームをインストールするには、以下を使用します。
yum module install mariadb:10.11
# yum module install mariadb:10.11
mariadb:10.5 モジュールストリームからアップグレードする場合は、MariaDB 10.5 から MariaDB 10.11 へのアップグレード を参照してください。
mariadb モジュールストリームのサポート期間の詳細は、Red Hat Enterprise Linux Application Streams のライフサイクル を参照してください。
新しいモジュールストリーム: postgresql:16
RHEL 8.10 では、PostgreSQL 16 が導入され、バージョン 15 に対する新機能と機能拡張がいくつか提供されています。
主な機能拡張は、次のとおりです。
- 強化された一括ロードによりパフォーマンスが向上します。
-
libpqライブラリーが、接続レベルの負荷分散をサポートするようになりました。より効率的な負荷分散のために、新しいload_balance_hostsオプションを使用できます。 -
カスタム設定ファイルを作成し、それを
pg_hba.confファイルとpg_ident.confファイルに追加できるようになりました。 -
PostgreSQL は、
pg_hba.confファイル内のデータベースおよびロールエントリーに対する正規表現の一致をサポートするようになりました。
その他の変更点は次のとおりです。
-
PostgreSQL は
postmasterバイナリーとともに配布されなくなりました。提供されているsystemdユニットファイル (systemctl start postgresコマンド) を使用してpostgresqlサーバーを起動するユーザーは、この変更の影響を受けません。以前にpostmasterバイナリーを介してpostgresqlサーバーを直接起動していた場合は、今後は代わりにpostgresバイナリーを使用する必要があります。 - PostgreSQL は、パッケージで PDF 形式のドキュメントを提供しなくなりました。代わりに オンラインドキュメント を使用してください。
PostgreSQL の使用 も参照してください。
postgresql:16 ストリームをインストールするには、次のコマンドを使用します。
yum module install postgresql:16
# yum module install postgresql:16
RHEL 8 内で以前の postgresql ストリームからアップグレードする場合は 後続のストリームへの切り替え の説明に従い、PostgreSQL の RHEL 8 バージョンへの移行 で説明されているように PostgreSQL データを移行します。
postgresql モジュールストリームのサポート期間は、Red Hat Enterprise Linux アプリケーションストリームのライフサイクル を参照してください。
Git がバージョン 2.43.0 にリベース
Git バージョン管理システムがバージョン 2.43.0 に更新され、以前にリリースされたバージョン 2.39 に対するバグ修正、機能拡張、およびパフォーマンス向上が実現しました。
主な機能拡張は、次のとおりです。
-
git check-attrコマンドで新しい--sourceオプションを使用して、現在の作業ディレクトリーではなく、提供されたツリー状のオブジェクトから.gitattributesファイルを読み取ることができるようになりました。 -
Git は、
WWW-Authenticateレスポンスタイプヘッダーからの情報を認証情報ヘルパーに渡すことができるようになりました。 -
コミットが空の場合、
git format-patchコマンドは空のファイルを作成する代わりに、コミットのヘッダーを含む出力ファイルを書き込むようになりました。 -
git blame --contents=<file> <revision> -- <path>コマンドを使用して、<file>の内容を起点として<revision>に至る履歴を通じて、行の起源を検索できるようになりました。 -
git log --formatコマンドは、--decorateオプションが提供する機能を拡張するためのさらなるカスタマイズ用に、%(decorate)プレースホルダーを受け入れるようになりました。
Jira:RHEL-17103[1]
Git LFS がバージョン 3.4.1 にリベース
Git Large File Storage (LFS) エクステンションがバージョン 3.4.1 に更新されました。これにより、以前にリリースされたバージョン 3.2.0 に対するバグ修正、機能拡張、およびパフォーマンス向上が実現しました。
主な変更点は、以下のとおりです。
-
git lfs pushコマンドが、標準入力から参照とオブジェクト ID を読み取ることができるようになりました。 - Git LFS は、Git に依存せずに代替リモートを処理するようになりました。
-
Git LFS は、認証情報ヘルパーとして
WWW-Authenticateレスポンスタイプヘッダーをサポートするようになりました。
Jira:RHEL-17102[1]
Python インタープリターのパフォーマンスが向上
RHEL 8 でサポートされているすべてのバージョンの Python が、アップストリームのデフォルトである -O3 最適化フラグを使用してコンパイルされるようになりました。その結果、Python アプリケーションとインタープリター自体のパフォーマンスが向上しました。
この変更は、次のアドバイザリーのリリースで利用可能です。
-
python3.12- RHSA-2024:6961 -
python3.11- RHSA-2024:6962 -
python3- RHSA-2024:6975 -
python39モジュール - RHSA-2024:5962
Jira:RHEL-49614[1], Jira:RHEL-49636, Jira:RHEL-49644, Jira:RHEL-49638
新しい nodejs:22 モジュールストリームが利用可能になりました
RHEA-2025:0734 アドバイザリーのリリースに伴い、新しいモジュールストリーム nodejs:22 が利用可能になりました。
RHEL 8.10 に含まれる Node.js 22 には、RHEL 8.9 以降で利用可能な Node.js 20 に比べて、多数の新機能、バグ修正、セキュリティー修正、およびパフォーマンスの改善を提供します。
主な変更点は、以下のとおりです。
-
V8JavaScript エンジンがバージョン 12.4 にアップグレードされました。 -
V8 Maglevコンパイラーは、これを利用可能なアーキテクチャー (AMD および Intel 64 ビットアーキテクチャーと 64 ビット ARM アーキテクチャー) でデフォルトで有効になりました。 -
Maglevは、短命の CLI プログラムのパフォーマンスを向上させます。 -
npmパッケージマネージャーが、バージョン 10.9.0 にアップグレードされました。 -
node --watchモードは現在安定していると見なされます。watchモードでは、監視対象ファイルの変更によりNode.jsプロセスが再起動されます。 -
WebSocketのブラウザー互換実装は現在、安定していると見なされ、デフォルトで有効になっています。その結果、外部依存関係なしで Node.js への WebSocket クライアントが利用できるようになります。 -
Node.jsには、package.jsonからのスクリプトを実行するための実験的な機能が含まれるようになりました。この機能を使用するには、node --run <script-in-package.json>コマンドを実行します。
nodejs:22 モジュールストリームをインストールするには、次のように入力します。
dnf module install nodejs:22
# dnf module install nodejs:22
nodejs20 ストリームからアップグレードする場合は、新しいストリームへの切り替え を参照してください。
nodejs Application Streams のサポート期間の詳細は、Red Hat Enterprise Linux Application Streams のライフサイクル を参照してください。