4.10. 動的プログラミング言語、Web サーバー、およびデータベースサーバー


Python 3.11 が RHEL 8 で利用できるようになりました。

RHEL 8.8 では、新しいパッケージ python3.11 とそのために構築された一連のパッケージ、および ubi8/python-311 コンテナーイメージによって提供される Python 3.11 が導入されています。

以前にリリースされた Python 3.9 と比較して注目すべき機能強化は次のとおりです。

  • パフォーマンスが大幅に向上しました。
  • 新しい match キーワードを使用した構造パターンマッチング (他の言語の switch と同様)。
  • たとえば、閉じられていない丸かっこや角かっこを示すエラーメッセージが改善されました。
  • デバッグやその他の使用例のための正確な行番号。
  • 定義を丸かっこで囲むことにより、複数行にわたるコンテキストマネージャーの定義をサポートします。
  • 新しい X | Y 型ユニオン演算子、variadic generics、新しい Self 型など、タイプヒントと typing モジュールに関連するさまざまな新機能。
  • エラーの原因となった式を示すトレースバック内の正確なエラー位置。
  • TOML の解析をサポートする新しい tomllib 標準ライブラリーモジュール。
  • 例外グループと新しい except* 構文を使用して、無関係な複数の例外を同時に発生させて処理する機能。

Python 3.11 とそのためにビルドされたパッケージは、同じシステム上に Python 3.9、Python 3.8、および Python 3.6 と並行してインストールできます。

以前のバージョンとは異なり、Python 3.11 はモジュールではなく標準の RPM パッケージとして配布されることに注意してください。

python3.11 スタックからパッケージをインストールするには、たとえば、次を使用します。

# yum install python3.11
# yum install python3.11-pip

インタープリターを実行するには、たとえば、以下を使用します。

$ python3.11
$ python3.11 -m pip --help

詳細は、Python のインストールおよび使用 を参照してください。

Red Hat は、RHEL 8 のライフサイクルが終了するまで Python 3.6 のサポートを継続することに留意してください。Python 3.9 と同様に、Python 3.11 のライフサイクルは短くなります。Red Hat Enterprise Linux Application Streams のライフサイクル を参照してください。

Bugzilla:2137139

nodejs:18 がバージョン 18.14 にリベースされ、npm がバージョン 9 にリベースされました。

RHSA-2023:1583 でリリースされた Node.js 18.14 には、npm のバージョン 8 からバージョン 9 への SemVer メジャーアップグレードが含まれています。この更新はメンテナンス上の理由から必要であり、npm 設定の調整が必要になる場合があります。

特に、特定のレジストリーに範囲を限定しない認証関連の設定はサポートされなくなりました。この変更はセキュリティー上の理由から行われました。スコープ指定されていない認証設定を使用した場合、指定されたトークンは .npmrc ファイルにリストされているすべてのレジストリーに送信されます。

スコープなしの認証トークンを使用する場合は、レジストリースコープ付きトークンを生成して .npmrc ファイルに指定します。

.npmrc ファイル内に //registry.npmjs.org/:_auth など、_auth を使用する設定行がある場合は、それらを //registry.npmjs.org/:_authToken=${NPM_TOKEN} に置き換え、生成したスコープ付きトークンを指定します。

変更の完全なリストについては、アップストリームの変更ログ を参照してください。

Bugzilla:2178087

git がバージョン 2.39.1 にリベースされました。

Git バージョン管理システムがバージョン 2.39.1 に更新され、以前にリリースされたバージョン 2.31 に比べて、バグ修正、拡張機能、およびパフォーマンスが向上しました。

主な機能拡張は、次のとおりです。

  • git log コマンドは、git describe 出力のフォーマットプレースホルダーをサポートするようになりました。git log --format=%(describe)
  • git commit コマンドで、ログメッセージを変更せずにコミットの内容を修正できる --fixup<commit> オプションがサポートされるようになりました。この更新により、以下も使用できるようになります。

    • --fixup=amend:<commit> オプションは、メッセージとコンテンツの両方を変更します。
    • --fixup=reword:<commit> オプションは、コミットメッセージのみを更新します。
  • git clone コマンドで新しい --reject-shallow オプションを使用すると、浅いリポジトリーからのクローン作成を無効にすることができます。
  • git branch コマンドで --recurse-submodules オプションがサポートされるようになりました。
  • git merge-tree コマンドを使用して、次のことができるようになりました。

    • 2 つのブランチをマージできるかどうかをテストします。
    • ブランチがマージされた場合にマージコミットになるツリーを計算します。
  • 新しい safe.bareRepository 設定変数を使用して、ベアリポジトリーをフィルタリングして除外できます。

Bugzilla:2139378

git-lfs がバージョン 3.2.0 にリベースされました。

Git Large File Storage (LFS) 拡張機能がバージョン 3.2.0 に更新され、以前にリリースされたバージョン 2.13 に比べて、バグ修正、拡張機能、およびパフォーマンスが向上しました。

主な変更点は、以下のとおりです。

  • Git LFS は純粋な SSH ベースのトランスポートプロトコルを導入します。
  • Git LFS はマージドライバーを提供するようになりました。
  • git lfs fsck ユーティリティーは、ポインターが正規であること、および予期される LFS ファイルの形式が正しいことをさらにチェックするようになりました。
  • NT LAN Manager (NTLM) 認証プロトコルのサポートは削除されました。代わりに Kerberos または Basic 認証を使用してください。

Bugzilla:2139382

新しいモジュールストリーム: nginx:1.22

nginx 1.22 Web およびプロキシーサーバーは、nginx:1.22 モジュールストリームとして利用できるようになりました。この更新では、以前にリリースされたバージョン 1.20 に対して、多数のバグ修正、セキュリティー修正、新機能、機能強化が提供されます。

新機能:

  • nginx は以下をサポートするようになりました。

    • OpenSSL 3.0、および OpenSSL 3.0 を使用する場合の SSL_sendfile() 関数。
    • PCRE2 ライブラリー。
    • mail プロキシーモジュールでの POP3 および IMAP パイプライン。
  • nginx は、Auth-SSL-Protocol および Auth-SSL-Cipher ヘッダー行をメールプロキシー認証サーバーに渡すようになりました。

拡張されたディレクティブ:

  • ssl_conf_commandssl_reject_handshake など、新しいディレクティブが複数利用できるようになりました。
  • proxy_cookie_flags ディレクティブが変数に対応するようになりました。
  • nginx は、proxy_ssl_certificateproxy_ssl_certificate_keygrpc_ssl_certificategrpc_ssl_certificate_keyuwsgi_ssl_certificate、および uwsgi_ssl_certificate_key ディレクティブの変数をサポートするようになりました。
  • ストリームモジュールの listen ディレクティブは、新しい fastopen パラメーターをサポートするようになりました。これにより、リスニングソケットの TCP Fast Open モードが有効になります。
  • 新しい max_errors ディレクティブが mail プロキシーモジュールに追加されました。

その他の変更点:

  • nginx は、次の場合、常にエラーを返すようになりました。

    • CONNECT メソッドが使用されます。
    • Content-LengthTransfer-Encoding の両方のヘッダーがリクエストに指定されます。
    • リクエストヘッダー名にスペースまたは制御文字が含まれています。
    • Host リクエストヘッダー行には、スペースまたは制御文字が含まれています。
  • nginx は、Transfer-Encoding ヘッダーを含むすべての HTTP/1.0 リクエストをブロックするようになりました。
  • nginx は、Application Layer Protocol Negotiation (ALPN) を使用して HTTP/2 接続を確立するようになり、Next Protocol Negotiation (NPN) プロトコルはサポートされなくなりました。

nginx:1.22 ストリームをインストールするには、次を使用します。

# yum module install nginx:1.22

nginx:1.20 ストリームからアップグレードする場合は、後続のストリームへの切り替え を参照してください。

詳細は、NGINX のセットアップと設定 を参照してください。

nginx モジュールストリームのサポート期間については、Red Hat Enterprise Linux アプリケーションストリームのライフサイクル を参照してください。

Bugzilla:2112345

mod_security がバージョン 2.9.6 にリベースされました。

Apache HTTP サーバーの mod_security モジュールがバージョン 2.9.6 に更新され、以前に利用可能だったバージョン 2.9.2 に新機能、バグ修正、セキュリティー修正が追加されました。

主な機能拡張は、次のとおりです。

  • modsecurity.conf-recommended ファイル内のパーサーのアクティブ化ルールを調整しました。
  • mod_security が HTTP マルチパートリクエストを解析する方法が強化されました。
  • 新しい MULTIPART_PART_HEADERS コレクションが追加されました。
  • フォーマットされたログのタイムスタンプに microsec のタイムスタンプ解像度を追加しました。
  • 欠落している地域の国を追加しました。

Bugzilla:2143207

新しいパッケージ: tomcat

RHEL 8.8 では、Apache Tomcat サーバーバージョン 9 が導入されています。Tomcat は、Java Servlet および JavaServer Pages テクノロジーの公式リファレンス実装で使用されるサーブレットコンテナーです。Java Servlet および JavaServer Pages の仕様は、Java Community Process に基づいて Sun によって開発されました。Tomcat はオープンな参加型環境で開発され、Apache ソフトウェアライセンスバージョン 2.0 に基づいてリリースされています。

Bugzilla:2160455

新しいモジュールストリーム: postgresql:15

RHEL 8.8 リリースでは、PostgreSQL 15 が導入されました。これは、バージョン 13 から多くの新機能および機能強化が追加されています。主な変更点は、以下のとおりです。

  • サブスクリプトを使用して PostgreSQL JSON データにアクセスできるようになりました。クエリーの例:

    SELECT ('{ "postgres": { "release": 15 }}'::jsonb)['postgres']['release'];
  • PostgreSQL は、複数範囲のデータ型をサポートし、range_agg 関数を拡張して複数範囲のデータ型を集約するようになりました。
  • PostgreSQL は監視と可観測性を向上させます。

    • COPY コマンドとログ先行書き込み (WAL) アクティビティーの進行状況を追跡できるようになりました。
    • PostgreSQL はレプリケーションスロットに関する統計を提供するようになりました。
    • compute_query_id パラメーターを有効にすることで、pg_stat_activityEXPLAIN VERBOSE など、複数の PostgreSQL 機能を通じてクエリーを独自に追跡できるようになりました。
  • PostgreSQL では、次のようにクエリー並列処理のサポートが向上しています。

    • 並列順次スキャンのパフォーマンスが向上しました。
    • RETURN QUERY コマンドの使用時に並列クエリーを実行する SQL 手続き型言語 (PL/pgSQL) の機能。
    • REFRESH MATERIALIZED VIEW コマンドで並列処理を有効にしました。
  • PostgreSQL には SQL 標準の MERGE コマンドが含まれるようになりました。MERGE を使用すると、INSERTUPDATE、および DELETE アクションを 1 つのステートメントに含めることができる条件付き SQL ステートメントを作成できます。
  • PostgreSQL では、正規表現を使用して文字列を検査するための新しい関数 regexp_count()regexp_instr()regexp_like()、および regexp_substr() を提供します。
  • PostgreSQL には、security_invoker パラメーターが追加されており、これを使用すると、ビュー作成者ではなくビュー呼び出し元の権限でデータをクエリーすることができます。これは、ビューの呼び出し元が基になるデータを操作するための適切な権限を持っていることを確認するのに役立ちます。
  • PostgreSQL は、アーカイブ機能とバックアップ機能のパフォーマンスを向上させます。
  • PostgreSQL では、LZ4 および Zstandard (zstd) 可逆圧縮アルゴリズムのサポートが追加されています。
  • PostgreSQL は、メモリー内およびディスク上のソートアルゴリズムを改善します。
  • 更新された postgresql.service systemd ユニットファイルにより、ネットワークが起動した後に postgresql サービスが確実に開始されるようになりました。

次の変更には下位互換性がありません。

  • パブリックスキーマのデフォルトの権限が変更されました。新規に作成されたユーザーは、GRANT ALL ON SCHEMA public TO myuser; コマンドを使用して、権限を明示的に付与する必要があります。以下に例を示します。

    postgres=# CREATE USER mydbuser;
    postgres=# GRANT ALL ON SCHEMA public TO mydbuser;
    postgres=# \c postgres mydbuser
    postgres=$ CREATE TABLE mytable (id int);
  • libpq PQsendQuery() 関数はパイプラインモードではサポートされなくなりました。影響を受けるアプリケーションを変更して、代わりに PQsendQueryParams() 関数を使用します。

PostgreSQL の使用 も参照してください。

postgresql:15 ストリームをインストールするには、次を使用します。

# yum module install postgresql:15

RHEL 8 内で以前の postgresql ストリームからアップグレードする場合は 後続のストリームへの切り替え の説明に従い、Migrating to a RHEL 8 バージョンの PostgreSQL への移行 で説明されているように PostgreSQL データを移行します。

postgresql モジュールストリームのサポート期間については、Red Hat Enterprise Linux アプリケーションストリームのライフサイクル を参照してください。

Bugzilla:2128241

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.