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 Promises
API は、Promise
オブジェクトを返すタイマー関数の代替セットを提供します。 -
Node.js
が実験的な新しいWeb Streams
API を提供するようになりました。 -
Node.js
には、Corepack
が含まれるようになりました。これは、手動でインストールすることなく、指定したプロジェクトに設定されたパッケージマネージャーを使用できるようにする試験的なツールです。 -
Node.js
は、ESM ローダーフック API を提供する試験的な ECMAScript モジュール (ESM) を提供します。これにより、ESM ローダーフックが統合されます。
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
で書かれたタイプ定義を解析するためにrbs
gem が追加されまし た。 -
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
以前の 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): parts = [] for part in address.split('.'): if part != "0": part = part.lstrip('0') parts.append(part) return '.'.join(parts)
(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
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
がデフォルトで有効になりました。