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
# yum install python3.11
# yum install python3.11-pip
インタープリターを実行するには、たとえば、以下を使用します。
python3.11 python3.11 -m pip --help
$ 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
# 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 から多くの新機能および機能強化が追加されています。主な変更点は、以下のとおりです。
サブスクリプトを使用して
PostgreSQLJSON データにアクセスできるようになりました。クエリーの例:SELECT ('{ "postgres": { "release": 15 }}'::jsonb)['postgres']['release'];SELECT ('{ "postgres": { "release": 15 }}'::jsonb)['postgres']['release'];Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
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.servicesystemd ユニットファイルにより、ネットワークが起動した後に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);
postgres=# CREATE USER mydbuser; postgres=# GRANT ALL ON SCHEMA public TO mydbuser; postgres=# \c postgres mydbuser postgres=$ CREATE TABLE mytable (id int);Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
libpqPQsendQuery()関数はパイプラインモードではサポートされなくなりました。影響を受けるアプリケーションを変更して、代わりにPQsendQueryParams()関数を使用します。
PostgreSQL の使用 も参照してください。
postgresql:15 ストリームをインストールするには、次を使用します。
yum module install postgresql:15
# yum module install postgresql:15
RHEL 8 内で以前の postgresql ストリームからアップグレードする場合は 後続のストリームへの切り替え の説明に従い、Migrating to a RHEL 8 バージョンの PostgreSQL への移行 で説明されているように PostgreSQL データを移行します。
postgresql モジュールストリームのサポート期間については、Red Hat Enterprise Linux アプリケーションストリームのライフサイクル を参照してください。