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 のライフサイクル を参照してください。
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}
に置き換え、生成したスコープ付きトークンを指定します。
変更の完全なリストについては、アップストリームの変更ログ を参照してください。
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
設定変数を使用して、ベアリポジトリーをフィルタリングして除外できます。
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 認証を使用してください。
新しいモジュールストリーム: 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 パイプライン。
-
OpenSSL 3.0、および OpenSSL 3.0 を使用する場合の
-
nginx
は、Auth-SSL-Protocol
およびAuth-SSL-Cipher
ヘッダー行をメールプロキシー認証サーバーに渡すようになりました。
拡張されたディレクティブ:
-
ssl_conf_command
、ssl_reject_handshake
など、新しいディレクティブが複数利用できるようになりました。 -
proxy_cookie_flags
ディレクティブが変数に対応するようになりました。 -
nginx
は、proxy_ssl_certificate
、proxy_ssl_certificate_key
、grpc_ssl_certificate
、grpc_ssl_certificate_key
、uwsgi_ssl_certificate
、およびuwsgi_ssl_certificate_key
ディレクティブの変数をサポートするようになりました。 -
ストリームモジュールの
listen
ディレクティブは、新しいfastopen
パラメーターをサポートするようになりました。これにより、リスニングソケットのTCP Fast Open
モードが有効になります。 -
新しい
max_errors
ディレクティブがmail
プロキシーモジュールに追加されました。
その他の変更点:
nginx
は、次の場合、常にエラーを返すようになりました。-
CONNECT
メソッドが使用されます。 -
Content-Length
とTransfer-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 のタイムスタンプ解像度を追加しました。
- 欠落している地域の国を追加しました。
新しいパッケージ: 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_activity
やEXPLAIN VERBOSE
など、複数のPostgreSQL
機能を通じてクエリーを独自に追跡できるようになりました。
-
PostgreSQL
では、次のようにクエリー並列処理のサポートが向上しています。- 並列順次スキャンのパフォーマンスが向上しました。
-
RETURN QUERY
コマンドの使用時に並列クエリーを実行する SQL 手続き型言語 (PL/pgSQL
) の機能。 -
REFRESH MATERIALIZED VIEW
コマンドで並列処理を有効にしました。
-
PostgreSQL
には SQL 標準のMERGE
コマンドが含まれるようになりました。MERGE
を使用すると、INSERT
、UPDATE
、および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 アプリケーションストリームのライフサイクル を参照してください。