4.11. 動的プログラミング言語、Web サーバー、およびデータベースサーバー
Python 3.12 が RHEL 9 で利用できるようになりました
RHEL 9.4 では、新しいパッケージ python3.12 とそのためにビルドされた一連のパッケージ、および ubi9/python-312 コンテナーイメージによって提供される Python 3.12 が導入されています。
以前にリリースされた Python 3.11 と比較しての主な機能拡張は次のとおりです。
-
Python では、ジェネリッククラスと関数に対して新しい
typeステートメントと新しい型パラメーター構文が導入されています。 - フォーマットされた文字列リテラル (f-strings) が文法で形式化され、パーサーに直接統合できるようになりました。
- Python が、インタープリターごとに固有のグローバルインタープリターロック (GIL) を提供するようになりました。
- Python コードからバッファープロトコルを使用できるようになりました。
-
CPythonのディクショナリー、リスト、セットの内包表記がインライン化されました。これにより、内包表記の実行速度が大幅に向上します。 -
CPythonが Linuxperfプロファイラーをサポートするようになりました。 -
CPythonが、サポート対象のプラットフォームでスタックオーバーフローの保護を提供するようになりました。
Python 3.12 とそのためにビルドされたパッケージは、同じシステム上に Python 3.9 および Python 3.11 と並行してインストールできます。
python3.12 スタックからパッケージをインストールするには、たとえば、以下を使用します。
dnf install python3.12 dnf install python3.12-pip
# dnf install python3.12
# dnf 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 9.4 では、新しい ruby:3.3 モジュールストリームに Ruby 3.3.0 が導入されました。このバージョンでは、RHEL 9.1 で配布される 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 モジュールストリームをインストールするには、次のコマンドを使用します。
dnf module install ruby:3.3
# dnf module install ruby:3.3
以前の ruby モジュールストリームからアップグレードするには、後続のストリームへの切り替え を参照してください。
Ruby 3.3 のサポート期間は、Red Hat Enterprise Linux Application Streams ライフサイクル を参照してください。
Jira:RHEL-17089[1]
新しいモジュールストリーム: php:8.2
RHEL 9.4 は、PHP 8.2 を新しい php:8.2 モジュールストリームとして追加します。
このリリースでの改善点は次のとおりです。
- 読み取り専用クラス
- いくつかの新しいスタンドアロンタイプ
-
新しい
Randomエクステンション - トレイトの制約
php:8.2 モジュールストリームをインストールするには、次のコマンドを使用します。
dnf module install php:8.2
# dnf module install php:8.2
php:8.1 ストリームからアップグレードする場合は、後続のストリームへの切り替え を参照してください。
RHEL 9 での PHP の使用方法の詳細は、Using the PHP scripting language を参照してください。
php モジュールストリームのサポート期間の詳細は、Red Hat Enterprise Linux Application Streams のライフサイクル を参照してください。
Jira:RHEL-14699[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 ストリームをインストールするには、以下を実行します。
dnf module install nginx:1.24
# dnf module install nginx:1.24
nginx 1.22 ストリームからアップグレードするには、後続のストリームに切り替えます。
詳細は、NGINX のセットアップと設定 を参照してください。
nginx モジュールストリームのサポート期間は、Red Hat Enterprise Linux アプリケーションストリームのライフサイクル を参照してください。
Jira:RHEL-14713[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 ストリームをインストールするには、以下を使用します。
dnf module install mariadb:10.11
# dnf module install mariadb:10.11
MariaDB 10.5 からアップグレードする場合は、MariaDB 10.5 から MariaDB 10.11 へのアップグレード を参照してください。
mariadb モジュールストリームのサポート期間の詳細は、Red Hat Enterprise Linux Application Streams のライフサイクル を参照してください。
新しいモジュールストリーム: postgresql:16
RHEL 9.4 では、PostgreSQL 16 が postgresql:16 モジュールストリームとして導入されています。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 ストリームをインストールするには、次のコマンドを使用します。
dnf module install postgresql:16
# dnf module install postgresql:16
RHEL 9 内で以前の postgresql ストリームからアップグレードする場合は 後続のストリームへの切り替え の説明に従い、PostgreSQL の RHEL9 バージョンへの移行 で説明されているように 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-17100[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-17101[1]