4.10. 動的プログラミング言語、Web サーバー、およびデータベースサーバー

nodejs:18 モジュールストリームに完全に対応しました。

以前はテクノロジープレビューとして利用できた nodejs:18 モジュールストリームは、RHSA-2022:8833 アドバイザリーのリリースで完全に対応しています。nodejs:18 モジュールストリームでは、LTS (Long Term Support) バージョンの Node.js 18.12 が提供されるようになりました。

RHEL 8.5 に含まれる Node.js 18 は、RHEL 8.7 以降で利用可能な Node.js 16 上で、多くの新機能と、バグおよびセキュリティーの修正を提供します。

主な変更点は、以下のとおりです。

  • V8 エンジンがバージョン 10.2 にアップグレードされました。
  • npm パッケージマネージャーがバージョン 8.18.0 にアップグレードされました。
  • Node.js が実験的な新しい fetcj API を提供するようになりました。
  • Node.js は、新しい実験的な node:test モジュールを提供するようになりました。これにより、Test Anything Protocol (TAP) 形式で結果を報告するテストの作成が容易になります。
  • Node.js は、IPv4 よりも IPv6 アドレスを優先するようになりました。

nodejs:18 モジュールストリームをインストールするには、以下を使用します。

# yum module install nodejs:18

nodejs:16 ストリームからアップグレードする場合は、皇族のストリームへの切り替え を参照してください。

(BZ#2083073)

nodejs:18 がバージョン 18.14 にリベースされ、npm がバージョン 9 にリベースされました。

RHSA-2023:1583 でリリースされた Node.js 18.14 には、npm のバージョン 8 からバージョン 9 への SemVer メジャーアップグレードが含まれています。この更新はメンテナンス上の理由から必要であり、npm 設定の調整が必要になる場合があります。

特に、特定のレジストリーに範囲を限定しない認証関連の設定はサポートされなくなりました。この変更はセキュリティー上の理由から行われました。スコープ指定されていない認証設定を使用した場合、指定されたトークンは .npmrc ファイルにリストされているすべてのレジストリーに送信されます。

スコープなしの認証トークンを使用する場合は、レジストリースコープ付きトークンを生成して .npmrc ファイルに指定します。

.npmrc ファイル内に //registry.npmjs.org/:_auth など、_auth を使用する設定行がある場合は、それらを //registry.npmjs.org/:_authToken=${NPM_TOKEN} に置き換え、生成したスコープ付きトークンを指定します。

変更の完全なリストについては、アップストリームの変更ログ を参照してください。

(BZ#2178087)

新しいモジュールストリーム: ruby:3.1

RHEL 8.7 では、新しい ruby:3.1.2 モジュールストリームに Ruby 3.1 が導入されました。このバージョンでは、RHEL 8.5 で配布される Ruby 3.0 に対するパフォーマンスの向上、バグおよびセキュリティー修正、および新機能が数多く追加されました。

主な機能拡張は、次のとおりです。

  • Interactive Ruby (IRB) ユーティリティーは、オートコンプリート機能とドキュメントダイアログを提供するようになりました。
  • lib/debug.rb を置き換える新しい debug gem は、パフォーマンスを改善し、リモートデバッグとマルチプロセス/マルチスレッドデバッグをサポートします。
  • error_highlight gem は、バックトレースでエラーの詳細な場所を提供するようになりました。
  • ハッシュリテラルデータ型とキーワード引数の値を省略できるようになりました。
  • ピン Operator (^) がパターンマッチングで式を受け入れるようになりました。
  • 1 行のパターンマッチングで括弧を省略できるようになりました。
  • 新しい実験的なインプロセス Just-in-Time (JIT) コンパイラーである YJIT が、AMD および Intel 64 ビットアーキテクチャーで利用可能になりました。
  • TypeProf For IDE ユーティリティーが導入されました。これは、IDE 内の Ruby コード用の実験的な静的型分析ツールです。

Method Based Just-in-Time Compiler (MJIT) では、以下の通りパフォーマンスが改善されました。

  • Rails のようなワークロードでは、デフォルトの最大 JIT キャッシュ値が 100 から 10000 に増加しました。
  • クラスイベントの TracePoint が有効になっている場合、JIT を使用してコンパイルされたコードがキャンセルされなくなりました。

その他の主な変更点は次の通りです。

  • tracer.rb ファイルが削除されました。
  • バージョン 4.0 以降、Psych YAML パーサーはデフォルトで safe_load メソッドを使用します。

ruby:3.1 モジュールストリームをインストールするには、以下を使用します。

# yum module install ruby:3.1

以前の ruby モジュールストリームからアップグレードするには、Switching to a later stream を参照してください。

(BZ#2063772)

新しいモジュールストリーム: mercurial:6.2

RHEL 8.7 は、新しいモジュールストリームとして Mercurial 6.2 を追加します。このバージョンでは、RHEL 8.0 以降に利用可能な Mercurial 4.8 よりも多くのバグ修正、機能強化、およびパフォーマンスの改善が提供されます。

主な変更点は、以下のとおりです。

  • Mercurial 6.2Python 3.6 以降をサポートします
  • MercurialPython 2 をサポートしなくなりました
  • hg purge および hg clean コマンドで新しい -i オプションが提供されるようになりました。これにより、追跡されていないファイルの代わりに無視されたファイルを削除できます。
  • hg diff および hg extdiff コマンドは、--from <revision> および --to <revision> 引数をサポートするようになりました
  • 新しい内部マージユーティリティー internal:mergediff が利用可能になりました
  • Zstandard (ZSTD) 圧縮は、利用可能な場合、新しいリポジトリーにデフォルトで使用されるようになりました
  • 必要な拡張機能が見つからない場合に Mercurial が起動しないようにする、必要な拡張機能を指定する新しい方法が利用可能になりました。

さらに、hg コマンドの C ラッパーを提供する新しい mercurial-chg ユーティリティーが利用可能になりました。chg コマンドを使用すると、Mercurial コマンドサーバーのバックグラウンドプロセスが作成され、C プログラムがそのバックグラウンドプロセスに接続して Mercurial コマンドを実行します。その結果、パフォーマンスが大幅に向上します。

mercurial:6.2 モジュールストリームをインストールするには、次を使用します。

# yum module install mercurial:6.2

mercurial:4.8 ストリームからアップグレードする場合は、新しいストリームへの切り替えを 参照してください。

(BZ#2089849)

mariadb-java-client がバージョン 2.7.1 にリベースされました

Java で開発されたアプリケーション用の MariaDB コネクターを提供する mariadb-java-client パッケージが、バージョン 2.7.1 に更新されました。

この更新では、サービスに次の変更が導入されています。

  • クライアント認証プラグインがサービスとして定義されるようになりました。その結果、新しいクライアント認証プラグインを簡単に追加できます。ドライバーには、MySQL との互換性のために caching_sha2_password および sha256_password プラグインが含まれています。
  • 資格情報プラグインが資格情報を提供できるようになりました。ドライバーには、AWS IAMEnvironment、および Property の 3 つのデフォルトプラグインが含まれています。
  • SSL ファクトリーサービスにより、カスタム SSL 実装を使用できるようになりました。たとえば、新しい HostnameVerifier 実装を作成できます。

その他の主な変更点は次の通りです。

  • enabledSslProtocolSuites オプションには、デフォルトで TLSv1.2 が含まれるようになりました。

(BZ#2043212)

バージョン 6.2.7 にリベースされた redis

redis:6 モジュールストリームを提供する高度なキー値ストアである Redis 6 は、バージョン 6.2.7 に更新されました。この更新では、RHEL 8.4 以降に利用可能なバージョン 6.0 に対するバグ修正、セキュリティー修正、および改善が提供されます。

(BZ#1999873)

httpd 設定の LimitRequestBody ディレクティブのデフォルトが新しくなりました

CVE-2022-29404 を修正するために、Apache HTTP Server の LimitRequestBody ディレクティブのデフォルト値が 0 (無制限) から 1 GiB に変更されました。

LimitRequestBody の値が httpd 設定ファイルで明示的に指定されていないシステムでは、httpd パッケージを更新すると、LimitRequestBody がデフォルト値の 1 GiB に設定されます。その結果、HTTP 要求本文の合計サイズがデフォルトの制限である 1 GiB を超える場合、httpd413 Request Entity Too Large エラーコードを返します。

HTTP 要求メッセージ本文の新しいデフォルトの許容サイズがユースケースに不十分な場合は、それぞれのコンテキスト (サーバー、ディレクトリーごと、ファイルごと、または場所ごと) 内で httpd 設定ファイルを更新し、適切な制限をバイト単位で設定します。たとえば、新しい制限を 2 GiB に設定するには、次を使用します。

LimitRequestBody 2147483648

すでに LimitRequestBody ディレクティブで明示的な値を使用するように設定されているシステムは、この変更の影響を受けません。

(BZ#2128016)