6.13. 動的プログラミング言語、Web サーバー、およびデータベースサーバー
RHEL 10 の Python 3.12
Python 3.12 は RHEL 10 におけるデフォルトの Python 実装です。Python 3.12 は、BaseOS リポジトリーにあるモジュール以外の python3
RPM パッケージで配布され、通常はデフォルトでインストールされています。Python 3.12 は、RHEL 10 のライフサイクル全体でサポートされます。
追加バージョンの Python 3 は、AppStream リポジトリーを介してより短いライフサイクルで RPM パッケージとして配布され、並行してインストールできます。python
コマンド (/usr/bin/python
) や、pip
などの他の Python 関連コマンドは、バージョンを指定せずに使用でき、デフォルトの Python 3.12 バージョンを指します。
以前にリリースされた Python 3.11 と比較しての主な機能拡張は次のとおりです。
-
Python では、ジェネリッククラスと関数に対して新しい
type
ステートメントと新しい型パラメーター構文が導入されています。 - フォーマットされた文字列リテラル (f-strings) が文法で形式化され、パーサーに直接統合できるようになりました。
- Python が、インタープリターごとに固有のグローバルインタープリターロック (GIL) を提供するようになりました。
- Python コードからバッファープロトコルを使用できるようになりました。
-
CPython
のディクショナリー、リスト、セットの内包表記がインライン化されました。これにより、内包表記の実行速度が大幅に向上します。 -
CPython
が Linuxperf
プロファイラーをサポートするようになりました。 -
CPython
が、サポート対象のプラットフォームでスタックオーバーフローの保護を提供するようになりました。 -
Python 3.12 は、アップストリームでデフォルトで使用されている GCC の
-O3
最適化フラグを使用してコンパイルされています。その結果、Python アプリケーションとインタープリターのパフォーマンスが向上したことがわかります。
Python 3.12 スタックからパッケージをインストールするには、たとえば次のコマンドを使用できます。
dnf install python3 dnf install python3-pip
# dnf install python3
# dnf install python3-pip
インタープリターを実行するには、たとえば次のコマンドを使用できます。
python python3 python3 -m pip --help
$ python
$ python3
$ python3 -m pip --help
Jira:RHELDOCS-18402[1]、Jira:RHEL-45315
RHEL 10 で Perl 5.40 が導入される
RHEL 10 には Perl 5.40 が含まれており、以前のバージョン 5.32 に比べてさまざまな機能拡張が提供されています。
コアの機能拡張:
- Perl は Unicode 15.0 をサポートするようになりました。
-
umask オプション
-0777
のエイリアスである新しい-g
コマンドラインオプションを使用できるようになりました。 -
-M
コマンドラインオプションでスペースが受け入れられるようになりました。 -
新しい
builtin
モジュールでは、常に存在する新しい関数のドキュメントが提供されるようになりました。 -
新しい
try/catch
機能が追加されました。 - 非推奨の警告には、よりきめ細かい制御を可能にする特定のサブカテゴリーが追加されました。単一のステートメントで引き続きすべての非推奨警告を無効化できることに注意してください。
-
@INC
フックが強化され、$INC
変数と新しいINCDIR
メソッドが追加されました。 -
defer
およびfinally
モジュールからの禁止された制御フローがコンパイル時に検出されるようになりました。 -
パターン内で
(?{ … })
と(??{ … })
を使用すると、そのパターン内のさまざまな最適化がグローバルに無効になります。 -
REG_INF
正規表現エンジン数量詞の制限が 65,536 から 2,147,483,647 に増加されました。 -
新しい正規表現変数
${^LAST_SUCCESSFUL_PATTERN}
を使用すると、現在のスコープ内で一致した最後の成功したパターンにアクセスできます。 -
新しい
__CLASS__
キーワードが導入されました。 -
Perl は新しい
^^
論理 XOR 演算子をサポートするようになりました。
互換性のない変更:
-
物理的に空の
sort
関数は、コンパイル時エラーをトリガーするようになりました。 -
readline()
関数は、ストリームエラーと EOF フラグをクリアしなくなりました。 -
INIT
ブロックは、BEGIN
ブロック内のexit()
関数の後に実行されなくなりました。 -
不明なパッケージで
import
メソッドを呼び出すと、警告が生成されるようになりました。 -
return
関数では、間接オブジェクトが許可されなくなりました。 - エラーや警告の変更により、テストが失敗する可能性があります。
-
物理的に空の
非推奨:
-
パッケージ名の区切り文字として
'
文字を使用することは非推奨となりました。 -
switch
機能とスマートマッチ Operator~~
は非推奨となりました。 -
goto
関数を使用して、外部スコープから内部スコープにジャンプすることは非推奨となりました。
-
パッケージ名の区切り文字として
内部の変更:
- 複数の非推奨の C 関数が削除されました。
-
対応するプラットフォームでは、内部の C API 関数が
__attribute__((hidden))
属性によって非公開となりました。つまり、これらのプラットフォーム上の XS モジュールからは呼び出せなくなります。
モジュール:
-
Term::Table
およびTest2::Suite
モジュールが Perl Core に追加されました。 - ほとんどのモジュールが更新されました。
-
詳細は、perl5340delta
、perl5360delta
、perl5380delta
、および perldelta
man ページを参照してください。
Jira:RHELDOCS-18869[1]
RHEL 10 で Ruby 3.3 が導入される
RHEL 10 には Ruby 3.3.7 が含まれています。このバージョンでは、パフォーマンスの改善、バグとセキュリティーの修正、および新機能がいくつか提供されています。
主な機能拡張は、次のとおりです。
-
Ripper
の代わりに新しいPrism
パーサーを使用できます。Prism
は、移植可能で、エラー耐性があり、メンテナンス性に優れた Ruby 言語の再帰下降パーサーです。 - Ruby の just-in-time (JIT) コンパイラー実装である YJIT は、もはや実験的機能ではなく、大幅なパフォーマンスの向上をもたらします。
-
Regexp
一致アルゴリズムが改善され、潜在的な正規表現サービス拒否 (ReDoS) の脆弱性の影響が軽減されました。 - 新しい実験的な RJIT (純粋な Ruby の JIT) コンパイラーが MJIT を置き換えます。実稼働環境では YJIT を使用してください。
- 新しい M:N スレッドスケジューラーが利用可能になりました。
その他の主な変更点:
-
今後は、
Bison
の代わりにLrama
LALR パーサージェネレーターを使用する必要があります。 - いくつかの非推奨のメソッドと定数が削除されました。
-
Racc
gem はデフォルトの gem からバンドルされた gem に昇格しました。
Ruby 3.3 をインストールするには、次のように入力します。
dnf install ruby
# dnf install ruby
Ruby 3.3 のサポート期間は、Red Hat Enterprise Linux Application Streams ライフサイクル を参照してください。
Jira:RHELDOCS-19658[1]
RHEL 10.0 では Node.js 22
が提供される
RHEL 10 には Node.js 22
が含まれています。このバージョンでは、以前提供されていた Node.js 20
に比べて、多数の新機能、バグ修正、セキュリティー修正、パフォーマンスの改善が提供されています。
主な変更点は、以下のとおりです。
-
V8
JavaScript エンジンがバージョン 12.4 にアップグレードされました。 -
V8 Maglev
コンパイラーは、これを利用可能なアーキテクチャー (AMD および Intel 64 ビットアーキテクチャーと 64 ビット ARM アーキテクチャー) でデフォルトで有効になりました。 -
Maglev
は、短命の CLI プログラムのパフォーマンスを向上させます。 -
npm
パッケージマネージャーが、バージョン 10.8.1 にアップグレードされました。 -
node --watch
モードは現在安定していると見なされます。watch
モードでは、監視対象ファイルの変更によりNode.js
プロセスが再起動されます。 -
WebSocket
のブラウザー互換実装は現在、安定していると見なされ、デフォルトで有効になっています。その結果、外部依存関係なしで Node.js への WebSocket クライアントが利用できるようになります。 -
Node.js
には、package.json
からのスクリプトを実行するための実験的な機能が含まれるようになりました。この機能を使用するには、node --run <script-in-package.json>
コマンドを実行します。
Node.js 22 をインストールするには、次のように入力します。
dnf install nodejs
# dnf install nodejs
RHEL 10 で PostgreSQL 16 が導入される
RHEL 10 には PostgreSQL バージョン 16 が含まれています。
主な機能拡張は、次のとおりです。
- 強化されたバルクロードによりパフォーマンスが向上します。
-
libpq
ライブラリーの新しいload_balance_hosts
オプションは、より効率的な負荷分散をサポートします。 -
/var/lib/pgsql/data/
ディレクトリー内の設定ファイルは、カスタムのpg_hba.conf
およびpg_ident.conf
ファイルのインクルードをサポートします。 -
/var/lib/pgsql/data/pg_hba.conf
ファイルは、データベースおよびロールエントリーに対する正規表現の一致をサポートしています。
その他の変更点は次のとおりです。
-
postmaster
バイナリーが存在しません。代わりにpostgres
バイナリーを使用します。この変更は、postmaster
を使用してサービスを開始するユーザーにのみ影響します。 - パッケージ内に PDF ドキュメントが存在しません。代わりに アップストリームのドキュメント を使用します。
詳細は、Using PostgreSQL を参照してください。
PostgreSQL 16 をインストールするには、次のように入力します。
dnf install postgresql16
# dnf install postgresql16
RHEL 10 で MySQL 8.4 が導入される
RHEL 10.0 には MySQL 8.4 が含まれています。以前に利用可能であったバージョン 8.0 からの主な変更点は、以下のとおりです。
-
非推奨の
mysql_native_password
認証プラグインは、デフォルトでは有効化されなくなりました。 -
MySQL 8.4 にアップグレードすると、
BINLOG_ADMIN
権限を持つユーザーアカウントまたはロールにTRANSACTION_GTID_TAG
権限が自動的に付与されます。 -
MySQL 8.4 をインストールすると、サーバーのデータディレクトリーに
mysql_upgrade_history
ファイルが作成または更新されます。ファイルは JSON 形式で、インストールされているバージョン、インストールの日時、リリースが長期サポート (LTS シリーズ) の一部であるかイノベーションシリーズの一部であるかに関する情報が含まれています。 -
データベース権限付与におけるワイルドカードとしての
%
および_
文字の使用は非推奨となり、ワイルドカード機能は今後の MySQL リリースで削除される予定です。これらの文字はリテラルとして扱われます。partial_revokes
サーバーシステム変数がON
に設定されている場合、これらはすでにリテラルとして扱われます。 -
権限をチェックするときに、サーバーが
%
文字を localhost の同義語として扱うことは非推奨となりました。 -
非推奨の
--ssl
と--admin-ssl
サーバーオプション、およびhave_ssl
とhave_openssl
サーバーシステム変数は削除されました。代わりに、--tls-version
および--admin-tls-version
サーバーシステム変数を使用してください。 -
非推奨の
default_authentication_plugin
システム変数は削除されました。代わりにauthentication_policy
サーバーシステム変数を使用してください。 -
非推奨の
SET_USER_ID
権限は削除されました。代わりに、定義者オブジェクトの作成にはSET_ANY_DEFINER
権限を使用し、孤立したオブジェクトの保護にはALLOW_NONEXISTENT_DEFINER
権限を使用できます。 -
非推奨の
mysql_upgrade
ユーティリティーは削除されました。
詳細は、アップストリームの MySQL ドキュメント を参照してください。
RHEL 10 では pgvector
エクステンションを備えた PostgreSQL 16 が提供される
RHEL 10 には PostgreSQL 16 が含まれています。pgaudit
、pg_repack
、および decoderbufs
エクステンションに加えて、Postgresql スタックでは pgvector
エクステンションも提供されるようになりました。pgvector
エクステンションを使用すると、高次元ベクトル埋め込みを PostgreSQL データベース内に直接保存およびクエリーし、ベクトル類似性検索を実行できます。ベクトル埋め込みは、テキスト、イメージ、またはその他のデータタイプの意味を捉えるために機械学習や AI アプリケーションでよく使用されるデータの数値表現です。
Jira:RHEL-35993[1]
RHEL 10 で MariaDB 10.11 が導入される
RHEL 10 には MariaDB 10.11 が含まれています。主な変更点は、以下のとおりです。
- 新しい sys_schema 機能。
- アトミックデータ定義言語 (DDL) ステートメント。
- 新しい GRANT … TO PUBLIC 権限。
- SUPER 特権と READ ONLY ADMIN 特権の分離。
- 新しい UUID データベースデータ型。
- Secure Socket Layer (SSL) プロトコルのバージョン 3 のサポート。MariaDB サーバーの起動には、正しく設定された SSL が必要になりました。
- natural_sort_key() 関数による自然なソート順序のサポート。
- 任意のテキストフォーマットのための新しい SFORMAT 関数。
- UTF-8 文字セットと UCA-14 照合の変更。
- /usr/share/ ディレクトリーで利用可能な systemd ソケットのアクティベーションファイル。アップストリームとは異なり、これらのファイルは RHEL のデフォルト設定の一部ではないことに注意してください。
- MySQL の代わりに MariaDB 文字列を含むエラーメッセージ。
- 中国語で利用可能なエラーメッセージ。
- デフォルトの logrotate ファイルへの変更。
-
MariaDB および MySQL クライアントの場合、コマンドラインで指定した接続プロパティー (例:
--port=3306
) によって、クライアントとサーバー間の通信のプロトコルタイプ (tcp、socket、pipe、memory など) が強制されるようになりました。
Jira:RHELDOCS-19550[1]