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
python39:3.9
モジュールストリームは、自動的に有効になります。
インタープリターを実行するには、たとえば、以下を使用します。
$ 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
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
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
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
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
、mysqlshow
symlink。 -
MariaDB
は、IPv6 アドレスを保存する新しいINET6
6 データ型をサポートします。 -
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
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) リポジトリー で配布されることに注意してください。