Menu Close
Settings Close

Language and Page Formatting Options

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.jsOpenSSL 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 の今後のマイナーリリースで、ライフサイクルが短いモジュールとして提供されます。

(BZ#1953491)

RHEL 9 が Ruby 3.0 を提供

RHEL 9 には Ruby 3.0.3 が同梱されており、Ruby 2.7 とともにパフォーマンスの改善、バグおよびセキュリティーの修正、ならびに新しい機能が数多く提供されます。

主な機能強化は、次のとおりです。

  • 同時実行機能および並列処理機能:

    • スレッドセーフ実行を提供する Actor-model 抽象化である Ractor は実験的な機能として提供されます。
    • Fiber Scheduler が実験的な機能として導入されました。Fiber Scheduler はブロッキング操作をインターセプトし、既存のコードを変更せずに軽量の同時実行を可能にします。
  • 静的な分析機能:

    • Ruby プログラムの設定を説明する RBS が導入されました。RBS で書かれたタイプ定義を解析するために rbs gem が追加されまし た。
    • Ruby 符号の型解析ツールである TypeProf ユーティリティーが導入されました。
  • case/in 式を使用したパターンの照合は実験的なものではありません。
  • 実験的な機能である 1 行パターンの一致が再設計されました。
  • 検索パターンが実験的な機能として追加されました。

以下のパフォーマンスの向上が実装されています。

  • Interactive Ruby Shell (IRB) に長いコードを貼り付けることができるようになりました。
  • measure コマンドが、時間測定のために IRB に追加されました。

その他の主な変更点は次の通りです。

  • キーワード引数とその他の引数が切り替わりました。
  • $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()mbtowcwctomb 関数がシフト状態のロケールで動作するようになり、ロケールのスレッドセーフ機能を持つプラットフォームで実行した場合に、C99 以上のコンパイラーではスレッドセーフになりました。長さのパラメーターはオプションになりました。
  • 新しい実験的な isainfix 演算子は、与えられたオブジェクトが、与えられたクラスのインスタンスであるか、またはそこから派生したクラスであるかをテストします。
  • アルファアサーションはもはや実験的なものではありません。
  • スクリプトの実行は実験的なものではなくなりました。
  • 機能チェックが速くなりました。
  • 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 スクリプト言語の使用 を参照してください。

(BZ#1949319)

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_commandssl_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 の今後のマイナーリリースで、ライフサイクルが短いモジュールとして提供されます。

詳しくは、Setting up and configuring NGINX をご覧ください。

(BZ#1953639, BZ#1991720)

RHEL 9 の Varnish Cache 6.6

RHEL 9 には、高パフォーマンスの HTTP リバースプロキシーである Varnish Cache 6.6 が含まれます。

バージョン 6.0 以降の主な変更点は、以下のとおりです。

  • varnishlog などのログ処理ツールのパフォーマンスが改善
  • 統計の精度の向上
  • キャッシュ検索における多くの最適化
  • さまざまな設定変更
  • 数多くの機能強化およびバグ修正

Varnish Cache 6 は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。

(BZ#1984185)

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 を参照してください。

(BZ#1990517)

RHEL 9 の MariaDB 10.5

RHEL 9 は、MariaDB 10.5 を提供します。MariaDB 10.5 は、このアプリケーションストリームの初版で、RPM パッケージとして簡単にインストールできます。追加の MariaDB バージョンは、RHEL 9 の今後のマイナーリリースで、ライフサイクルが短いモジュールとして提供されます。

詳しくは、Using MariaDB をご覧ください。

(BZ#1971248)

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 パッケージとして簡単にインストールできます。

(BZ#1959756)

新しいパッケージ: 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)