4.13. 動的プログラミング言語、Web サーバー、およびデータベースサーバー
RHEL 9 の Python
Python 3.9 が RHEL 9 におけるデフォルトの Python 実装にPython 3.9 は、BaseOS リポジトリーにあるモジュール以外の python3
RPM パッケージで配布され、通常はデフォルトでインストールされます。Python 3.9 は、RHEL 9 のライフサイクル全体で対応します。
追加バージョンの Python 3 は、AppStream リポジトリーを介してより短いライフサイクルで RPM パッケージとして配布され、並行してインストールできます。
python
コマンド (/usr/bin/python
) や、pip
などの Python 関連コマンドは、バージョンを指定せずに使用でき、デフォルトの Python 3.9 を指定します。
Python 2 は RHEL 9 に同梱されていません。
RHEL 9 の Python の詳細は、Python の概要 を参照してください。
(BZ#1941595, JIRA:RHELPLAN-80598)
RHEL 9 で利用可能な Node.js 16
RHEL 9 は、Long Term Support (LTS) バージョン 16 の Node.js
を提供します。これは、JavaScript プログラミング言語を使用して高速でスケーラブルなネットワークアプリケーションを構築するソフトウェア開発プラットフォームです。
Node.js 14
に対する Node.js 16
の主な変更点は、以下のとおりです。
-
V8
エンジンがバージョン 9.4 にアップグレードされました。 -
npm
パッケージマネージャーがバージョン 8.3.1 にアップグレードされました。 -
新しい
Timers Promises
API は、Promise
オブジェクトを返すタイマー関数の代替セットを提供します。 -
Node.js
がOpenSSL 3.0
と互換性があるようになりました。 -
Node.js
は、実験的な新しいWeb Streams
API と実験的な ECMAScript モジュール (ESM) ローダーフック API を提供するようになりました。
Node.js 16
は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。Node.js 16
のライフサイクルは RHEL 9 よりも短くなります。詳細は、Red Hat Enterprise Linux Application Streams ライフサイクル を参照してください。また、追加の Node.js
バージョンは、RHEL 9 の今後のマイナーリリースで、ライフサイクルが短いモジュールとして提供されます。
RHEL 9 が Ruby 3.0
を提供
RHEL 9 には Ruby 3.0.3
が同梱されており、Ruby 2.7
とともにパフォーマンスの改善、バグおよびセキュリティーの修正、ならびに新しい機能が数多く提供されます。
主な機能拡張は、次のとおりです。
同時実行機能および並列処理機能:
-
Ractor
が実験的な機能として提供されています。この機能はスレッドセーフな並列実行を提供するアクターモデルの抽象化です。 -
Fiber Scheduler
が実験的な機能として導入されました。Fiber Scheduler
はブロッキング操作をインターセプトし、既存のコードを変更せずに軽量の同時実行を可能にします。
-
静的な分析機能:
-
Ruby
プログラムの設定を説明するRBS
が導入されました。RBS
で書かれた型定義を解析するためにrbs
gem が追加されました。 -
Ruby
符号の型解析ツールであるTypeProf
ユーティリティーが導入されました。
-
-
case/in
式を使用したパターンの照合は実験的なものではありません。 - 実験的な機能である 1 行パターンの一致が再設計されました。
- 検索パターンが実験的な機能として追加されました。
以下のパフォーマンスの向上が実装されています。
-
Interactive Ruby Shell (IRB)
への長いコードの貼り付けが大幅に高速になりました。 -
IRB
に時間計測用のmeasure
コマンドが追加されました。
その他の主な変更点は次の通りです。
- キーワード引数とその他の引数が切り替わりました。
-
$HOME/.gem/
ディレクトリーがすでに存在しない限り、ユーザーがインストールした gems のデフォルトディレクトリーが$HOME/.local/share /gem/
になります。
Ruby 3.0
は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。追加の Ruby
バージョンは、RHEL 9 の今後のマイナーリリースで、ライフサイクルが短いモジュールとして提供されます。
(JIRA:RHELPLAN-80758)
RHEL 9 に Perl 5.32
が導入されました。
RHEL 9 には Perl 5.32
が含まれており、バージョン 5.30 に対するバグ修正や機能強化が数多く追加されました。
主な機能強化は、次のとおりです。
-
Perl
は Unicode バージョン 13.0 に対応するようになりました。 -
qr
引用符のような演算子が強化されました。 -
POSIX::mblen()
、mbtowc
、wctomb
関数がシフト状態のロケールで動作するようになり、ロケールのスレッドセーフ機能を持つプラットフォームで実行した場合に、C99 以上のコンパイラーではスレッドセーフになりました。長さのパラメーターはオプションになりました。 -
新しい実験的な
isa
infix 演算子は、与えられたオブジェクトが、与えられたクラスのインスタンスであるか、そこから派生したクラスであるかをテストします。 - アルファアサーションはもはや実験的なものではありません。
- スクリプトの実行は実験的なものではなくなりました。
- 機能チェックが速くなりました。
-
Perl
は最適化の前にコンパイルされたパターンをダンプできるようになりました。
Perl 5.32
は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。追加の Perl
バージョンは、RHEL 9 の今後のマイナーリリースで、ライフサイクルが短いモジュールとして提供されます。
(JIRA:RHELPLAN-80759)
RHEL 9 には PHP 8.0
が含まれるようになる
RHEL 9 には PHP 8.0
が使用されており、バージョン 7.4 に対するバグ修正や機能強化が数多く追加されました。
主な機能拡張は、次のとおりです。
- 新しい名前付き引数は順序に依存せず、自己ドキュメント化されており、必要なパラメーターのみを指定できるようになりました。
- 新しい属性により、PHP のネイティブ構文で構造化メタデータを使用できます。
- 新しいユニオンタイプにより、複数のタイプの組み合わせに対して、PHPDoc アノテーションの代わりに実行時に検証されるネイティブのユニオンタイプ宣言を使用できます。
- 内部関数は、パラメーターの検証に失敗した場合に警告ではなく、Error 例外を常に発生させるようになりました。
- 新しい Just-In-Time コンパイルエンジンにより、アプリケーションのパフォーマンスが大幅に向上します。
-
PHP の
Xdebug
デバッグおよび生産性拡張機能がバージョン 3 に更新されました。このバージョンでは、Xdebug 2
と比較した機能および設定に大きな変更が加えられました。
PHP 8.0
は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。追加の PHP
バージョンは、RHEL 9 の今後のマイナーリリースで、ライフサイクルが短いモジュールとして提供されます。
詳細は PHP スクリプト言語の使用 を参照してください。
RHEL 9 は、Git 2.31
および Git LFS 2.13
を提供します
RHEL 9 には、RHEL 8 で利用可能なバージョン 2.27 よりも多くの機能拡張とパフォーマンス改善を行う Git 2.31
が同梱されています。主な変更点は、以下のとおりです。
-
git status
コマンドが、スパースチェックアウトの状態を報告するようになりました。 -
git archive
で--add-file
を使用できるようになりました。これで、トラッキングされていないファイルを、tree-ish 識別子からスナップショットに組み込むことができるようになりました。 -
clone.defaultremotename
設定変数を使用すると、ソースリモートリポジトリーのニックネームをカスタマイズできます。 -
git format-patch
で作成する出力ファイル名の上限を設定できます。以前は、長さの制限は 64 バイトでした。 - 非推奨の PCRE1 ライブラリーのサポートが削除されました。
また、Git Large File Storage (LFS)
拡張機能バージョン 2.13 が利用できるようになりました。RHEL 8 に同梱されるバージョン 2.11 以降の機能拡張には、以下が含まれます。
-
Git LFS
が SHA-256 リポジトリーに対応するようになりました。 -
Git LFS
が、socks5h
プロトコルに対応するようになりました。 -
git lfs install
コマンドおよびgit lfs uninstall
コマンドには、新しい--worktree
オプションが用意されています。 -
git lfs migrate import
では、新しい--above
パラメーターを使用できます。
(BZ#1956345, BZ#1952517)
RHEL 9 の Subversion 1.14
RHEL 9 には Subversion 1.14
が同梱されています。Subversion 1.14
は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。追加の Subversion
バージョンは、RHEL 9 の今後のマイナーリリースで、ライフサイクルが短いモジュールとして提供されます。
(JIRA:RHELPLAN-82578)
Apache HTTP Server への主な変更点
RHEL 9.0 は、Apache HTTP Server のバージョン 2.4.51 を提供します。バージョン 2.4.37 への主な変更点は、以下のとおりです。
Apache HTTP Server Control Interface (
apachectl
):-
apachectl status
出力では、systemctl
ページャーが無効になりました。 -
追加の引数を渡すと警告が表示される代わりに、
apachectl
コマンドが失敗するようになりました。 -
apachectl graceful-stop
がすぐに戻るようになりました。 -
apachectl configtest
コマンドが、SELinux コンテキストを変更せずに、httpd -t
コマンドを実行するようになりました。 -
RHEL の
apachectl(8)
man ページで、アップストリームのapachectl
との相違点が完全に説明されるようになりました。
-
Apache eXtenSion ツール (
apxs
):-
/usr/bin/apxs
コマンドは、httpd
パッケージのビルド時に適用されたコンパイラーの最適化フラグを使用または公開しなくなりました。/usr/lib64/httpd/build/vendor-apxs
コマンドを使用して、httpd
のビルドに使用されるのと同じコンパイラーフラグを適用できるようになりました。vendor-apxs
コマンドを使用するには、最初にredhat-rpm-config
パッケージをインストールする必要があります。
-
Apache モジュール:
-
mod_lua
モジュールが、別のパッケージで提供されるようになりました。 -
Apache HTTP Server 用の新しい
mod_jk
コネクターは、Apache JServ Protocol (AJP) を使用して Web サーバーを Apache Tomcat およびその他のバックエンドに接続するモジュールです。 -
新しい
mod_proxy_cluster
モジュールは、通信チャネルを使用してリクエストをロードバランサーからアプリケーションサーバーノードの 1 つに転送する httpd ベースのロードバランサーを提供します。アプリケーションサーバーノードは、この接続を使用してサーバー側の負荷分散係数およびライフサイクルイベントを MCMP(Mod-Cluster Management Protocol) と呼ばれる HTTP メソッドのカスタムセットを使用してロードバランサーに戻します。この追加のフィードバックチャネルを使用すると、mod_proxy_cluster
は他の負荷分散ソリューションで見つからない情報および粒度のレベルを提供できます。このモジュールでは、ModCluster
クライアントをバックエンドサーバーにインストールして正常に通信する必要があります。
-
設定構文の変更
-
mod_access_compat
が提供する非推奨のAllow
ディレクティブでは、コメント (#
文字) が暗黙的に無視される代わりにシンタックスエラーを発生するようになりました。
-
その他の変更:
- カーネルスレッド ID は、エラーログメッセージで直接使用されるようになり、精度と簡潔性が向上しました。
- 多くのマイナーな機能強化とバグ修正
- モジュールの作成者には、利用可能な新しいインターフェイスが多数用意されています。
RHEL 8 以降、httpd
モジュール API に後方互換性のない変更はありません。
Apache HTTP Server 2.4 は、この Apache HTTP Server 2.4 の初期バージョンです。これは、RPM パッケージとして簡単にインストールできます。
詳細は Apache HTTP Web サーバーの設定 を参照してください。
(JIRA:RHELPLAN-68364, BZ#1931976, JIRA:RHELPLAN-80725)
RHEL 9 で利用可能な nginx 1.20
RHEL 9 には、nginx 1.20
Web およびプロキシーサーバーが同梱されています。このリリースでは、バージョン 1.18 に対するバグ修正、セキュリティー修正、新機能、および機能拡張が数多く提供されます。
新機能:
-
nginx
が、OCSP (Online Certificate Status Protocol) を使用したクライアント SSL 証明書の検証に対応するようになりました。 -
nginx
が、最小限の空き領域に基づくキャッシュクリアに対応するようになりました。これに対応するのは、proxy_cache_path
ディレクティブのmin_free
パラメーターとして実装されています。 -
新しい
ngx_stream_set_module
モジュールが追加されました。これにより、変数の値を設定できるようになりました。 -
nginx
用の外部動的モジュールを構築するための、RPM マクロやnginx
ソースコードを含む、必要なすべてのファイルを提供するnginx-mod-devel
パッケージが追加されました。
拡張されたディレクティブ:
-
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
は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。追加の nginx
バージョンは、RHEL 9 の今後のマイナーリリースで、ライフサイクルが短いモジュールとして提供されます。
詳細については、NGINX のセットアップと設定 を参照してください。
RHEL 9 の Varnish Cache 6.6
RHEL 9 には、高パフォーマンスの HTTP リバースプロキシーである Varnish Cache 6.6
が含まれます。
バージョン 6.0 以降の主な変更点は、以下のとおりです。
-
varnishlog
などのログ処理ツールのパフォーマンスが改善 - 統計の精度の向上
- キャッシュ検索における多くの最適化
- さまざまな設定変更
- 数多くの機能強化およびバグ修正
Varnish Cache 6
は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。
RHEL 9 に Squid 5
が導入されました。
RHEL 9 には、Web クライアント、対応する FTP、Gopher、および HTTP データオブジェクト向けの高パフォーマンスのプロキシーキャッシュサーバーである Squid 5.2
が同梱されています。本リリースでは、バージョン 4 に対するバグ修正、セキュリティー修正、新機能、および機能強化が数多く追加されました。
新機能:
Squid
は、ハッピーアイボールアルゴリズムを使用することで機能を改善します。-
Squid
は、潜在的な転送先がすべて解決されるのを待つ代わりに、リクエスト転送が必要になるとすぐに、受信した IP アドレスを使用するようになりました。 -
新しいディレクティブ (
happy_eyeballs_connect_gap
ディレクティブ、happy_eyeballs_connect_limit
ディレクティブ、およびhappy_eyeballs_connect_timeout
ディレクティブ) が利用できるようになりました。 -
dns_v4_first
ディレクティブが削除されました。
-
-
Squid
は、コンテンツ配信ネットワーク (CDN) でループ検出のソースとしてCDN-Loop
ヘッダーを使用するようになりました。 -
Squid
では、SSL バンプに対するピアサポートが導入されました。 - 新しい Internet Content Adaptation Protocol (ICAP) トレイラー機能が利用可能になりました。これにより、ICAP エージェントはメッセージボディー後にメッセージメタデータを確実に送信できるようになりました。
設定オプションの変更:
-
clientside_mark
の代わりに、mark_client_packet
設定が使用されました。 -
collapsed_forwarding_shared_entries_limit
の代わりに、shared_transient_entries_limit
設定が使用されました。
Squid 5
は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。
詳細は、Configuring the Squid caching proxy server を参照してください。
RHEL 9 の MariaDB 10.5
RHEL 9 は、MariaDB 10.5
を提供します。MariaDB 10.5
は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。追加の MariaDB
バージョンは、RHEL 9 の今後のマイナーリリースで、ライフサイクルが短いモジュールとして提供されます。
詳しくは、Using MariaDB をご覧ください。
RHEL 9 に MySQL 8.0
が含まれる
RHEL 9 には MySQL 8.0
が同梱されています。MySQL 8.0
は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。MySQL 8.0
のライフサイクルは RHEL 9 よりも短くなります。詳細は、Red Hat Enterprise Linux Application Streams ライフサイクル を参照してください。
使用方法は、MySQL の使用 を参照してください。
(JIRA:RHELPLAN-78673)
RHEL 9 が提供する PostgreSQL 13
PostgreSQL 13
が RHEL 9 で利用可能PostgreSQL 13
は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。追加の PostgreSQL
バージョンは、RHEL 9 の今後のマイナーリリースで、ライフサイクルが短いモジュールとして提供されます。
詳しくは、Using PostgreSQL をご覧ください。
(JIRA:RHELPLAN-78675)
RHEL 9 の Redis 6.2
RHEL 9 には Redis 6.2
が同梱されており、RHEL 8 で利用可能なバージョン 6.0 以降でバグ修正およびセキュリティー機能拡張が数多く追加されています。
特に、Redis
サーバーの設定ファイルは、専用のディレクトリー (/etc/redis/redis.conf
および /etc/redis/sentinel.conf
) に置かれています。RHEL 8 では、このようなファイルの場所は、それぞれ /etc/redis.conf
と /etc/redis-sentinel.conf
になりました。
Redis 6
は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。
新しいパッケージ: perl-Module-Signature
RHEL 9 では、Perl モジュール perl-Module-Signature
が導入されました。この新しいモジュールを使用すると、cpan
の署名チェックを有効にして CVE-2020-16156 を軽減できます。詳細は、How to mitigate CVE-2020-16154 in perl-App-cpanminus and CVE-2020-16156 in perl-CPAN を参照してください。
(BZ#2039361)