4.11. 動的プログラミング言語、Web サーバー、およびデータベースサーバー
nodejs:16 モジュールストリームに完全に対応しました。
以前はテクノロジープレビューとして利用できた nodejs:16 モジュールストリームは、RHSA-2021: 5171 アドバイザリーのリリースで完全に対応しています。nodejs:16 モジュールストリームでは、LTS (Long Term Support) バージョンの Node.js 16.13.1 が提供されるようになりました。
RHEL 8.5 に含まれる Node.js 16 は、RHEL 8.3 以降で利用可能な Node.js 14 上で、多くの新機能と、バグおよびセキュリティーの修正を提供します。
主な変更点は、以下のとおりです。
-
V8エンジンがバージョン 9.4 にアップグレードされました。 -
npmパッケージマネージャーがバージョン 8.1.2 にアップグレードされました。 -
新しい
Timers PromisesAPI は、Promiseオブジェクトを返すタイマー関数の代替セットを提供します。 -
Node.jsが実験的な新しいWeb StreamsAPI を提供するようになりました。 -
Node.jsには、Corepackが含まれるようになりました。これは、手動でインストールすることなく、指定したプロジェクトに設定されたパッケージマネージャーを使用できるようにする試験的なツールです。 -
Node.jsは、ESM ローダーフック API を提供する試験的な ECMAScript モジュール (ESM) を提供します。これにより、ESM ローダーフックが統合されます。
nodejs:16 モジュールストリームをインストールするには、以下を使用します。
yum module install nodejs:16
# yum module install nodejs:16
nodejs:14 ストリームからアップグレードする場合は、Switching to a later stream を参照してください。
(BZ#1953991、BZ#2027610)
新しいモジュールストリーム: ruby:3.0
RHEL 8.5 では、新しい ruby:3.0 モジュールストリームに Ruby 3.0.2 が導入されました。このバージョンでは、RHEL 8.3 で配布される Ruby 2.7 に対するパフォーマンスの向上、バグおよびセキュリティー修正、および新機能が数多く追加されました。
主な機能拡張は、次のとおりです。
同時実行機能および並列処理機能:
-
スレッドセーフ実行を提供する Actor-model 抽象化である
Ractorは実験的な機能として提供されます。 -
Fiber Schedulerが実験的な機能として導入されました。Fiber Schedulerはブロッキング操作をインターセプトし、既存のコードを変更せずに軽量の同時実行を可能にします。
-
スレッドセーフ実行を提供する Actor-model 抽象化である
静的な分析機能:
-
Rubyプログラムの構造を説明するRBS言語が導入されました。RBSで書かれたタイプ定義を解析するためにrbsgem が追加されまし た。 -
TypeProfユーティリティーが導入されました。これはRubyコードのタイプ解析ツールです。
-
-
case/in式を使用したパターンの照合は実験的なものではありません。 - 実験的な機能である 1 行パターンの一致が再設計されました。
- 検索パターンが実験的な機能として追加されました。
以下のパフォーマンスの向上が実装されています。
-
Interactive Ruby Shell (IRB)に長いコードを貼り付けることができるようになりました。 -
measureコマンドが、時間測定のためにIRBに追加されました。
その他の主な変更点は次の通りです。
- キーワード引数は他の引数から分離されています。
-
$HOME/.gem/ディレクトリーがすでに存在しない限り、ユーザーがインストールした gems のデフォルトディレクトリーは$HOME/.local/share /gem/になります。
ruby:3.0 モジュールストリームをインストールするには、以下を使用します。
yum module install ruby:3.0
# yum module install ruby:3.0
以前の ruby モジュールストリームからアップグレードするには、Switching to a later stream を参照してください。
Python urllib 解析関数のデフォルト区切り文字の変更点
Python urllib ライブラリーの Web Cache Poisoning CVE-2021-23336 を緩和するため、urllib.parse.parse_qsl および urllib.parse.parse_qs 関数のデフォルト区切り文字が、アンパサンド (&) とセミコロン (;) の両方が単一のアンパサンドに変更されます。
この変更は、RHEL 8.4 のリリースで Python 3.6 に実装され、Python 3.8 および Python 2.7 にバックポートされます。
デフォルトの区切り文字の変更は後方互換性がない可能性があるため、Red Hat はデフォルトの区切り文字が変更された Python パッケージの動作を設定する手段を提供します。さらに、影響を受ける urllib 解析関数は、お客様のアプリケーションが変更の影響を受けることを検知すると警告を発行します。
詳細は、Mitigation of Web Cache Poisoning in the Python urllib library (CVE-2021-23336) ナレッジ記事を参照してください。
Python 3.9 は影響を受けませんが、新しいデフォルトの区切り文字 (&) がすでに含まれているため、Python コードで urllib.parse.parse_qsl および urllib.parse.parse_qs 関数を呼び出す時に、セパレーターパラメーターを渡すことしか変更できません。
(BZ#1935686、BZ#1931555、BZ#1969517)
Python ipaddress モジュールで、IPv4 アドレスでゼロを使用できなくなりました。
CVE-2021-29921 を緩和するために、Python ipaddress モジュールが、AddressValueError: Leading zeros の先頭のゼロを持つ IPv4 アドレスを拒否するようになりました。
この変更は、python38 および python39 モジュールに導入されました。RHEL に同梱される以前の Python バージョンは、CVE-2021-29921 の影響を受けません。
以前の動作に依存するお客様は、IPv4 アドレス入力を事前に処理して、先頭のゼロオフを削除します。以下に例を示します。
>>> def reformat_ip(address): return '.'.join(part.lstrip('0') if part != '0' else part for part in address.split('.'))
>>> reformat_ip('0127.0.0.1')
'127.0.0.1'
>>> def reformat_ip(address): return '.'.join(part.lstrip('0') if part != '0' else part for part in address.split('.'))
>>> reformat_ip('0127.0.0.1')
'127.0.0.1'
読みやすために明示的なループで先頭のゼロを取り除くには、以下を使用します。
(BZ#1986007、BZ#1970504、BZ#1970505)
php:7.4 モジュールストリームがバージョン 7.4.19 にリベース
php:7.4 モジュールストリームが提供する PHP スクリプト言語が、バージョン 7.4.6 から 7.4.19 にアップグレードされました。今回の更新で、複数のセキュリティー修正およびバグ修正が提供されます。
(BZ#1944110)
新しいパッケージ: pg_repack
postgresql:12 および postgresql:13 モジュールストリームに、新しい pg_repack パッケージが追加されました。pg_repack パッケージは PostgreSQL 拡張を提供し、テーブルおよびインデックスから bloat を取り除き、必要に応じてクラスターインデックスの物理順序を復元します。
(BZ#1967193、BZ#1935889)
新しいモジュールストリーム: nginx:1.20
nginx 1.20 Web およびプロキシーサーバーが nginx:1.20 モジュールストリームとして利用できるようになりました。この更新では、以前にリリースされたバージョン 1.18 に対するバグ修正、セキュリティー修正、新機能、および機能拡張が数多く提供されます。
新機能:
-
nginxが、OCSP (Online Certificate Status Protocol) を使用したクライアント SSL 証明書の検証に対応するようになりました。 -
nginxが、最小限の空き領域に基づくキャッシュクリアに対応するようになりました。これに対応するのは、proxy_cache_pathディレクティブのmin_freeパラメーターとして実装されています。 -
新しい
ngx_stream_set_moduleモジュールが追加されました。これにより、変数の値を設定できるようになりました。
拡張されたディレクティブ:
-
ssl_conf_command、ssl_reject_handshakeなど、新しいディレクティブが複数利用できるようになりました。 -
proxy_cookie_flagsディレクティブが変数に対応するようになりました。
HTTP/2 のサポートが改善されました。
-
ngx_http_v2モジュールに、lingering_closeディレクティブ、lingering_timeディレクティブ、lingering_timeoutディレクティブが含まれるようになりました。 -
HTTP/2 での接続の処理は、HTTP/1.x に合わせて行われました。
nginx 1.20では、削除したhttp2_recv_timeoutディレクティブ、http2_idle_timeoutディレクティブ、およびhttp2_max_requestsディレクティブの代わりに、keepalive_timeoutディレクティブおよびkeepalive_requestsディレクティブを使用します。
nginx:1.20 ストリームをインストールするには、以下を実行します。
yum module install nginx:1.20
# yum module install nginx:1.20
nginx:1.20 ストリームからアップグレードする場合は、後続のストリームへの切り替え を参照してください。
(BZ#1945671)
squid:4 モジュールストリームがバージョン 4.15 にリベース
squid:4 モジュールストリームで利用可能な Squid プロキシーサーバーが、バージョン 4.11 からバージョン 4.15 にアップグレードされました。今回の更新で、さまざまなバグ修正およびセキュリティー修正が提供されます。
(BZ#1964384)
LVM system.devices ファイル機能が RHEL 8 で利用可能になりました
RHEL 8.5 では、LVM system.devices ファイル機能が導入されました。/etc/lvm/devices/system.devices ファイルにデバイスのリストを作成することにより、LVM が認識して使用する特定のデバイスを選択し、LVM が不要なデバイスを使用しないようにすることができます。
system.devices ファイル機能を有効にするには、lvm.conf 設定ファイルで use_devicesfile=1 を設定し、system.devices ファイルにデバイスを追加します。system.devices ファイル機能が有効になっている場合、LVM はデバイスフィルター設定を無視します。警告メッセージが表示されないようにするには、lvm.conf ファイルからフィルター設定を削除します。
詳細は、lvmdevices (8) の man ページを参照してください。
(BZ#1922312)
quota が HPE XFS に対応
quota ユーティリティーは、HPE XFS ファイルシステムのサポートを提供するようになりました。その結果、HPE XFS のユーザーは、quota ユーティリティーを使用して、ユーザーおよびグループのディスク使用量を監視および管理できます。
(BZ#1945408)
mutt がバージョン 2.0.7 にリベース
Mutt メールクライアントはバージョン 2.0.7 に更新され、機能強化およびバグ修正が数多く追加されました。
主な変更点は、以下のとおりです。
-
Muttは、XOAUTH2メカニズムを使用してOAuth 2.0承認プロトコルをサポートするようになりました。Mutt は、IMAP、POP、および SMTP プロトコルのOAUTHBEARER認証メカニズムもサポートするようになりました。OAuth ベースの機能は、外部スクリプトから提供されます。これにより、認証トークンを使用してGmailなどのさまざまなクラウドメールアドレスとMuttを接続できます。OAuth サポートでMuttを設定する方法の詳細は、How to set up Mutt with Gmail using OAuth2 authentication を参照してください。 -
Muttでは、ドメインリテラルのメールアドレスがサポートされるようになりました (例:user@[IPv6:fcXX:…])。 -
新しい
$ssl_use_tlsv1_3設定変数により、TLS 1.3 接続がメールサーバーでサポートされる場合、この接続が可能になります。この変数はデフォルトで有効になっています。 -
新しい
$imap_deflate変数により、COMPRESS=DEFLATE圧縮がサポートされるようになりました。デフォルトでは、この変数は無効です。 -
$ssl_starttls変数は、暗号化されていない IMAPPREAUTH接続の中止を制御しなくなりました。STARTTLSプロセスに依存している場合は、代わりに$ ssl_force_tls変数を使用してください。
新しい Mutt バージョンに更新した後でも、RHEL ユーザーが既存の環境で問題に遭遇するのを防ぐために、ssl_force_tls 設定変数はデフォルトで no になっていることに注意してください。Mutt のアップストリームバージョンでは、ssl_force_tls がデフォルトで有効になりました。