動的プログラミング言語、Webサーバーとデータベース・サーバー
このOracle Linux 8リリースでは、プログラミング言語、Webサーバーおよびデータベース・サーバーに関連する次の機能、拡張機能、および変更が導入されています。
Pythonバージョン3.12の可用性
このリリースのOracle Linux 8.10では、Python 3.12の最新リリースを使用できます。Python 3.12の主な拡張機能(3.11との比較)は次のとおりです:
-
構文機能の更新には、
type
文、および汎用クラスと汎用関数のタイプ・パラメータ構文が含まれています。 -
文法機能の更新には、パーサーに直接統合できるf文字列の構文形式化が含まれています。
-
インタプリタごとの独自のグローバル・インタプリタ・ロック(GIL)を使用します。この機能により、Pythonプログラムは複数のCPUコアを最大限に活用できます。このリリースでは、この機能はC-APIでのみ使用できます。
-
Pythonデータ・モデルの更新には、Pythonコードからバッファ・プロトコルを使用する方法が含まれています。
__buffer__()
メソッドを実装するクラスをバッファ・タイプとして使用できるようになりました。 -
セキュリティの改善には、SHA1、SHA3、SHA2-384、SHA2-512、およびMD5の組込み
hashlib
実装を、HACL*プロジェクトから正式に検証されたコードに置き換えることが含まれています。これらの組込み実装は、OpenSSLによって提供されない場合にのみ使用されるフォールバックとして残ります。 -
CPython
のディクショナリ、リストおよびセット理解がインライン化されました。この拡張により、理解実行の速度が向上します。 -
CPython
を、Linuxのperf
プロファイラで使用できます。 -
スタック保護が、サポートされているプラットフォームで
CPython
によって提供されます。
Python 3.12シリーズ・パッケージは、同じシステム上のPython 3.9およびPython 3.11と並行してインストールできます。
次に例を示します:
python3.12
スタックからパッケージをインストールするには、次のように入力します:# dnf install python3.12 # dnf install python3.12-pip
- インタプリタを実行するには、次のように入力します:
$ python3.12 $ python3.12 -m pip --help
ノート:
Python 3.12シリーズのドキュメントは、python3.12-docs
パッケージにあります。
Python言語バージョンの製品サポートの詳細は、『Oracle Linux: 製品ライフ・サイクル情報』を参照してください。
メール・アドレス解析を制御するためのPythonの改善
CVE-2023-27043に関連する修正により、email.utils
モジュールのgetaddresses
関数およびparseaddr
関数でPython 3の電子メール・アドレスのより厳密な解析を有効にする機能が追加されました。ただし、この修正は古い解析動作と互換性がないため、この改善には、既存のコードに新しいコード変更を実装することなく、古い動作を優先して新しい動作を無効にする2つの方法が含まれています。
最初の方法は、新しいPYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING
環境変数で、true
に設定すると、古い解析動作がデフォルトとして有効になります。次に例を示します:
export PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING=true
次のセクションを使用して/etc/python/email.cfg
構成ファイルを作成することで、同じ操作を実行できます:
[email_addr_parsing]
PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING = true
ノート:
新しい関数がコードに実装されている場合、これらを設定しても、関数はより厳密な動作を有効にできます。Rubyバージョン3.3の可用性
Ruby 3.3.0が、次の重要な拡張機能を備えた新しいruby:3.3
モジュール・ストリームに含まれています:
-
新しい
Prism
パーサー。Prismは、Ruby言語の移植可能でエラー許容性が高い、メンテナンス可能な再帰的下降パーサーです。Prism
は、Ripper
スクリプト・パーサーの代替パーサーです。 -
RubyジャストインタイムYJITコンパイラでは、パフォーマンスが大幅に向上しています。
-
Regexp
照合アルゴリズムが更新され、正規表現によるサービス拒否(ReDoS)の潜在的な脆弱性の影響が軽減されました。 - 新しいpure-Ruby JITコンパイラ(RJIT)は、x86-64アーキテクチャUNIXプラットフォームで使用できます。RJITコンパイラはMJITコンパイラに置き換わります。
- 新しいM:Nスレッド・スケジューラが使用可能です。
その他の主な変更点は次のとおりです:
Bison
のかわりにLrama
LALRパーサー・ジェネレータを使用します。-
非推奨のメソッドおよび定数がいくつか削除されました。
-
Racc
gemが、デフォルトのgemからバンドルされたgemに昇格されました。
ruby:3.3
モジュール・ストリームを有効にしてインストールするには、次のように入力します:
sudo dnf module enable ruby:3.3
sudo dnf module install ruby:3.3
以前のruby
モジュール・ストリームからアップグレードする場合は、『Oracle Linux: Oracle Linuxでのソフトウェアの管理』を参照してください。
Rubyモジュールの製品サポートの詳細は、『Oracle Linux: 製品ライフ・サイクル情報』を参照してください。
バージョン2.62に更新されたperl-DateTime-TimeZone
モジュール
perl-DateTime-TimeZone
モジュールがバージョン2.62に更新されました。特に、name()
メソッドは、別名値ではなくメイン・タイム・ゾーン名を返すように変更されています。
PHPバージョン8.2の可用性
PHP 8.2が新しいphp:8.2
モジュール・ストリームに含まれており、次の重要な変更点があります:
-
クラスに読取り専用修飾子をマークする機能。
-
null、falseおよびtrueをスタンドアロン型として使用する機能。
-
random
という名前の新しいRandom
拡張子。この拡張機能は、乱数生成に関連する既存のPHP機能を編成および統合するのに役立ちます。 -
特性に定数を定義する機能。
php:8.2
モジュール・ストリームをインストールするには、次のコマンドを使用します:
sudo dnf module install php:8.2
Oracle Linux内のphp:8.1
ストリームからアップグレードする場合は、『Oracle Linux: Oracle Linuxでのソフトウェアの管理』を参照してください。
php
モジュール・ストリームのサポート期間の詳細は、『Oracle Linux: 製品ライフ・サイクル情報』を参照してください。
PostgreSQLバージョン16の可用性
Oracle Linux 8.10では、PostgreSQL 16をpostgresql:16
モジュール・ストリームとして使用できます。PostgreSQL 16には、バージョン15よりも多くの新機能および拡張機能が含まれています。
主な拡張機能は次のとおりです:
-
データベース操作の一括ロードのパフォーマンスが向上しました。
-
libpq
ライブラリが接続レベルのロード・バランシングを処理します。クライアントが使用可能なホストおよびアドレスへの接続を試みる順序を制御するために、新しいload_balance_hosts = disable | random
オプションを使用できます。 -
カスタム構成ファイルを作成し、
pg_hba.conf
およびpg_ident.conf
ファイルに含める機能。 -
pg_hba.conf
内のユーザー名とデータベース名、およびpg_ident.conf
ファイル内のユーザー名の正規表現照合が拡張されました。
その他の変更点は次のとおりです:
-
PostgreSQLが
postmaster
バイナリとともに配布されなくなりました。指定されたsystemd
ユニット・ファイル(systemctl start postgres
コマンド)を使用してpostgresql
サーバーを起動するユーザーは、この変更の影響を受けません。postmaster
バイナリを介してpostgresql
サーバーを直接起動する場合は、かわりにpostgres
バイナリを使用する必要があります。 -
PostgreSQLでは、パッケージ内でPDF形式のドキュメントが提供されなくなりました。かわりに、PostgreSQLオンライン・ドキュメントを使用してください。また、「Using PostgreSQL」も参照してください
postgresql:16
ストリームをインストールするには、次のコマンドを使用します:
sudo dnf module install postgresql:16
Oracle Linux内の以前のpostgresql
ストリームからアップグレードするには、『Oracle Linux: Oracle Linuxでのソフトウェアの管理』で説明されている手順に従います。
postgresql
モジュール・ストリームのサポート期間の詳細は、『Oracle Linux: 製品ライフ・サイクル情報』を参照してください。
NGINXバージョン1.24の可用性
NGINX 1.24 Webおよびプロキシ・サーバーは、新しいnginx:1.24
モジュール・ストリームに含まれており、次の重要な変更があります:
Transport Layer Security (TLS)に関連する新機能および変更:
-
ssl_session_cache
ディレクティブで共有メモリーを使用する場合、暗号化キーがTLSセッション・チケットに対して自動的にローテーションされます。 -
Secure Sockets Layer (SSL)プロキシを使用した構成でのメモリー使用の最適化が改善されました。
-
ipv4=off
パラメータを使用して、IPアドレスの解決中にIPv4アドレスの検索を無効にできるようになりました。 - 新しい
$proxy_protocol_tlv_*
変数を使用できます。これらの変数を使用して、PROXY v2 TLVプロトコルに表示されるType-Length-Value (TLV)フィールドの値を格納できます。 -
新しい
byte range
機能がngx_http_gzip_static_module
に追加されました。
その他の変更点:
-
ヘッダー行が、リンクされたリストとして内部APIに表示されるようになりました。
-
NGINXが、
ngx_http_perl_module
の$r->header_in()
メソッドのFastCGI、SCGIおよびuwsgiバックエンドに渡され、$http_...
、$sent_http_...
、$sent_trailer_...
、$upstream_http_...
および$upstream_trailer_...
変数のルックアップ中に、任意のヘッダー行を同じ名前付きヘッダー文字列と結合できるようになりました。 -
リスニング・ソケットのプロトコル・パラメータを再定義すると、警告メッセージが表示されます。
-
クライアントがパイプライン・リクエストを使用した場合、NGINXは接続を長引かせて閉じます。
-
様々なSSLエラーのロギング・レベルが
Critical
からInformational
に低下しました。
nginx:1.24
ストリームをインストールするには、次を使用します:
sudo dnf module install nginx:1.24
Oracle Linux内のnginx 1.22
ストリームからアップグレードするには、『Oracle Linux: Oracle Linuxでのソフトウェアの管理』を参照してください。
php
モジュール・ストリームのサポート期間の詳細は、『Oracle Linux: 製品ライフ・サイクル情報』を参照してください。
バージョン2.43.0に更新されたGit
Gitバージョン2.43が次の拡張機能とともにこのリリースに含まれています。
-
git check-attr
コマンドには、現在の作業ディレクトリではなく、指定されたツリー・オブジェクトから.gitattributes
ファイルを読み取るために使用できる新しい--source
オプションがあります。 -
Gitが1つ以上の
WWW-Authenticate
ヘッダーを含むHTTPレスポンスを受信すると、各WW-Authenticate
ヘッダーの値がGitによって資格証明ヘルパーに渡されます。 -
空のコミットの場合、
git format-patch
コマンドを使用して、空のファイルを作成するかわりに、コミットのヘッダーを含む出力ファイルに書き込むことができます。 -
git blame --contents=*<file>* *<revision>* -- *<path>*
コマンドを使用して、*<revision>*
につながる履歴を介して*<file>*
から始まる行の起点を調べることができます。 -
git log --format
コマンドが、さらにカスタマイズするために%(decorate)
プレースホルダーを受け入れ、--decorate
オプションによって提供される機能を拡張するために更新されました。