4.11. 動的プログラミング言語、Web サーバー、およびデータベースサーバー
新しいモジュール python39 が導入されました。
RHEL 8.4 では Python 3.9 が導入されました。これは新しいモジュール python39 および ubi8/python-39 コンテナーイメージで提供されます。
Python 3.8 と比較しての主な機能強化は、以下のとおりです。
-
merge (
|) および update (|=) 演算子がdictクラスに追加されました。 - 接頭辞と接尾辞を削除するメソッドが文字列に追加されました。
-
listおよびdictなどの、特定の標準タイプに、型ヒントとなる汎用が追加されました。 - IANA タイムゾーンデータベースが、新しい zoneinfo モジュールから利用できるようになりました。
Python 3.9 およびこれのためにビルドされたパッケージは、同じシステムの Python 3.6 と Python 3.8 と並行してインストールできます。
python39 モジュールからパッケージをインストールするには、たとえば、以下を使用します。
yum install python39 yum install python39-pip
# yum install python39
# yum install python39-pip
python39:3.9 モジュールストリームは、自動的に有効になります。
インタープリターを実行するには、たとえば、以下を使用します。
python3.9 python3.9 -m pip --help
$ python3.9
$ python3.9 -m pip --help
詳細は、Python のインストールおよび使用 を参照してください。
Red Hat は、RHEL 8 のライフサイクルが終了するまで Python 3.6 のサポートを継続することに留意してください。Python 3.8 と同様に、Python 3.9 のライフサイクルは短くなります。Red Hat Enterprise Linux 8 Application Streams ライフサイクル を参照してください。
(BZ#1877430)
Python urllib 解析関数のデフォルト区切り文字の変更点
Python urllib ライブラリーの Web Cache Poisoning CVE-2021-23336 を緩和するため、urllib.parse.parse_qsl および urllib.parse.parse_qs 関数のデフォルト区切り文字が、アンパサンド (&) とセミコロン (;) の両方が単一のアンパサンドに変更されます。
この変更は、RHEL 8.4 のリリースで Python 3.6 に実装され、RHEL 8 の以下のマイナーリリースで 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#1928904)
新しいモジュールストリーム: swig:4.0
RHEL 8.4 では、新しいモジュールストリーム swig:4.0 として利用できる、SWIG (Simplified Wrapper and Interface Generator) バージョン 4.0 が導入されました。
以前リリースされた SWIG 3.0 への主な変更点は、以下のとおりです。
-
サポートされる
Pythonバージョンは 2.7 および 3.2 から 3.8 のみです。 -
Pythonモジュールが改善されました。生成されたコードが簡素化され、ほとんどの最適化がデフォルトで有効になりました。 -
Ruby 2.7のサポートが追加されました。 -
PHP 7でサポートされる唯一のバージョンの PHP は削除されました。PHP 5に対応しなくなりました。 -
大規模なインターフェイスファイルで
SWIGを実行する場合は、パフォーマンスが大幅に改善されました。 - コマンドラインオプションファイル (応答ファイルとも呼ばれます) のサポートが追加されました。
-
JavaScript
Node.jsバージョン 2 から 10 のサポートが追加されました。 -
バージョン4.4 から 5.1 へのサポートが追加されました。
swig:4.0 モジュールストリームをインストールするには、以下を使用します。
yum module install swig:4.0
# yum module install swig:4.0
swig:3.0 ストリームからアップグレードする場合は、後続のストリームへの切り替え を参照してください。
swig モジュールストリームのサポート期間の詳細は、Red Hat Enterprise Linux 8 Application Streams ライフサイクル を参照してください。
新しいモジュールストリーム: subversion:1.14
RHEL 8.4 では、新しいモジュールストリーム subversion:1.14 が導入されました。Subversion 1.14 は、最新の LTS (Long Term Support) リリースです。
以下は、RHEL 8.0 で配布された Subversion 1.10 以降の主な変更点です。
-
Subversion 1.14には、Subversionを自動化し、お客様のビルドおよびリリースインフラストラクチャーに統合するためのPython 3バインディングが含まれます。 -
新規の
svnadmin rev-sizeコマンドを使用すると、ユーザーはリビジョンの合計サイズを判別できます。 -
新たな
svnadmin build-repcacheコマンドを使用すると、管理者はエントリーが見つからないrep-cacheデータベースに設定することができます。 - 現在の作業コピーステータスの概要を提供するために、新たな実験コマンドが追加されました。
-
svn log、svn info、svn listコマンドに対するさまざまな改善が行われました。たとえば、svn list --human-readableは、ファイルサイズに人間が判読できる単位を使用するようになりました。 -
大規模な作業コピーの
svn statusに大幅に改良されました。
互換性情報:
-
Subversion 1.10のクライアントおよびサーバーはSubversion 1.14サーバーおよびクライアントと相互運用します。ただし、クライアントとサーバーの両方が最新バージョンにアップグレードされない限り、特定の機能は利用できません。 -
Subversion 1.10で作成されたリポジトリーは、Subversion 1.14で正常にロードできます。 -
RHEL 8 で配布されるサブバージョン
Subversion 1.14を使用すると、クライアント側でプレーンテキストのパスワードをキャッシュできます。この動作はSubversion 1.10と同じですが、Subversion 1.14のアップストリームリリースとは異なります。 -
実験的な
Shelving機能が大幅に変更されSubversion 1.10で作成された shelves と互換性がありません。詳細およびアップグレードの手順は、アップストリームのドキュメント を参照してください。 -
グローバルルールおよびリポジトリー固有のルールの両方を使用したパスベースの認証設定の解釈が
Subversion 1.14では変更になりました。影響を受ける設定の詳細については、アップストリームのドキュメント を参照してください。
subversion:1:14 モジュールストリームをインストールするには、以下を使用します。
yum module install subversion:1.14
# yum module install subversion:1.14
subversion:1.10 ストリームからアップグレードする場合は、後続のストリームへの切り替え を参照してください。
subversion モジュールストリームのサポート期間の詳細は、Red Hat Enterprise Linux 8 Application Streams ライフサイクル を参照してください。
新しいモジュールストリーム: redis:6
高度なキー値ストアの Redis 6 のが、新しいモジュールストリーム redis:6 として利用できるようになりました。
Redis 5 への主な変更点は、以下の通りです。
-
Redisがすべてのチャネルで SSL をサポートするようになりました。 -
Redisが、コマンド呼び出しおよびキーパターンアクセスのためのユーザーパーミッションを定義するアクセス制御リスト (ACL) をサポートするようになりました。 -
Redisが新しいRESP3プロトコルをサポートするようになりました。これにより、より多くのセマンティック応答が返されます。 -
Redisがオプションでスレッドを使用して I/O を処理できるようになりました。 -
Redisは、クライアント側のキー値のキャッシュにサーバー側のサポートを提供するようになりました。 -
Redisのアクティブな期限切れサイクルが改善され、期限切れの鍵のエビクションが速くなりました。
Redis 6 には Redis 5 との互換性があります (以下の後方互換性のない変更を除く)。
-
セットキーが存在しない場合は、
SPOP <count>コマンドは null を返しなくなりました。Redis 6では、コマンドは、このシナリオでは空のセットを返します。これは、引数0で呼び出された場合と同様です。
redis:6 モジュールストリームをインストールするには、以下を使用します。
yum module install redis:6
# yum module install redis:6
redis:5 ストリームからアップグレードする場合は、後続のストリームへの切り替え を参照してください。
redis モジュールストリームのサポート期間の詳細は、Red Hat Enterprise Linux 8 Application Streams ライフサイクル を参照してください。
(BZ#1862063)
新しいモジュールストリーム: postgresql:13
RHEL 8.4 リリースでは、PostgreSQL 13 が導入されました。これは、バージョン 12 から多くの新機能および機能強化が追加されています。以下は、主な変更点です。
- B-tree インデックスエントリーの重複によるパフォーマンスの向上
- 集約またはパーティション化されたテーブルを使用するクエリーのパフォーマンス向上
- 拡張された統計使用時のクエリー計画の改善
- インデックスの並列化された退避
- インクリメンタルソート
PostgreSQL 11 以降のアップストリームで利用できる、Just-In-Time (JIT) のコンパイルサポートは postgresql:13 モジュールストリームでは提供されていないことに注意してください。
PostgreSQL の使用 も参照してください。
postgresql:13 ストリームをインストールするには、以下を実行します。
yum module install postgresql:13
# yum module install postgresql:13
RHEL 8 内で以前の postgresql ストリームからアップグレードする場合は 後続のストリームへの切り替え の説明に従い、Migrating to a RHEL 8 バージョンの PostgreSQL への移行 で説明されているように PostgreSQL データを移行します。
postgresql モジュールストリームのサポート期間の詳細は、Red Hat Enterprise Linux 8 Application Streams ライフサイクル を参照してください。
(BZ#1855776)
新しいモジュールストリーム: mariadb:10.5
MariaDB 10.5 が、新しいモジュールストリーム mariadb:10.5 として利用できるようになりました。以前利用できたバージョン 10.3 への主な機能強化は、以下のとおりです。
-
MariaDBは、デフォルトでunix_socket認証プラグインを使用するようになりました。このプラグインを使用すると、ローカルの Unix ソケットファイルを介してMariaDBに接続する際に、オペレーティングシステムの認証情報を使用できます。 -
MariaDBは、サーバーを再起動しなくても SSL 証明書を再読み込みする新しいFLUSH SSLコマンドに対応します。 -
MariaDBは、mariadb-*という名前のバイナリーと、mariadb-*バイナリーを指すmysql*シンボリックリンクを追加します。たとえば、mariadb-admin、mariadb-access、mariadb-showを指す、mysqladmin、mysqlaccess、mysqlshowsymlink。 -
MariaDBは、IPv6 アドレスを保存する新しいINET66 データ型をサポートします。 -
MariaDBは、Perl Compatible Regular Expressions (PCRE) ライブラリーバージョン 2 を使用するようになりました。 -
各ユーザーロールに合わせて、
SUPER特権が複数の特権に分割されました。その結果、一部のステートメントが必要な特権が変更されました。 -
MariaDBは、新しいグローバル変数binlog_row_metadataを追加して、システム変数およびステータス変数を追加して、ログに記録されるメタデータの量を制御します。 -
eq_range_index_dive_limit変数のデフォルト値が0から200に変更になりました。 -
最後の binlog イベントが接続されたレプリカに送信された後にのみシャットダウンするように、新しい
SHUTDOWN WAIT FOR ALL SLAVESサーバーコマンドと新しいmysqladmin shutdown --wait-for-all-slavesオプションが追加されました。 -
並列レプリケーションでは、
slave_parallel_mode変数がデフォルトでoptimisticになりました。
InnoDB ストレージエンジンには以下の変更が追加されました。
-
InnoDBは、インスタント状態のDROP COLUMN操作をサポートし、ユーザーが列の順序を変更できるようになりました。 -
変数のデフォルトが、
innodb_adaptive_hash_indexをOFFに、innodb_checksum_algorithmをfull_crc32に変更になりました。 -
一部の
InnoDB変数が削除されるか、非推奨となっています。
MariaDB Galera Cluster がバージョン 4 にアップグレードされ、以下の主な変更点が加えられました。
-
Galeraは、無制限サイズのトランザクションの複製をサポートする新しいストリーミングレプリケーション機能を追加します。ストリーミングレプリケーションの実行時に、クラスターは小さなフラグメントでトランザクションを複製します。 -
Galeraがグローバルトランザクション ID (GTID) に完全に対応するようになりました。 -
/etc/my.cnf.d/galera.cnfファイルのwsrep_onオプションのデフォルト値が1から0に変更され、必要な追加オプションを設定せずにエンドユーザーがwsrepレプリケーションを開始できないようにします。
MariaDB の使用 も参照してください。
mariadb:10.5 ストリームをインストールするには、以下を使用します。
yum module install mariadb:10.5
# yum module install mariadb:10.5
mariadb:10.5 モジュールストリームからアップグレードする場合は、MariaDB 10.5 から MariaDB 10.11 へのアップグレード を参照してください。
mariadb モジュールストリームのサポート期間の詳細は、Red Hat Enterprise Linux 8 Application Streams ライフサイクル を参照してください。
(BZ#1855781)
MariaDB 10.5 は、PAM プラグインバージョン 2.0 を提供します。
MariaDB 10.5 は、PAM (Pluggable Authentication Modules) プラグインの新バージョンを追加します。PAM プラグインバージョン 2.0 は、個別の setuid root ヘルパーバイナリーを使用して PAM 認証を実行します。これにより、MariaDB が追加の PAM モジュールを使用できるようになります。
MariaDB 10.5 では、プラグ可能な認証モジュール (PAM) プラグインとその関連ファイルが新しいパッケージ mariadb-pam に移動しました。このパッケージには PAM プラグインバージョンの両方が含まれています。バージョン 2.0 はデフォルトで、バージョン 1.0 は auth_pam_v1 共有オブジェクトライブラリーとして利用できます。
MariaDB サーバーでは、デフォルトで mariadb-pam パッケージがインストールされないことに注意してください。MariaDB 10.5 で PAM 認証プラグインを利用できるようにするには、mariadb-pam パッケージを手動でインストールします。
既知の問題 MariaDB では PAM プラグインバージョン 1.0 が機能しない も参照してください。
新しいパッケージ: mysql-selinux
RHEL 8.4 は、MariaDB および MySQL データベースのルールが含まれる SELinux モジュールを提供する新しい mysql-selinux パッケージを追加します。このパッケージは、デフォルトでデータベースサーバーを使用してインストールされます。モジュールの優先度は 200 に設定されます。
(BZ#1895021)
python-PyMySQL がバージョン 0.10.1 にリベースされました。
python-PyMySQL クライアントライブラリーを提供する python-PyMySQL パッケージが、バージョン 0.10.1 に更新されました。パッケージは、python36、python38、python39 モジュールに含まれます。
以下は、主な変更点です。
-
今回の更新で、
ed25519およびcaching_sha2_password認証メカニズムに対応するようになりました。 -
python38およびpython39モジュールに設定したデフォルトの文字は、utf8mb4で、アップストリームと一致します。python36モジュールは、このモジュールの以前のバージョンとの互換性を維持するために、デフォルトのlatin1文字セットを保持します。 -
python36モジュールでは、/usr/lib/python3.6/site-packages/pymysql/tests/ディレクトリーは利用できなくなりました。
新しいパッケージ: python3-pyodbc
今回の更新で、python3-pyodbc パッケージが RHEL 8 に追加されました。pyodbc Python は、Open Database Connectivity (ODBC) データベースへのアクセスを提供します。このモジュールは Python DB API 2.0 仕様を実装し、サードパーティーの ODBC ドライバーと共に使用できます。たとえば、Performance Co-Pilot (pcp) を使用して SQL サーバーのパフォーマンスを監視できるようになりました。
(BZ#1881490)
新しいパッケージ: micropipenv
新しい micropipenv パッケージが利用できるようになりました。Pipenv および Poetry ロックファイルをサポートする pip パッケージインストーラーの軽量ラッパーを提供します。
micropipenv パッケージは AppStream リポジトリーで配布され、互換性レベル 4 で提供されます。詳細は Red Hat Enterprise Linux 8 アプリケーションの互換性ガイド を参照してください。
(BZ#1849096)
新しいパッケージ: py3c-devel および py3c-docs
RHEL 8.4 では、新しい py3c-devel パッケージおよび py3c-docs パッケージが導入され、C 拡張の Python 3 への移植が簡素化されます。これらのパッケージには、詳細なガイドと、移植を容易にするためのマクロセットが含まれています。
py3c-devel および py3c-docs パッケージは、サポート対象外の CodeReady Linux Builder (CRB) リポジトリーを介して配布されます。
(BZ#1841060)
httpd を設定するための強化された ProxyRemote ディレクティブ
Apache HTTP Server の ProxyRemote 設定ディレクティブは、オプションでユーザー名とパスワードの認証情報を取得するように強化されました。これらの認証情報は、HTTP Basic 認証を使用してリモートプロキシーへの認証に使用されます。この機能は、httpd 2.5 からバックポートされています。
(BZ#1869576)
非非同期証明書は、SSLProxyMachineCertificateFile および SSLProxyMachineCertificatePath httpd 使用できます。
今回の更新により、Apache HTTP Server の SSLProxyMachineCertificateFile および SSLProxyMachineCertificatePath 設定ディレクティブを使用して、認証局 (CA) や中間証明書などの非エンド (リーフ以外の) 証明 書を使用できるようになりました。Apache HTTP サーバーは、SSLProxyMachineCertificateChainFile ディレクティブで使用されるかのように、そのような証明書を信頼できる CA として処理するようになりました。以前のバージョンでは、SSLProxyMachineCertificateFile ディレクティブおよび SSLProxyMachineCertificatePath ディレクティブとともに非エンドの証明書が使用されると、httpd は設定エラーで起動できませんでした。
(BZ#1883648)
mod_security モジュールの新しい SecRemoteTimeout ディレクティブ
以前は、Apache HTTP Server の mod_security モジュールでリモートルールを取得するデフォルトのタイムアウトを変更できませんでした。今回の更新で、新しい SecRemoteTimeout 設定ディレクティブを使用して、カスタムタイムアウトを秒単位で設定できるようになりました。
タイムアウトに達すると、httpd がエラーメッセージ Timeout was reached で失敗するようになりました。このシナリオでは、設定ファイルの構文が有効であっても、Syntax error も含まれていることに注意してください。タイムアウト時の httpd の動作は、SecRemoteRulesFailAction 設定ディレクティブの値によって異なります (デフォルト値は Abort です)。
mod_fcgid モジュールが、FCGI サーバープロセスに最大 1024 個の環境変数を渡すことができるようになりました。
今回の更新で、Apache HTTP Server の mod_fcgid モジュールは、FCGI (FCGI) サーバープロセスに最大 1024 個の環境変数を渡すことができるようになりました。以前の 64 環境変数の制限により、FCGI サーバーで実行しているアプリケーションの誤動作が生じる可能性がありました。
perl-IO-String が AppStream リポジトリーで利用可能になりました。
Perl IO::String モジュールを提供する perl-IO-String パッケージが、サポートされる AppStream リポジトリーで配布されるようになりました。RHEL 8 の以前のリリースでは、perl-IO-String パッケージは、サポート対象外の CodeReady Linux Builder リポジトリーで利用できていました。
(BZ#1890998)
新しいパッケージ: quota-devel
RHEL 8.4 では、quota-devel パッケージが導入され、quota Remote Procedure Call (RPC) サービスを実装するためのヘッダーファイルが提供されます。
quota-devel パッケージは、サポート対象外の CodeReady Linux Builder (CRB) リポジトリー で配布されることに注意してください。