2 新機能および変更点
この章では、Oracle Linux 8のこのリリースに含まれている新機能、主な機能強化、バグ修正およびその他の変更点について説明します。
インストールと更新の変更点
-
システム更新を実行する場合の説明
ISOイメージからOracle Linux 8.7の新規インストールを実行している場合は、インストールの完了後に、UEK R7カーネルが自動的に有効になります。ただし、そのシステムがULNに登録されている場合は、デフォルトでUEK R6 ULNチャネルが有効になります。この場合に実行する手順については、ULN登録後にUEK R7 ULNチャネルが有効になっていないを参照してください。
UEK R7には、セキュリティおよびパフォーマンスに関する拡張機能を含め、多数の新機能が含まれています。詳細は、Unbreakable Enterprise Kernel: Unbreakable Enterprise Kernelリリース7 (5.15.0-0.30)のリリース・ノートを参照してください。
デフォルトのカーネルとしてUEKではなくRHCKを使用することにした場合は、yumまたはULNでUEKリポジトリまたはチャネルを個別に無効にしてください。RHCKへの切替えの詳細は、Oracle Linux 8: コア・システム構成の管理のカーネルおよびシステム・ブートの管理を参照してください。
更新の場合、UEK R7への切替えは自動的には実行されません。以前のリリースのOracle Linux 8からアップグレードしている場合、システムは、引き続き、すでにインストールされているカーネルを使用して動作します。
システムで現在UEK R6が使用されている場合、UEK R7にアップグレードするには、次の手順に従います。
-
yumの使用による更新
Oracle Linux 8.7に更新した場合は、以前のカーネルが保持されます。それと同時に、UEK R7 yumリポジトリも構成に追加されます。最新のカーネルに移動するには、使用しているプラットフォームに応じて、次のコマンドを実行します。
-
x86_64システムの場合:
sudo dnf config-manager --disable ol8_UEKR6 sudo dnf config-manager --enable ol8_UEKR7 sudo dnf install -y kernel-uek sudo dnf update
-
aarch64システムの場合:
sudo dnf config-manager -enable ol8_UEKR7 sudo dnf install -y kernel-uek sudo dnf update
-
-
ULNの使用による更新
前述のシナリオと同様に、以前のカーネルが保持されます。ただし、結果としてサブスクリプションが変更される場合があります。https://linux.oracle.comにログインし、有効になっているチャネルおよび無効になっているチャネルが、更新後のカーネルについて自分が意図していたものと一致することを確認する必要があります。
-
aarch64プラットフォームのユーザー
UEK R7実装では、デフォルトのベース・ページ・サイズが64 KBから4 KBに変更されています。そのため、UEK R7に更新する場合は、さらに準備が必要になる場合があります(特に、以前の既存のファイル・システムに関連した準備)。Unbreakable Enterprise Kernel: リリース・ノートfor Unbreakable Enterprise Kernel リリース7 (5.15.0-0.30)で以前のOracle LinuxまたはUEKリリースからUEK R7へのアップグレードに関する情報を参照してください。
デフォルト・カーネルを設定した後は、システム・ブートのたびにこれらのパラメータが適用されるようにカーネル・ブート・パラメータをさらに構成できます。手順は、Oracle Linux 8: コア・システム構成の管理を参照してください。
-
オペレーティング・システムおよびソフトウェア管理
Oracle Linux 8.7では、次のオペレーティング・システムとソフトウェア管理機能および機能拡張が導入されています。
-
Rsyslogで使用可能な最大エラー・ファイル・サイズ・オプション
新しい
action.errorfile.maxsize
オプションでバイトサイズ値を指定できるようになりました。これにより、指定したサイズよりRsyslogエラー・ファイルが大きくならないようにします。最大ファイル・サイズに達すると、ファイル・システムの過剰使用からシステムを保護するために、それ以降の書込みが防止されます。
シェルおよびコマンドライン・ツール
次のシェルおよびコマンドライン・インタフェース(CLI)ツールの機能および改善が、Oracle Linux 8.7で導入されています。
-
xmlstarlet
パッケージは、サポートされているリポジトリで使用できますxmlstarlet
パッケージは、以前はol8_developer_EPEL
リポジトリで入手可能でしたが、サポートされているol8_appstream
リポジトリで入手できるようになりました。このパッケージには、XPath構文を利用してファイル内の情報を正しく検索、追加または変更することによって、XMLファイルに対して一般的な操作(他のコマンドライン・ツールで簡単に実行できない)を実行するためにコマンドラインで頻繁に使用されるユーティリティが含まれています。
コンパイラおよび開発ツールセット
Oracle Linux 8.7には、コンパイラおよび開発ツールセットに次の機能、拡張機能および変更が導入されています。
-
Rustツールセットがバージョン1.62.1に更新されています
- 代入の左側としてタプル、スライス、および構造体パターンを使用できるようになりました。たとえば、タプル代入では、次の2つの変数を取り替えることができます。
(a, b) = (b, a);
+=
などの演算子を使用した代入の破棄は許可されないことに注意してください。 - インライン・アセンブリは、
core::arch::asm!
マクロを使用してx86_64およびaarch64で使用できます。 - 列挙型は、明示的に注釈付き
#[default]
バリアントを使用してDefault
特性を導出できます。 - pthreadの置換には、
Mutex
、CondVar
およびRwLock
に対して、最適化されたfutex
ベースの実装が使用されます。 -
Termination
特性を使用するユーザー定義型を含む、main
からのカスタム終了コードを使用できます。 - Cargoは、依存関係機能に対して、より詳細な制御をサポートします。
dep:
接頭辞は、それを機能として公開せずにオプションの依存関係を参照でき、?
は、その依存関係がpackage-name?/feature-name
のように他の場所で有効になっている場合にのみ依存関係機能を有効にします。 -
Cargo.toml
に依存関係を追加するための新しいcargo add
サブコマンドを使用できます。
- 代入の左側としてタプル、スライス、および構造体パターンを使用できるようになりました。たとえば、タプル代入では、次の2つの変数を取り替えることができます。
-
LLVMツールセットがバージョン14.0.0に更新されます
- 64ビットx86では、
AVX512-FP16
命令のサポートが追加されました。 - Armv9-A、Armv9.1-AおよびArmv9.2-Aアーキテクチャのサポートが追加されました。
このバージョンには、
clang
の次の変更も含まれています。C++2b
のif consteval
が実装されました。AVX512-FP16
命令がx86_64アーキテクチャに追加されました。-
-E -P
プリプロセッサ出力では、GCCの動作に一致する空白行が常に省略されるようになりました。以前は、最大8行の連続した空白行が出力に表示されていました。 - GCCの動作と一致するC89のみでなく、
C99
以降の標準で-Wdeclaration-after-statement
をサポートします。重要なユースケースでは、宣言とコードの混合を禁止するが、新しいC標準への移行を希望するスタイル・ガイドをサポートしています。
詳細は、LLVMツールセットおよびClangアップストリームのリリース・ノートを参照してください。
- 64ビットx86では、
-
Maven 3.8を新しいモジュール・ストリームとして使用できるようになりました
Maven 3.8が、新しい
maven:3.8
モジュール・ストリームとして提供されます。
GCC Toolset 12
Oracle Linux 8.7にはGCC Toolset 12が用意されています。これは、AppStream
リポジトリ内のソフトウェア・コレクションの形式で配布されるアプリケーション・ストリームです。GCCツールセットは、Oracle Linux開発者ツールセットと似ています。このリリースでのコンパイラおよび開発者ツールセットの変更点に関する追加情報は、unresolvable-reference.html#ol8-features-developerを参照してください。
-
GCC Toolset 12では
_FORTIFY_SOURCE
レベル3がサポートされていますGCCバージョン12以降でビルドするときにコンパイラ・コマンドラインで
-D_FORTIFY_SOURCE=3
を使用すると、ソース・コードの強化の範囲が広がり、アプリケーションのセキュリティが向上します。 -
binutils
がバージョン2.38に更新されましたbinutils
パッケージで、マルチバイト文字の存在について表示または警告するオプションがサポートされるようになり、幅広い言語と互換性があるソフトウェアを簡単に作成できるようになりました。readelf
およびobjdump
ツールは個別のdebuginfo
ファイルへのリンクに自動的に従います。それにより、プログラムのデバッグがより簡単になります。この動作を無効にするには、readelf
の場合は--debug-dump=no-follow-links
オプションを使用し、objdump
の場合は--dwarf=no-follow-links
オプションを使用します。 -
annobinがバージョン10.79に更新されました
annocheck
用の新しいコマンドライン・オプションにより、デバッグ情報が別の方法で見つからない場合にdebuginfod
サービスを使用しないように指示します。このオプションは、debuginfod
サーバーを使用できない場合のパフォーマンス向上に役立ちます。Rust 1.18コンパイラによってビルドされたバイナリが、annocheck
でサポートされるようになりました。meson
およびninja
は、それらがconfigure
およびmake
より優先されている場合には、代替方法として使用してannobinソースをビルドできます。 -
gdb
がバージョン11.2に更新されましたこの更新には、いくつかの新しいコマンドおよびオプションやいくつかの機能拡張の追加など、機能に対する多数の変更点が含まれています。すべての更新を示すリストは、https://sourceware.org/git/gitweb.cgi?p=binutils-GDB.git;a=blob_plain;f=GDB/NEWS;hb=GDB-11.2-releaseにある、アップストリームのGDBリリース・ノートを参照してください。
GCC Toolset 12は、ソフトウェア・コレクションの形式でAppStream
リポジトリ内でアプリケーション・ストリームとして使用できます。
このツールセットをインストールするには、次のコマンドを実行します。
sudo dnf install gcc-toolset-12
このツールセットを以前にインストールした場合は、次のコマンドを使用して最新のバージョンにアップグレードします。
sudo dnf upgrade gcc-toolset-12
GCC Toolset 12からツールを実行するには、次のコマンドを使用します。
scl enable gcc-toolset-12 tool
次のコマンドはシェル・セッションを開始し、GCC Toolset 12のツール・バージョンが、同じツールのシステム・バージョンよりも優先されます。
scl enable gcc-toolset-12 bash
動的プログラミング言語、Webサーバーとデータベース・サーバー
Oracle Linux 8.7では、動的プログラミング言語およびWebサーバーとデータベース・サーバーに関する機能に次の変更と改善が含まれています。なお、このリリースでは、次のような、新しいモジュール・ストリームと改良されたモジュール・ストリームもいくつか導入されています。
-
Ruby 3.1.2が新しいモジュール・ストリームとして使用可能です
Ruby 3.1.2は、新しい
ruby:3.1
モジュール・ストリームで使用できます。このバージョンのRubyには、次のように、ruby:3.0
モジュール・ストリームに対するいくつかの拡張機能およびパフォーマンス改善が含まれています。-
Interactive Ruby
(IRB)ユーティリティに含まれている自動補完機能およびドキュメント・ダイアログ。 - パフォーマンスの向上、機能性の向上およびより詳細な制御を可能にする新しい
debug
およびerror_highlight
gem。 - ハッシュ・リテラル・データ型およびキーワード引数の値を省略できるようになりました
- 1行パターン一致ではカッコを省略でき、pin演算子(
^
)ではパターン一致で式を受け入れるようになりました。 - 新しい試験的なJust-in-Time (JIT)コンパイラであるYJITが、AMDおよびIntel 64ビット・アーキテクチャで使用できるようになりました
- メソッド・ベースのJust-in-Timeコンパイラ(MJIT)には、Railsなどの大規模なワークロードに対するデフォルトの最大JITキャッシュ値の増加など、いくつかのパフォーマンス改善が含まれています。
-
-
Mercurial 6.2を新しいモジュール・ストリームとして使用できるようになりました
Mercurial 6.2を新しい
mercurial:6.2
モジュール・ストリームとして使用できるようになりました。このバージョンには、mercurial:4.8
モジュール・ストリームに比べ、次のような重要な変更点がいくつか含まれています。- Python 2は、このバージョンのMercurialと互換性がなくなりました。Mercurialは、Python 3.6以降と互換性があります。
-
hg purge
およびhg clean
コマンドで、追跡されていないファイルではなく無視されたファイルを削除できる、新しい-i
オプションを使用できます。 -
hg diff
およびhg extdiff
コマンドで--from <revision>
および--to <revision>
引数を使用できるようになりました。また、新しい内部マージ・ユーティリティinternal:mergediff
を使用できるようになりました。 - 新しいリポジトリでは、デフォルトでZstandard (ZSTD)圧縮が使用されます。
- 必要な拡張機能を指定するための新しい方法を使用できるようになりました。この方法では、必要な拡張機能が見つからない場合にMercurialを起動できなくなります。
hg
コマンドにCラッパーを提供する、新しいmercurial-chg
ユーティリティを使用できるようになりました。chg
コマンドを使用すると、ラッパーが使用されてパフォーマンスが大幅に向上します。
ファイル・システムおよびストレージ
Oracle Linux 8.7では、次のファイル・システムおよびストレージ機能、拡張機能および変更点を提供しています。
-
BtrfsがRHCKから削除されましたOracle Linux 8では、Btrfsファイル・システムがRHCKから削除されています。そのため、このカーネルを使用しているときはBtrfsファイル・システムを作成またはマウントできません。また、提供されているBtrfsユーザー領域パッケージはRHCKではサポートされていないことに注意してください。
ノート:
Btrfsファイル・システムのサポートは、UEK R7およびUEK R6で有効になっています。Oracle Linux 8.3以降、インストール中にBtrfsルート・ファイル・システムを作成するオプションがあり、同じようにデバイスのフォーマット時にファイル・システム・タイプとしてBtrfsを選択するオプションもあります。この機能の詳細は、『Oracle Linux 8: Oracle Linuxのインストール』を参照してください。
Btrfsルート・ファイル・システムの管理の詳細は、Oracle Linux 8: ローカル・ファイル・システムの管理を参照してください。
UEK R6でBtrfsに加えられた変更は、Unbreakable Enterprise Kernel: リリース・ノートfor Unbreakable Enterprise Kernelリリース6更新3 (5.4.17-2136)を参照してください。
UEK R7でのBtrfsに対する変更は、Unbreakable Enterprise Kernel: リリース・ノートfor Unbreakable Enterprise Kernelリリース7 (5.15.0-0.30)を参照してください。
-
OCFS2がRHCKから削除されましたOracle Linux 8では、Oracle Cluster File Systemバージョン2 (OCFS2)ファイル・システムがRHCKから削除されています。そのため、このカーネルを使用しているときはOCFS2ファイル・システムを作成またはマウントできません。また、提供されているOCFS2ユーザー領域パッケージはRHCKでサポートされていません。
ノート:
OCFS2は、Oracle Linux 8.7のUEK R6およびUEK R7で完全サポートされています。
-
nfsrahead
ユーティリティが追加されましたNFSマウントの
readahead
値を変更するための、nfsrahead
ユーティリティを使用できるようになりました。このユーティリティは、NFSのパフォーマンス向上に役立ちます。 -
rpcctl
コマンドでSunRPC接続情報が表示されますrpcctl
コマンドで、SunRPCのsysfs
ファイル内の情報の表示やオブジェクトの追加および削除が可能になりました。 -
Device Mapper Multipath構成をプロトコルごとに構成できます
Device Mapperのマルチパス・デバイスのパスをプロトコルごとに構成できるようになり、複数のプロトコルを使用して、アクセス可能なマルチパス・デバイスを最適に構成できるようになりました。
multipath.conf
ファイルを編集してプロトコル・オーバーライド構成を指定します。overrides { protocol { type "scsi:fcp" dev_loss_tmo 70 fast_io_fail_tmo 10 eh_deadline 360 } protocol { type "scsi:iscsi" fast_io_fail 120 } }
必須のtype
属性は、プロトコルに対してパスのデバイスを照合するために使用されます。type
属性は、scsi:fcp
、scsi:spi
、scsi:ssa
、scsi:sbp
、scsi:srp
、scsi:iscsi
、scsi:sas
、scsi:adt
、scsi:ata
、scsi:unspec
、ccw
、cciss
、nvme
またはundef
に設定できます。パスのデバイスのプロトコルは、multipathd show path format "%d %P"の実行によって決定できます。一致するプロトコル・サブセクションにある属性は、オーバーライド・セクションの残りにある属性よりも優先されます。一致するプロトコル・サブセクションが複数ある場合は、後方のエントリが優先されます。
高可用性とクラスタ
-
pcs stonith update-scsi-devices
では、クラスタを再起動せずにマルチパスSCSIデバイスを更新できますpcs stonith update-scsi-devices
コマンドを使用すると、マルチパス・デバイスを使用してクラスタ上の分離を更新でき、同じノードで実行されている他のクラスタ・リソースを再起動する必要がありません。次に例を示します。sudo pcs stonith update-scsi-devices <mpath-fence-dev> set <device-path> sudo pcs stonith update-scsi-devices <mpath-fence-dev> add <device-path> sudo pcs stonith update-scsi-devices <mpath-fence-dev> remove <device-path>...
-
PacemakerクラスタにUUIDがあります
pcs
コマンドは、クラスタの作成時にクラスタを一意に識別するために使用できるUUIDを生成します。pcs cluster config [show]
コマンドを実行すると、UUIDが表示されます。UUIDを既存のクラスタに追加することも、UUIDがすでに存在する場合はpcs cluster config UUID generate
を実行して再生成することもできます。 -
multiple-active
リソース・パラメータでstop_unexpected
の値が受け入れられるようになりましたmultiple-active
リソース・パラメータにより、リソースが複数ノードでアクティブであるがそうであってはならない場合のリカバリ動作を決定します。デフォルトでは、この状況には、リソースが正常に実行されており、そうである必要がある場合でも、リソースの完全再起動が必要になります。この更新では、multiple-active
リソース・パラメータでstop_unexpected
の値が受け入れられます。これにより、複数アクティブになっているリソースの、想定されていないインスタンスのみが停止されるように指定できます。完全再起動の必要がなく余分なアクティブ・インスタンスがある状態でサービスおよびそのリソース・エージェントが動作可能であることを、ユーザーが確認する必要があります。 -
Pacemaker
allow-unhealthy-node
リソース・メタ属性が追加されますallow-unhealthy-node
リソース・メタ属性をtrue
に設定して、ノードのヘルスが低下したためにリソースがノードから強制的に除外されないようにできます。この機能により、ヘルス・エージェントを異常なノードで引き続き実行できるため、リソースがノードに戻される前に、ノードが再び正常になると、クラスタが自動的に検出されます。 -
Pacemakerには、システム・グループのアクセス制御リスト(ACL)が含まれています
以前に個々のユーザーに対して許可されていたACLに加え、Pacemakerには、ロールに基づくアクセス制御を容易にするためのシステム・グループのACLが含まれています。
pcs acl group
コマンドを使用して、システム・グループにACLを適用できるようになりました。たとえば、pcs_ro_groupシステム・グループの読取り専用ACLを作成するには、次のようにします。sudo pcs acl group create pcs_ro_group readonly
-
Pacemakerの
--output-format=cmd
オプションを指定するとフェンス・デバイスとリソースを再作成するコマンドライン出力が生成されますpcs stonith config
コマンドの実行時に--output-format=cmd
オプションを使用すると、フェンス・デバイスを再構成するために別のシステムで実行する必要があるpcs
コマンドの出力が生成されます。このオプションをpcs resource config
コマンドで使用すると、代替システムでリソースを再構成するために実行するコマンドのリストを取得することもできます。
インフラストラクチャ・サービス
-
samba
がバージョン4.16.1にリベースされましたsamba
パッケージがアップストリーム・バージョン4.16.1にアップグレードされました。これにより、以前のバージョンに対する不具合修正および機能拡張が提供されています。- デフォルトでは、
smbd
プロセスは、新しいsamba-dcerpcd
プロセスをオンデマンドで自動的に起動して、Distributed Computing Environment / Remote Procedure Call (DCERPC)に対応します。なお、Samba 4.16以降では、DCERPCを使用するには必ずsamba-dcerpcd
が必要です。/etc/samba/smb.conf
ファイル内の[global]
セクションでrpc start on demand helpers
設定を無効にする場合は、systemd
サービス・ユニットを作成してスタンドアロン・モードでsamba-dcerpcd
を実行する必要があります。 -
Cluster Trivial Database (CTDB)の
recovery master
ロールは名前がleader
に変更されました。その結果、次のctdb
サブコマンドの名前が変更されました。recmaster
がleader
にsetrecmasterrole
がsetleaderrole
に
- CTDBの
recovery lock
構成は名前がcluster lock
に変更されました。 - CTDBで、リーダー・ブロードキャストおよび関連するタイムアウトを使用して、選出が必要かどうかを判断できるようになりました。
なお、サーバー・メッセージ・ブロック・バージョン1 (SMB1)プロトコルはSamba 4.11以降では非推奨であり将来のリリースで削除されます。
Sambaを起動する前に、データベース・ファイルをバックアップしてください。
smbd
、nmbd
またはwinbind
サービスが起動されると、Sambaによってそのtdb
データベース・ファイルが自動的に更新されます。なお、Red Hatではtdb
データベース・ファイルのダウングレードはサポートされていません。Sambaの更新後に、
testparm
ユーティリティを使用して/etc/samba/smb.conf
ファイルを検証してください。更新する前に、重要な変更点についてその後の追加情報をアップストリームのリリース・ノートで確認してください。
- デフォルトでは、
セキュリティ
Oracle Linux 8.7では、次のセキュリティ機能、拡張機能および変更点が導入されています。
-
NSSで1023ビットより短いRSAキーがサポートされなくなりました
ネットワーク・セキュリティ・サービス(NSS)ライブラリが更新されて、すべてのRSA操作の最小キー・サイズが128から1023ビットに設定されるようになりました。NSSでは、1023ビットよりも短いRSAキーを使用して情報を生成、署名、検証、暗号化または復号化できなくなりました。
-
SCAPセキュリティ・ガイドが0.1.63に更新されました
SCAPセキュリティ・ガイド(SSG)は、
sysctl
、grub2
、pam_pwquality
、およびビルド・タイム・カーネル構成の新しいコンプライアンス・ルールを提供します。 -
Oracle Linux 8でのSTIGプロファイルはDISA STIGへの準拠性が向上しています
Oracle Linux 8用のDISA STIGプロファイルは
scap-security-guide
パッケージに含まれています。このプロファイルは、DISA Oracle Linux 8 STIG V1R3にあわせて作成されており、アカウント・パスワードの処理、パスワード品質、ホーム・パーティションのマウント・ポイントのチェックおよびsysctl
の構成に関連する新しいルールまたは更新されたルールを含んでいます。これらの更新されたルールにより、DISAのSTIG要件への準拠性が向上します。 -
SSGルールでは、以前は、/tmp
および/var/tmp
パーティションが存在しない場合にマウント・オプションに関するscap-security-guide
ルールが失敗しなくなりました/tmp
および/var/tmp
パーティションがシステムに存在しなかった場合に結果fail
がレポートされていましたが、これらのルールは、パーティションが存在するがシステムのマウント・オプションが正しくない場合のみ失敗がレポートされるように更新されました。 -
fapolicyd
が1.1.3に更新されますfapolicyd
ソフトウェア・フレームワークはバージョン1.1.3に更新されて、ハッシュ計算の暗号化エンジンとしてのOpenSSLライブラリの使用に関する変更点や、ルールでサブジェクトの親プロセスID (PPID)との照合が可能になる機能など、いくつかの拡張機能が含まれました。fagenrules --load
コマンドの修正も含まれています。 -
opencryptoki
がバージョン3.18.0に更新されますこのバージョンには、次の改善が含まれています。
- 連邦情報処理標準(FIPS)準拠のトークン・データ形式(tokversion = 3.12)にデフォルト設定されます。
- グローバル・ポリシーを使用してメカニズムおよびキーの使用を制限できます。
- メカニズム使用状況の統計カウントを有効にします。
-
ICA/EP11
トークンでは、libica
ライブラリ・バージョン4を使用できます。 -
p11sak
ツールでは、公開キーと秘密キーに異なる属性を設定できます。 -
C_GetMechanismList
は、EP11トークンのCKR_BUFFER_TOO_SMALL
を返しません。
仮想化
Oracle Linux 8.7では、次の仮想化機能、拡張機能および変更が導入されています。
-
open-vm-tools
が12.0.5に更新されましたVMware Toolsのオープン・ソース実装のこの更新バージョンでは、ゲストOS変数を介して管理されるSalt Minionツールのサポートが追加されました。
-
ESXiハイパーバイザおよびSEV-ESがサポートされるようになりました
VMwareのESXiハイパーバイザでOracle Linux 8.4以降を実行している場合に、AMD Secure Encrypted Virtualization-Encrypted State (SEV-ES)機能を有効にして仮想マシンを保護できるようになりました。この機能は、以前はテクノロジ・プレビューとして導入されていましたが、現在は十分にサポートされています。