検索

RHEL 8 の導入における検討事項

download PDF
Red Hat Enterprise Linux 8

Red Hat Enterprise Linux 7 と Red Hat Enterprise Linux 8 における主な相違点

Red Hat Customer Content Services

概要

本ガイドでは、Red Hat Enterprise Linux 7 から Red Hat Enterprise Linux 8 への変更の概要と、Red Hat Enterprise Linux 8 へのアップグレードの評価について説明します。

Red Hat ドキュメントへのフィードバック (英語のみ)

Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。

Jira からのフィードバック送信 (アカウントが必要)

  1. Jira の Web サイトにログインします。
  2. 上部のナビゲーションバーで Create をクリックします。
  3. Summary フィールドにわかりやすいタイトルを入力します。
  4. Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
  5. ダイアログの下部にある Create をクリックします。

第1章 はじめに

本ガイドは、Red Hat Enterprise Linux のメジャーバージョンである RHEL 7 と RHEL 8 の相違点の概要を説明します。ここでは、RHEL 8 へのアップグレードの評価に関連するものが紹介されており、すべての変更が記載されているわけではありません。

他のバージョンと比較した RHEL 8 の機能および制限は、Red Hat ナレッジベースの記事 Red Hat Enterprise Linux テクノロジーの機能と制限 を参照してください。

RHEL のライフサイクルに関する情報は Red Hat Enterprise Linux のライフサイクル を参照してください。

RHEL 8 パッケージのリストは パッケージマニフェスト を参照してください。

RHEL 8 の詳細な使用方法は、RHEL 8 製品ドキュメント を参照してください。

RHEL 7 から RHEL 8 へのインプレースアップグレードの方法は RHEL 7 から RHEL 8 へのアップグレード を参照してください。

RHEL 6 から RHEL 7 への主な変更点は RHEL 7 移行計画ガイド を参照してください。

第2章 アーキテクチャー

Red Hat Enterprise Linux 8 ではカーネルバージョン 4.18 が使用されており、以下のアーキテクチャーに対応します。

  • AMD および Intel 64 ビットのアーキテクチャー
  • 64 ビット ARM アーキテクチャー
  • IBM Power Systems (リトルエンディアン)
  • 64 ビット IBM Z

各アーキテクチャーに適切なサブスクリプションを購入してください。利用可能なサブスクリプションのリストは、カスタマーポータルの サブスクリプションの使用状況 を参照してください。

RHEL 8 では、標準の kernel パッケージですべてのアーキテクチャーに対応しています。kernel-alt パッケージは必要ありません。

第3章 リポジトリー

Red Hat Enterprise Linux 8 は、2 つのメインリポジトリーで配布されています。

  • BaseOS
  • AppStream

基本的な RHEL インストールにはどちらのリポジトリーも必要で、すべての RHEL サブスクリプションで利用できます。

BaseOS リポジトリーのコンテンツは、すべてのインストールのベースとなる、基本的な OS 機能のコアセットを提供します。このコンテンツは RPM 形式で提供されており、RHEL の以前のリリースと同様のサポート条件が適用されます。BaseOS から配布されるパッケージのリストは パッケージマニフェスト を参照してください。

アプリケーションストリーム (AppStream) リポジトリーのコンテンツには、さまざまなワークロードとユースケースに対応するために、ユーザー空間アプリケーション、ランタイム言語、およびデータベースが含まれています。Application Streams は、モジュール と呼ばれる RPM 形式への拡張、または Software Collections として通常の RPM 形式で利用できます。AppStream で利用可能なパッケージのリストは、パッケージマニフェスト を参照してください。

また、CodeReady Linux Builder リポジトリーは、すべての RHEL サブスクリプションで利用できます。このリポジトリーは、開発者向けの追加パッケージを提供します。CodeReady Linux Builder リポジトリーに含まれるパッケージには対応しません。

RHEL 8 リポジトリーの詳細は パッケージマニフェスト を参照してください。

第4章 アプリケーションストリーム

Red Hat Enterprise Linux 8 では、アプリケーションストリームの概念が導入されました。ユーザー空間コンポーネントのバージョンが複数配信され、オペレーティングシステムのコアパッケージよりも頻繁に更新されるようになりました。これによりプラットフォームや特定のデプロイメントの基本的な安定性に影響を及ぼすことなく、Red Hat Enterprise Linux をカスタマイズする柔軟性が向上します。

アプリケーションストリームとして使用できるコンポーネントは、モジュールまたは RPM パッケージとしてパッケージ化され、RHEL 8 の AppStream リポジトリーを介して配信されます。各 Application Stream コンポーネントには、RHEL 8 と同じか、より短いライフサイクルが指定されています。詳細は Red Hat Enterprise Linux のライフサイクル を参照してください。

モジュールは、論理ユニット (アプリケーション、言語スタック、データベース、またはツールセット) を表すパッケージの集まりです。これらのパッケージはまとめてビルドされ、テストされ、そしてリリースされます。

モジュールストリームは、アプリケーションストリームコンポーネントのバージョンを表します。たとえば、postgresql:10 のデフォルトのストリーム以外に、postgresql モジュールでは、PostgreSQL データベースサーバーの複数のストリーム (バージョン) を利用できます。システムにインストールできるモジュールストリームは 1 つだけです。複数のコンテナーで異なるバージョンを使用できます。

詳細なモジュールコマンドは ユーザー空間コンポーネントのインストール、管理、および削除 を参照してください。AppStream で利用可能なモジュールのリストは、Package manifest を参照してください。

第5章 インストーラーおよびイメージの作成

5.1. アドオン

5.1.1. OSCAP

Open Security Content Automation Protocol (OSCAP) アドオンは、RHEL 8 ではデフォルトで有効になっています。

5.1.2. Kdump

Kdump アドオンは、インストール時にカーネルクラッシュダンプの設定に対応します。このアドオンには、Kickstart (%addon com_redhat_kdump コマンドおよびそのオプション) のフルサポートがあり、グラフィカルおよびテキストベースのユーザーインターフェイスの追加ウィンドウとして完全に統合されます。

5.2. インストーラーネットワーキング

Red Hat Enterprise Linux 8 では、ユーザー定義の接頭辞に基づいてネットワークインターフェイス名を生成する新しいネットワークデバイスの命名スキームが利用できます。net.ifnames.prefix 起動オプションを使用すると、インストールプログラムおよびインストール済みシステムでデバイスの命名スキームが使用できます。

5.3. インストールイメージおよびパッケージ

5.3.1. システムを登録し、RHEL サブスクリプションを割り当て、Red Hat CDN からインストールする機能

Red Hat Enterprise Linux 8.2 では、パッケージのインストール前に、システムを登録し、RHEL サブスクリプションを割り当て、Red Hat コンテンツ配信ネットワーク (CDN) からインストールすることができます。インタラクティブな GUI インストールと、自動キックスタートインストールが、この機能をサポートしています。詳細は RHEL 8.2 リリースノート を参照してください。

5.3.2. インストール時にシステムを Red Hat Insights に登録する機能

Red Hat Insights は、プラットフォームとアプリケーションのデータ収集および分析、リスクの予測、アクションの推奨、コストの追跡を行うマネージドサービスです。Insights は、システムの可用性 (サービス停止の可能性を含む)、セキュリティー (例: システムの新しい CVE 検出)、およびビジネス (例: 浪費) など、いくつかの運用領域に関連する警告または最適化についてアラートを発行します。Insights は Red Hat サブスクリプションの一部として含まれており、Red Hat Hybrid Cloud Console からアクセスできます。Red Hat Insights のドキュメント も参照してください。

Red Hat Enterprise Linux 8.2 以降、インストール時にシステムを Red Hat Insights に登録できます。インタラクティブな GUI インストールと、自動キックスタートインストールが、この機能をサポートしています。詳細は RHEL 8.2 リリースノート を参照してください。

5.3.3. 統一された ISO

Red Hat Enterprise Linux 8 では、統合 ISO が、インストールソースリポジトリー BaseOS および AppStream を読み込みます。この機能は、インストール時に読み込まれる最初のベースリポジトリーに対して有効です。たとえば、リポジトリーが設定されず、グラフィカルユーザーインターフェイス (GUI) のベースリポジトリーとして統合 ISO がある場合、または統合 ISO を指定する inst.repo= オプションを使用してインストールを起動した場合です。

したがって、AppStream リポジトリーは、Installation Source GUI ウィンドウの Additional Repositories セクションで有効になります。AppStream リポジトリーを削除したり、その設定を変更することはできませんが、インストールソース で無効にできます。別のベースリポジトリーを使用してインストールを起動し、そのあとで統合 ISO に変更した場合はこの機能が無効になります。これを行うと、ベースリポジトリーが置き換えられます。ただし、AppStream リポジトリーは置き換えられず、元のファイルを指定します。

5.3.4. Stage2 イメージ

Red Hat Enterprise Linux 8 では、インストールが失敗しないように、ネットワーク上の stage2、またはキックスタートファイルの場所を指定できます。この更新により、ネットワーク上の stage2、およびキックスタートファイルを使用して、inst.stage2 および inst.ks の起動オプションを複数指定できるようになりました。これにより、stage2 またはキックスタートファイルが置いてあるサーバーにアクセスできず、必要なファイルが使用できないためにインストールに失敗する状況を回避します。

この新しい更新により、複数の場所が指定されている場合にインストールに失敗するのを回避できます。定義するすべての場所が URL (主に HTTPHTTPS、または FTP) の場合は、必要なファイルが正常にフェッチされるまで、順番に試行されます。URL 以外の場所がある場合は、最後に指定した場所が試行されます。残りの場所は無視されます。

5.3.5. inst.addrepo パラメーター

以前は、カーネル起動パラメーターからベースリポジトリーだけを指定できました。Red Hat Enterprise Linux 8 では、新しいカーネルパラメーター inst.addrepo=<name>,<url> により、インストール時に追加リポジトリーを指定できるようになりました。このパラメーターでは、リポジトリーの名前と、リポジトリーを指定する URL の 2 つの値が必要になります。詳細は inst-addrepo usage を参照してください。

5.3.6. 拡張 ISO からのインストール

Red Hat Enterprise Linux 8 は、ローカルのハードドライブで、リポジトリーからのインストールをサポートします。以前は、ハードドライブからのインストール方法といえば、ISO イメージをインストールソースとして使用するだけでした。ただし、ファイルシステムによっては、Red Hat Enterprise Linux 8 ISO イメージが大きすぎる場合があります。たとえば、FAT32 ファイルシステムは、4 GiB 以上のファイルを保存できません。Red Hat Enterprise Linux 8 では、ローカルハードドライブのリポジトリーからインストールできます。ISO イメージの代わりにディレクトリーのみを指定する必要があります。たとえば、inst.repo=hd:<device>:<path to the repository> です。

Red Hat Enterprise Linux 8 の BaseOS リポジトリーおよび AppStream リポジトリーは、本ガイドのリポジトリーセクションを参照してください。

5.4. インストーラーのグラフィカルユーザーインターフェイス

5.4.1. インストール概要画面

Red Hat Enterprise Linux 8 グラフィカルインストールのインストール概要ウィンドウは、新たに 3 列のレイアウトになり、グラフィカルインストール設定で改善された統合が提供されるようになりました。

5.5. システムの目的が RHEL に新登場

5.5.1. システムの目的がグラフィカルインストールに対応

Red Hat Enterprise Linux インストールプログラムは、システムの目的の情報を Subscription Manager に提供していませんでした。Red Hat Enterprise Linux 8 では、グラフィカルインストール時のシステムの目的ウィンドウ、またはキックスタートの設定ファイルの syspurpose コマンドを使用して、システムの目的 を設定できます。システムの目的が記録されると、エンタイトルメントサーバーが、システムの使用目的を満たすサブスクリプションを自動添付するのに役に立つ情報を受け取ります。

5.5.2. Pykickstart におけるシステムの目的のサポート

以前は、pykickstart ライブラリーで、Subscription Manager にシステムの目的の情報が提供されていました。Red Hat Enterprise Linux 8 では、pykickstart が、新しい syspurpose コマンドを解析し、完全または一部自動化しているインストール時に、システムの使用目的を記録します。その後、その情報はインストールプログラムに渡され、新たにインストールしたシステムに保存され、システムのサブスクライブ時に Subscription Manager で利用できるようになります。

5.6. インストーラーモジュールサポート

5.6.1. キックスタートを使用したモジュールのインストール

Red Hat Enterprise Linux 8 では、インストールプログラムが、モジュール機能をすべて処理するようになりました。キックスタートスクリプトは、モジュールとストリームの組み合わせを有効にし、モジュールプロファイルをインストールし、モジュールパッケージをインストールします。

5.7. キックスタートの変更

以下のセクションでは、Red Hat Enterprise Linux 8 におけるキックスタートコマンドおよびオプションの変更を説明します。

RHEL 8 で auth または authconfig が非推奨に

authconfig ツールおよびパッケージが削除されたため、Red Hat Enterprise Linux 8 では、キックスタートコマンドの auth または authconfig が非推奨になっています。

コマンドラインで実行した authconfig コマンドと同様、キックスタートスクリプトの authconfig コマンドが authselect-compat ツールを使用して、新しい authselect ツールを実行するようになりました。この互換性層や、その既知の問題の説明は、authselect-migration(7) の man ページを参照してください。このインストールプログラムは、非推奨のコマンドの使用を自動的に検出し、互換性層を提供する authselect-compat パッケージをインストールします。

キックスタートで Btrfs がサポート対象外に

Red Hat Enterprise Linux 8 は、Btrfs ファイルシステムに対応していません。そのため、グラフィカルユーザーインターフェイス (GUI) およびキックスタートコマンドが Btrfs に対応しなくなりました。

以前の RHEL リリースのキックスタートファイルの使用

以前の RHEL リリースのキックスタートファイルを使用する場合は、Red Hat Enterprise Linux 8 BaseOS リポジトリーおよび AppStream リポジトリーの詳細について、Considerations in adopting RHEL 8Repositories のセクションを参照してください。

5.7.1. キックスタートで非推奨になったコマンドおよびオプション

次のキックスタートのコマンドとオプションが、Red Hat Enterprise Linux 8 で非推奨になりました。

特定のオプションだけがリスト表示されている場合は、基本コマンドおよびその他のオプションは引き続き利用でき、非推奨ではありません。

  • auth または authconfig (代わりに authselect を使用)
  • device
  • deviceprobe
  • dmraid
  • install (サブコマンドまたはメソッドをコマンドとして直接使用)
  • multipath
  • bootloader --upgrade
  • ignoredisk --interactive
  • partition --active
  • reboot --kexec
  • syspurpose - 代わりに subscription-manager syspurpose を使用してください

auth コマンドまたは authconfig コマンドを除き、キックスタートファイルのコマンドを使用すると、ログに警告が出力されます。

inst.ksstrict ブートオプションで、auth コマンドまたは authconfig コマンドを除いた非推奨のコマンドの警告をエラーに変えることができます。

5.7.2. キックスタートから削除されたコマンドおよびオプション

次のキックスタートのコマンドとオプションが、Red Hat Enterprise Linux 8 から完全に削除されました。キックスタートファイルでこれを使用すると、エラーが発生します。

  • device
  • deviceprobe
  • dmraid
  • install (サブコマンドまたはメソッドをコマンドとして直接使用)
  • multipath
  • bootloader --upgrade
  • ignoredisk --interactive
  • partition --active
  • harddrive --biospart
  • upgrade (このコマンドはすでに非推奨になっています)
  • btrfs
  • part/partition btrfs
  • part --fstype btrfs または partition --fstype btrfs
  • logvol --fstype btrfs
  • raid --fstype btrfs
  • unsupported_hardware

特定のオプションおよび値だけが表示されている場合は、基本コマンドおよびその他のオプションは引き続き利用でき、削除されません。

5.8. イメージ作成

5.8.1. Image Builder でカスタムのシステムイメージ作成

RHEL イメージのカスタマイズには、Image Builder ツールを使用できます。Red Hat Enterprise Linux 8.3 以降、Image Builder はシステムサービスの osbuild-composer パッケージとして実行されます。

Image Builder を使用すると、追加パッケージを含むカスタムのシステムイメージを作成できます。Image Builder 機能は、以下から使用できます。

  • Web コンソールのグラフィカルユーザーインターフェイス
  • composer-cli ツールのコマンドラインインターフェイス

Image Builder の出力の形式には、以下のようなものがあります。

  • tar アーカイブ
  • 仮想マシンまたは OpenStack で直接使用する qcow2 ファイル
  • QEMU QCOW2 イメージ
  • Azure、VMWare、および AWS のクラウドイメージ

Image Builder の詳細は RHEL システムイメージのカスタマイズ を参照してください。

第6章 ソフトウェア管理

6.1. YUM スタックへの主な変更

6.1.1. YUM/DNF を使用したパッケージ管理

Red Hat Enterprise Linux 8 へのソフトウェアのインストールは、DNF テクノロジーをベースとした YUM ツールにより行われます (YUM v4)。以前のメジャーバージョンの RHEL との一貫性を保つために、yum の用語の使用が意図的に準拠しています。ただし、yum の代わりに dnf を呼び出すと、yum は互換性のために dnf のエイリアスであるため、コマンドが期待どおりに動作します。

詳細は、ユーザー空間コンポーネントのインストール、管理、および削除 を参照してください。

6.1.2. YUM v3 と比較した YUM v4 の利点

YUM v4 には、RHEL 7 で使用されていた、以前のバージョンの YUM v3 に対して、以下の利点が追加されました。

  • パフォーマンスの向上
  • モジューラーコンテンツへの対応
  • ツーリングと統合するために適切に設計され、安定した API

新しい YUM v4 ツールと、以前のバージョンである RHEL 7 の YUM v3 ツールの相違点の詳細は、Changes in DNF CLI compared to YUM を参照してください。

6.1.3. YUM v4 を使用する方法

ソフトウェアのインストール

コマンドラインから使用したり、設定ファイルを編集または作成する場合、YUM v4YUM v3 と互換性があります。

ソフトウェアをインストールするには、RHEL 7 と同じ yum コマンドとオプションを使用できます。

ソフトウェアパッケージのインストール に関する詳細情報を参照してください。

プラグインの可用性

以前の YUM v3 プラグインは、新しいバージョンの YUM v4 と互換性がありません。選択した yum プラグインおよびユーティリティーは、新しい DNF バックエンドに移植されており、RHEL 7 と同じ名前でインストールできます。このパッケージは互換性を持ったシンボリックリンクを提供するため、バイナリー、設定ファイル、ディレクトリーは通常の場所で確認できます。

プラグインが含まれなくなったり、置き換えがユーザービリティーを満たさなくなった場合は、カスタマーポータルでサポートケースを作成および管理する に記載されているように、Red Hat サポートにご連絡いただき、機能強化を要求してください。

詳細は Plugin Interface を参照してください。

API の可用性

YUM v3 が提供する以前の Python API は利用できなくなりました。YUM v4 (DNF Python API) が提供する安定し、完全に対応する新しい API に、使用しているプラグインおよびスクリプトを移行することが推奨されます。新しい DNF Python API のドキュメントは、DNF API Reference により提供されます。

Libdnf および Hawkey API (C および Python の両方) は不安定であると見なされているため、RHEL 8 のライフサイクル期間中に変更する可能性があります。

6.1.4. YUM 設定ファイルオプションの可用性

RHEL 7 と RHEL 8 の間で、/etc/yum.conf ファイルおよび /etc/yum.repos.d/*.repo ファイルの設定ファイルオプションに追加された変更点を簡単に紹介します。

表6.1 /etc/yum.conf ファイルの設定ファイルオプションの変更点
RHEL 7 オプションRHEL 8 ステータス

alwaysprompt

削除

assumeno

利用可能

assumeyes

利用可能

autocheck_running_kernel

利用可能

autosavets

削除

bandwidth

利用可能

bugtracker_url

利用可能

cachedir

利用可能

check_config_file_age

利用可能

clean_requirements_on_remove

利用可能

color

利用可能

color_list_available_downgrade

利用可能

color_list_available_install

利用可能

color_list_available_reinstall

利用可能

color_list_available_running_kernel

削除

color_list_available_upgrade

利用可能

color_list_installed_extra

利用可能

color_list_installed_newer

利用可能

color_list_installed_older

利用可能

color_list_installed_reinstall

利用可能

color_list_installed_running_kernel

削除

color_search_match

利用可能

color_update_installed

利用可能

color_update_local

利用可能

color_update_remote

利用可能

commands

削除

config_file_path

利用可能

debuglevel

利用可能

deltarpm

利用可能

deltarpm_metadata_percentage

削除

deltarpm_percentage

利用可能

depsolve_loop_limit

削除

disable_excludes

利用可能

diskspacecheck

利用可能

distroverpkg

削除

enable_group_conditionals

削除

errorlevel

利用可能

exactarchlist

削除

exclude

利用可能

exit_on_lock

利用可能

fssnap_abort_on_errors

削除

fssnap_automatic_keep

削除

fssnap_automatic_post

削除

fssnap_automatic_pre

削除

fssnap_devices

削除

fssnap_percentage

削除

ftp_disable_epsv

削除

gpgcheck

利用可能

group_command

削除

group_package_types

利用可能

groupremove_leaf_only

削除

history_list_view

利用可能

history_record

利用可能

history_record_packages

利用可能

http_caching

削除

include

削除

installonly_limit

利用可能

installonlypkgs

利用可能

installrootkeep

削除

ip_resolve

利用可能

keepalive

削除

keepcache

利用可能

kernelpkgnames

削除

loadts_ignoremissing

削除

loadts_ignorenewrpm

削除

loadts_ignorerpm

削除

localpkg_gpgcheck

利用可能

logfile

削除

max_connections

削除

mddownloadpolicy

削除

mdpolicy

削除

metadata_expire

利用可能

metadata_expire_filter

削除

minrate

利用可能

mirrorlist_expire

削除

multilib_policy

利用可能

obsoletes

利用可能

override_install_langs

削除

overwrite_groups

削除

password

利用可能

payload_gpgcheck

削除

persistdir

利用可能

pluginconfpath

利用可能

pluginpath

利用可能

plugins

利用可能

protected_multilib

削除

protected_packages

利用可能

proxy

利用可能

proxy_password

利用可能

proxy_username

利用可能

query_install_excludes

削除

recent

利用可能

recheck_installed_requires

削除

remove_leaf_only

削除

repo_gpgcheck

利用可能

repopkgsremove_leaf_only

削除

reposdir

利用可能

reset_nice

利用可能

retries

利用可能

rpmverbosity

利用可能

shell_exit_status

削除

showdupesfromrepos

利用可能

skip_broken

利用可能

skip_missing_names_on_install

削除

skip_missing_names_on_update

削除

ssl_check_cert_permissions

削除

sslcacert

利用可能

sslclientcert

利用可能

sslclientkey

利用可能

sslverify

利用可能

syslog_device

削除

syslog_facility

削除

syslog_ident

削除

throttle

利用可能

timeout

利用可能

tolerant

削除

tsflags

利用可能

ui_repoid_vars

削除

upgrade_group_objects_upgrade

利用可能

upgrade_requirements_on_install

削除

usercache

削除

username

利用可能

usr_w_check

削除

表6.2 /etc/yum.repos.d/*.repo ファイルの設定ファイルオプションの変更点
RHEL 7 オプションRHEL 8 ステータス

async

削除

bandwidth

利用可能

baseurl

利用可能

compare_providers_priority

削除

cost

利用可能

deltarpm_metadata_percentage

削除

deltarpm_percentage

利用可能

enabled

利用可能

enablegroups

利用可能

exclude

利用可能

failovermethod

削除

ftp_disable_epsv

削除

gpgcakey

削除

gpgcheck

利用可能

gpgkey

利用可能

http_caching

削除

includepkgs

利用可能

ip_resolve

利用可能

keepalive

削除

metadata_expire

利用可能

metadata_expire_filter

削除

metalink

利用可能

mirrorlist

利用可能

mirrorlist_expire

削除

name

利用可能

password

利用可能

proxy

利用可能

proxy_password

利用可能

proxy_username

利用可能

repo_gpgcheck

利用可能

repositoryid

削除

retries

利用可能

skip_if_unavailable

利用可能

ssl_check_cert_permissions

削除

sslcacert

利用可能

sslclientcert

利用可能

sslclientkey

利用可能

sslverify

利用可能

throttle

利用可能

timeout

利用可能

ui_repoid_vars

削除

username

利用可能

6.1.5. YUM v4 機能の動作が異なる

YUM v3 機能の一部の挙動が、YUM v4 と異なる可能性があります。この変更がワークフローに影響を及ぼす場合は、カスタマーポータルでサポートケースを作成および管理する に従って、Red Hat サポートケースを作成してください。

6.1.5.1. yum list がエントリーを重複して表示

yum list コマンドを使用してパッケージのリストを表示すると、エントリーが重複して表示される可能性があります。エントリーは、リポジトリー単位で表示されるため、バッケージ名とバージョンが同じものが複数のリポジトリーに存在すると、そのリポジトリーがすべて表示されます。

これは意図的であり、必要に応じて、このようなパッケージを区別できます。

たとえば、repo1 および repo2 で package-1.2 が利用可能な場合、YUM v4 は両方のインスタンスを出力します。

[…​]
package-1.2    repo1
package-1.2    repo2
[…​]

一方、以前のバージョンの YUM v3 コマンドではこのような重複は除外されるため、インスタンスは 1 つしか表示されません。

[…​]
package-1.2    repo1
[…​]

6.1.6. トランザクション履歴のログファイルの変更

RHEL 7 と RHEL 8 の間でトランザクション履歴ログファイルに追加された変更点を簡単に紹介します。

RHEL 7 では、/var/log/yum.log ファイルには以下が保存されます。

  • ソフトウェアパッケージのインストール、更新、および削除のレジストリー
  • yum および PackageKit からのトランザクション

RHEL 8 では、/var/log/yum.log ファイルに直接相当するものはありません。PackageKitmicrodnf などのトランザクションに関する情報を表示するには、yum history コマンドを使用します。

または、/var/log/dnf.rpm.log ファイルを検索することもできますが、このログファイルに PackageKit および microdnf からのトランザクションが含まれず、保存された情報を定期的に削除するログローテーションがあります。

6.1.7. deltarpm 機能がサポート対象外に

RHEL 8 では、delta rpms の使用をサポートしなくなりました。delta rpms を利用するには、利用できなくなった deltarpm パッケージをインストールする必要があります。deltarpm の代わりである drpm には、同じ機能はありません。したがって、RHEL 8 のコンテンツは deltarpm 形式で配信されません。この機能は、今後の RHEL リリースで完全に削除されることに注意してください。

6.2. RPM の主な機能および変更

Red Hat Enterprise Linux 8 (RHEL) には RPM 4.14 が同梱されています。このバージョンでは、RHEL 7 で利用できた RPM 4.11 に対する機能拡張が数多く追加されました。

主な変更には以下のものがあります。

  • 複数の debuginfo パッケージを同時にインストールできます。
  • 弱い依存関係への対応。
  • 豊富なブール型依存関係への対応。
  • 4 GB を超えるファイルのパッケージ化への対応。
  • ファイルトリガーへの対応。
  • 新しい --nopretrans スイッチおよび --noposttrans スイッチはそれぞれ、%pretrans スクリプトレットおよび %posttrans スクリプトレットの実行を無効にします。
  • 新しい --noplugins スイッチは、すべての RPM プラグインの読み込みおよび実行を無効にします。
  • システムロギングプロトコル (syslog) により RPM アクティビティーをロギングする新規の syslog プラグイン。
  • rpmbuild コマンドは、ソースパッケージからすべてのビルド手順を直接実行できるようになりました。

    これは、-r[abpcils] オプションのいずれかと共に rpmbuild を使用すると可能になります。

  • 再インストールモードをサポートします。

    これは、新しい --reinstall オプションにより保証されます。インストールされているパッケージを再インストールするには、次の構文を使用します。

    rpm {--reinstall} [install-options] PACKAGE_FILE

    このオプションにより、新しいパッケージが正しくインストールされ、古いパッケージが削除されます。

  • SSD 保存モードのサポート。

    これは、/usr/lib/rpm/macros ファイルで利用可能な新しい %_minimize_writes マクロで保証されます。マクロは、デフォルトで 0 に設定されます。SSD ディスクへの書き込みを最小にするには、%_minimize_writes を 1 に設定します。

  • RPM ペイロードを tar アーカイブに変換する新しい rpm2archive ユーティリティー。

詳細は RHEL 8 の新機能 を参照してください。

以下は、主な変更点です。

  • 厳密なスペックパーサー
  • 非冗長モードで出力を確認する簡易署名
  • 再現可能なビルド (同一パッケージを作成するビルド) のサポートの改善

    • ビルド時間の設定
    • ファイルの mtime (ファイル変更日時) の設定
    • buildhost の設定
  • -p オプションを使用して、アンインストールされた PACKAGE_FILE をクエリーすることは任意になりました。このユースケースでは、rpm コマンドが、-p オプションの有無にかかわらず、同じ結果を返すようになりました。-p オプションが必要な唯一のユースケースは、ファイル名が rpmdb データベース内のいずれの Provides とも一致しないことを確認することです。
  • マクロの追加と廃止事項

    • %makeinstall マクロが非推奨になりました。プログラムをインストールするには、代わりに %make_install マクロを使用します。
  • rpmbuild --sign コマンドが非推奨になりました。

    rpmbuild コマンドで --sign オプションを使用することが非推奨になったことに注意してください。既存のパッケージに署名を追加するには、代わりに rpm --addsign を使用します。

第7章 インフラストラクチャーサービス

7.1. 時間同期

正確な時間を維持することは、さまざまな理由で重要です。Linux システムでは、Network Time Protocol (NTP) プロトコルがユーザー空間で実行しているデーモンにより実装されます。

7.1.1. NTP の実装

RHEL 7 がサポートする NTP プロトコルには、ntp および chrony の 2 種類あります。

RHEL 8 の NTP プロトコルは、chronyd デーモンからしか実装されません。このデーモンは、chrony パッケージで提供されます。

ntp デーモンは利用できなくなりました。RHEL 7 システムで ntp を使用していた場合は chrony への移行 が必要になる場合があります。

chrony が対応していない以前の ntp 機能の代わりとなる機能は、以前サポートされていた設定を chrony で実現する手順 を参照してください。

7.1.2. chrony スイートの概要

chrony は、NTP の実装で、断続的なネットワーク接続、非常に混雑したネットワーク、気温の変化 (通常のコンピュータークロックは、気温の影響を受けやすくなります)、および継続して実行していないシステム、または仮想マシンで実行しているシステムなど、さまざまな条件で活躍します。

chrony を使用すると、以下のことができます。

  • システムクロックを、NTP サーバーと同期する
  • システムクロックを、GPS レシーバーなどの基準クロックと同期する
  • システムクロックを、手動で入力した時間と同期する
  • ネットワーク内の他のコンピューターにタイムサービスを提供する NTPv4(RFC 5905) サーバーまたはピアとして使用

chrony の詳細は chrony スイートの概要 を参照してください。

7.1.2.1. chrony と ntp の相違点

chronyntp の相違点は、以下の資料を参照してください。

7.1.2.1.1. chrony が、うるう秒をデフォルトで修正

RHEL 8 では、デフォルトの chrony 設定ファイル /etc/chrony.conf に、leapsectz ディレクティブが含まれます。

leapsectz ディレクティブにより、chronyd で以下のことができます。

  • システムの tz データベース (tzdata) から、うるう秒に関する情報を取得する
  • システムは、システムクロックの TAI-UTC オフセットを設定して、正確な国際原子時 (TAI) クロック (CLOCK_TAI) を提供する

このディレクティブは、leapsecmode ディレクティブおよび smoothtime ディレクティブで設定している chronyd サーバーなど、leap smear を使用してクライアントからうるう秒を隠すサーバーと互換性がありません。クライアントの chronyd を、そのようなサーバーに同期するように設定している場合は、設定ファイルから leapsectz を削除します。

7.1.3. 関連情報

chrony スイートを使用して NTP を設定する方法の詳細は、時刻同期の設定 を参照してください。

7.2. BIND - DNS の実装

RHEL 8 には、バージョン 9.11 に BIND (Berkeley Internet Name Domain) が含まれています。このバージョンの DNS サーバーには、バージョン 9.10 と比較して、複数の新機能と機能変更が追加されています。

新機能:

  • セカンダリーサーバー Catalog Zones をプロビジョニングする新しい方法が追加されました。
  • Domain Name System Cookies は、named サービスおよび dig ユーティリティーにより送信されるようになりました。
  • Response Rate Limiting 機能は、DNS 増幅攻撃の軽減を支援できます。
  • RPZ の (response-policy zone) のパフォーマンスが改善しました。
  • map と呼ばれる新しいゾーンファイルが追加されています。このフォーマットに保存されるゾーンファイルは、メモリーに直接マッピングされます。これにより、ゾーンが読み込む速度が大幅に改善します。
  • DNS データの検索、および DNS Security Extensions (DNSSEC) 検証を実行する dig のようなセマンティクスを使用する、delv ツール (ドメインエンティティー検索および検証) が追加されています。
  • 新しい mdig コマンドが利用できるようになりました。このコマンドは、クエリーを送り、次のクエリーを送る前に応答を待つ代わりに、パイプラインで複数のクエリーを送って応答を待つ dig コマンドです。
  • 再帰リゾルバーのパフォーマンスを改善する新しい prefetch オプションが追加されました。
  • ビュー間でゾーンデータを共有できる、新しい in-view ゾーンオプションが追加されました。このオプションが追加されると、新しいビューは、メモリーに複数のコピーを保存せずに、同じゾーンを確実に保存できます。
  • ゾーンに最大の TTL を強制する新しい max-zone-ttl オプションが追加されました。高い TTL を含むゾーンを読み込むと、読み込みに失敗します。動的 DNS (DDNS) により高い TTL を設定することは可能ですが、TTL は切り捨てられます。
  • 新しいクォータは、再帰リゾルバーが、サービス拒否攻撃が発生している権威サーバーに送信するクエリーを制限するために追加されました。
  • nslookup ユーティリティーは、デフォルトで IPv6 アドレスと IPv4 アドレスの両方を検索するようになりました。
  • named サービスは、起動する前に、その他のネームサーバープロセスが実行しているかどうかを確認します。
  • 署名付きゾーンを読み込むと、named が、Resource Record Signature (RSIG) の開始時間が将来時にあるかどうかを確認し、存在する場合はすぐに RRSIG を再生成するようになりました。
  • ゾーン転送は、ネットワーク使用量を低減するメッセージ圧縮を改善するために、より小さいサイズのメッセージを使用するようになりました。

機能変更:

  • 静的チャンネルに対するバージョン 3 の XML スキーマでは、高速解析を行うために、HTTP インターフェイスにより、新しい統計および平坦化した XML ツリーが提供されます。古いバージョンの 2 XML スキーマに対応しなくなりました。
  • named サービスは、デフォルトで IPv6 および IPv4 のインターフェイスでリッスンするようになりました。
  • named サービスは、GeoIP データベースをサポートしなくなりました。クエリー送信者の推定位置で定義される Access control lists (ACL) は利用できなくなりました。
  • RHEL 8.2 以降、named サービスは libmaxminddb データ形式で提供される GeoIP2 をサポートします。

7.3. DNS 解決

RHEL 7 では、nslookup ユーティリティーおよび host ユーティリティーが、リストされているネームサーバーからの recursion available フラグなしで、あらゆる応答を許可できるようになりました。RHEL 8 では、nslookuphost は、最後に設定されているネームサーバーでない限り、再帰だけの応答を無視します。最後に設定したネームサーバーでは、recursion available フラグがなくても応答が許可されます。

ただし、最後に設定したネームサーバーが応答しない場合や到達できない場合は、名前解決に失敗します。このような失敗を防ぐためには、以下のいずれかの方法を使用できます。

  • 設定したネームサーバーが、recursion available フラグが設定されている状態で常に応答することを確認します。
  • すべての内部クライアントに再帰を許可します。

必要に応じて、dig ユーティリティーを使用して、再帰が利用可能かどうかを検出することもできます。

7.4. postfix

RHEL 8 のデフォルトでは、postfix は後方互換性に TLS を使用する MD5 フィンガープリントを使用します。ただし、FIPS モードでは MD5 ハッシュ関数を使用できないため、デフォルトの Postfix 設定で TLS が正しく機能しない可能性があります。回避策として、postfix 設定ファイルでハッシュ関数を SHA-256 に変更する必要があります。

詳細は、関連リンク (https://access.redhat.com/articles/5824391) を参照してください。

7.5. 印刷

7.5.2. CUP ログの場所

CUPS は、ログを 3 種類提供します。

  • エラーログ
  • アクセスログ
  • ページログ

RHEL 8 では、RHEL 7 で使用されていた /var/log/cups ディレクトリーの特定ファイルに、ログが保存されなくなりました。代わりに、その他のプログラムのログと一緒に、3 つのすべてのタイプが、systemd-journald のログに中心的に記録されます。

RHEL 8 で CUPS ログを使用する方法の詳細は、systemd ジャーナルの CUPS ログへのアクセス を参照してください。

7.5.3. 関連情報

RHEL 8 で印刷を設定する方法の詳細は、印刷の設定 を参照してください。

7.6. パフォーマンスおよび電源管理のオプション

7.6.1. 推奨される TuneD プロファイルの主な変更点

RHEL 8 では、tuned-adm recommend コマンドにより報告される、推奨される TuneD プロファイルが、次のルールに基づいて選択されるようになりました。

  • (syspurpose show コマンドにより報告される) syspurpose ロールには atomic が含まれ、以下のようになります。

    • TuneD がベアメタルで実行している場合は、atomic-host プロファイルが選択されます。
    • TuneD が仮想マシンで実行している場合は、atomic-guest プロファイルが選択されます。
  • TuneD が仮想マシンで実行している場合は、virtual-guest プロファイルが選択されます。
  • syspurpose ロールに desktop または workstation が含まれ、シャーシタイプ (dmidecode が報告) が NotebookLaptop、または Portable の場合は、balanced プロファイルが選択されます。
  • 上記のどのルールにも一致しない場合は throughput-performance プロファイルが選択されます。

最初に一致したルールが有効になることに注意してください。

7.7. インフラストラクチャーサービスコンポーネントへのその他の変更

特定のインフラストラクチャーサービスコンポーネントに対するその他の主な変更の概要は次のとおりです。

表7.1 インフラストラクチャーサービスコンポーネントへの主な変更
名前変更の種類関連情報

acpid

オプションの変更

-d (debug) には、-f (foreground) が含まれません。

bind

設定オプションの削除

dnssec-lookaside auto は削除されました。 代わりに no を使用してください。

brltty

設定オプションの変更

--message-delay brltty は、--message-timeout に名前が変更になりました。

brltty

設定オプションの削除

-U [--update-interval=] は削除されました。

brltty

設定オプションの変更

Bluetooth デバイスアドレスに、コロン (:) の代わりにハイフン (-) を使用できるようになりました。デバイス修飾子のエイリアス bth: および bluez: がサポートされなくなりました。

cups

機能の削除

アップストリームでは、セキュリティー上の理由から、インターフェイススクリプトのサポートが削除されました。OS またはプロプライエタリーから提供される ppd およびドライバーを使用します。

cups

ディレクティブオプションの削除

/etc/cups/cupsd.conf の AuthType ディレクティブおよび DefaultAuthType ディレクティブから認証タイプ Digest および BasicDigest が削除されました。Basic に移行してください。

cups

ディレクティブオプションの削除

cupsd.conf から Include が削除されました。

cups

ディレクティブオプションの削除

cups-files.conf から、ServerCertificate および ServerKey が削除されました。代わりに Serverkeychain を参照してください。

cups

ディレクティブ が conf ファイル間を移動

SetEnv および PassEnv を、cupsd.conf から cups-files.conf へ移動しました。

cups

ディレクティブ が conf ファイル間を移動

cupsd.conf から cups-files.confPrintcapFormat を移動しました。

cups-filters

デフォルトの設定変更

cups-browsed が検出したリモート印刷キュー名は、プリンターのデバイス ID に基づいており、リモートの印刷キュー名ではありません。

cups-filters

デフォルトの設定変更

IPP プリンターのキューを自動作成する場合は、CreateIPPPrinterQueuesAll に設定する必要があります。

cyrus-imapd

データフォーマットの変更

Cyrus-imapd 3.0.7 のデータ形式が異なります。

dhcp

動作変更

dhclient は、デフォルトでハードウェアアドレスをクライアント識別子として送信します。client-id オプションは設定可能です。詳細は、/etc/dhcp/dhclient.conf ファイルを参照してください。

dhcp

オプションの非互換性

-I オプションが standard-ddns-updates に使用されるようになりました。以前の機能 (dhcp-client-identifier) には、新しい -C オプションを使用します。

dosfstools

動作変更

データ構造がクラスターサイズに合わせて自動的に調整されるようになりました。アライメントを無効にするには、-a オプションを使用します。fsck.fat は、以前は -r オプションで選択する必要がありましたインタラクティブな修復モードにデフォルト設定されています。

finger

機能の削除

 

GeoIP

機能の削除

 

grep

動作変更

grep は、現在のロケールをバイナリーとして誤ってエンコードしたデータを含むファイルを扱います。

grep

動作変更

無効な UTF-8 データを指定した場合に、grep -P がエラーを報告して終了しなくなりました。

grep

動作変更

GREP_OPTIONS 環境変数が使用されると、grep が警告を表示するようになりました。代わりにエイリアスまたはスクリプトを使用してください。

grep

動作変更

grep -P では、エラーをエクスポートし、UTF-8 以外のマルチバイトの文字エンコーディングを使用したロケールで終了します。

grep

動作変更

バイナリーデータを検索する場合は、grep が、非テキストバイトをラインターミネーターとして処理できます。パフォーマンスに大きな影響を及ぼします。

grep

動作変更

grep -z が、バイト\200 をバイナリーデータとして自動的に処理しなくなりました。

grep

動作変更

コンテキストは、-m を使用して除外するように選択した行を、除外しなくなりました。

irssi

動作変更

SSLv2 および SSLv3 がサポート対象外になりました。

lftp

オプションの変更

xfer:log および xfer:log-file が非推奨になりました。log:enabled および log:file コマンドで利用できます。

ntp

機能の削除

ntp は削除されました。代わりに chrony を使用してください。

postfix

設定変更

3.x バージョンには、アップグレード後に後方互換性のデフォルト設定で Postfix プログラムを実行する、互換性のセーフティーネットがあります。

postfix

設定変更

Postfix MySQL データベースクライアントでは、デフォルトの option_group 値が client に変更し、後方互換性のある動作のために、空の値を設定します。

postfix

設定変更

postqueue コマンドが、メッセージの到着時間をすべて UTC に報告することを強制しなくなりました。以前の動作を取得するには、main.cf:import_environmentTZ=UTC を設定します。以下に例を示します。

import_environment = MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ=UTC XAUTHORITY DISPLAY LANG=C.

postfix

設定変更

ECDHE - smtpd_tls_eecdh_gradeauto にデフォルト設定されます。曲線の名前を持つ新しいパラメーター tls_eecdh_auto_curves はネゴシエートできます。

postfix

設定変更

デフォルトの変更 - append_dot_mydomain (以前は yes で、現在は no)、master.cf chroot (以前は y で、現在は n)、smtputf8 (以前は no で、現在は yes)

postfix

設定変更

デフォルトの変更 - relay_domains (以前は $mydestination で、現在は空)。

postfix

設定変更

mynetworks_style のデフォルト値が、subnet から host へ変更になりました。

powertop

オプションの削除

-d は削除されました。

powertop

オプションの変更

-h は、--html のエイリアスではなくなりました。--help のエイリアスになりました。

powertop

オプションの削除

-u は削除されました。

quagga

機能の削除

 

sendmail

設定変更

sendmail は、圧縮していない IPv6 アドレスをデフォルトで使用します。これにより、より詳細に一致するゼロサブネットを許可します。設定データは同じ形式を使用する必要があるため、8.15 を使用する前に、IPv6:[0-9a-fA-F:]*::IPv6:: などのパターンを更新してください。

spamassasin

コマンドラインオプションの削除

spamd から --ssl-version が削除されました。

spamassasin

コマンドラインオプションの変更

spamc では、コマンドラインオプション -S/--ssl を使用して SSL/TLS バージョンを指定することはできなくなりました。このオプションは、TLS を有効にする引数なしでのみ使用できるようになりました。

spamassasin

サポートされる SSL バージョンへの変更点

spamc および spamd では、SSLv3 がサポートされなくなりました。

spamassasin

機能の削除

sa-update では、フィルタリングルールの SHA1 検証がサポートされなくなり、代わりに SHA256/SHA512 検証が使用されるようになりました。

vim

デフォルトの設定変更

vim は、~/.vimrc ファイルが利用できない場合に default.vim スクリプトを実行します。

vim

デフォルトの設定変更

vim が、端末からの括弧付きペーストをサポートします。以前の動作のために、vimrc に set t_BE=を追加します。

vsftpd

デフォルトの設定変更

anonymous_enable が無効になりました。

vsftpd

デフォルトの設定変更

strict_ssl_read_eof はデフォルトで YES になります。

vsftpd

機能の削除

tcp_wrappers がサポート対象外になりました。

vsftpd

デフォルトの設定変更

TLSv1 および TLSv1.1 がデフォルトで無効になりました。

wireshark

Python バインディングの削除

dissector は、Python で記述されなくなりました。代わりに C を使用してください。

wireshark

オプションの削除

非同期の DNS 名前解決の -N オプションのサブオプション -C が削除されています。

wireshark

出力変更

-H オプションを使用すると、出力には SHA1、RIPEMD160、および MD5 のハッシュが表示されなくなりました。表示されるハッシュは、SHA256、RIPEMD160、および SHA1 です。

wvdial

機能の削除

 

第8章 セキュリティー

8.1. コア暗号化コンポーネントの変更点

8.1.1. システム全体の暗号化ポリシーがデフォルトで適用

暗号ポリシーは、Red Hat Enterprise Linux 8 でコア暗号化サブシステムを設定するコンポーネントで、TLS、IPsec、DNSSEC、Kerbero の各プロトコルと、OpenSSH スイートに対応します。これにより、管理者が update-crypto-policies コマンドで選択できる小規模セットのポリシーを提供します。

デフォルト のシステム全体の暗号化ポリシーは、現在の脅威モデルに安全な設定を提供します。TLS プロトコル 1.2 と 1.3、IKEv2 プロトコル、および SSH2 プロトコルが使用できます。RSA 鍵と Diffie-Hellman パラメーターの長さが 2047 ビット以上であれば許可されます。

詳細は、Red Hat ブログの記事 Consistent security by crypto policies in Red Hat Enterprise Linux 8 と、man ページの update-crypto-policies(8) を参照してください。

8.1.2. 安全ではない暗号スイートおよびプロトコルを削除した、強力な暗号デフォルト

以下のリストには、RHEL 8 のコア暗号化ライブラリーから削除された暗号スイートおよびプロトコルが含まれます。このアプリケーションはソースには存在しないか、ビルド時にサポートを無効にしているため、アプリケーションは使用できません。

  • DES (RHEL 7 以降)
  • すべてのエクスポートグレードの暗号化スイート (RHEL 7 以降)
  • 署名内の MD5 (RHEL 7 以降)
  • SSLv2 (RHEL 7 以降)
  • SSLv3 (RHEL 8 以降)
  • 224 ビットより小さいすべての ECC 曲線 (RHEL 6 以降)
  • すべてのバイナリーフィールドの ECC 曲線 (RHEL 6 以降)

8.1.3. すべてのポリシーレベルで無効になっている暗号スイートおよびプロトコル

以下の暗号スイートおよびプロトコルは、すべての暗号化ポリシーレベルで無効になっています。これは、各アプリケーションで明示的に有効にした場合に限り利用可能にできます。

  • パラメーターが 1024 ビットより小さい DH
  • 鍵のサイズが 1024 ビットより小さい RSA
  • Camellia
  • ARIA
  • SEED
  • IDEA
  • 完全性のみの暗号スイート
  • SHA-384 HMAC を使用した TLS CBC モード暗号化スイート
  • AES-CCM8
  • TLS 1.3 と互換性がないすべての ECC 曲線 (secp256k1 を含む)
  • IKEv1 (RHEL 8 以降)

8.1.4. FIPS モードへのシステムの切り替え

システム全体の暗号化ポリシーには、連邦情報処理規格 (FIPS) 公開文書 140-2 の要件に準拠した暗号化モジュールのセルフチェックを有効にするポリシーレベルが含まれます。FIPS モードを有効または無効にする fips-mode-setup ツールは、内部的に FIPS のシステム全体の暗号化ポリシーレベルを使用します。

RHEL 8 の FIPS モードにシステムを切り替えるには、以下のコマンドを実行してシステムを再起動します。

# fips-mode-setup --enable

詳細は、man ページの fips-mode-setup(8) を参照してください。

8.1.5. TLS 1.0 および TLS 1.1 が非推奨に

TLS 1.0 プロトコルおよび TLS 1.1 プロトコルは、システム全体の暗号化ポリシーレベル DEFAULT で無効になります。たとえば、Firefox Web ブラウザーのビデオ会議アプリケーションで、非推奨のプロトコルを使用する必要がある場合は、システム全体の暗号化ポリシーを LEGACY レベルに変更してください。

# update-crypto-policies --set LEGACY

詳細は、Red Hat カスタマーポータルのナレッジベース Strong crypto defaults in RHEL 8 and deprecation of weak crypto algorithms および man ページの update-crypto-policies(8) を参照してください。

8.1.6. 暗号化ライブラリーにおける TLS 1.3 への対応

今回の更新で、主要なすべてのバックエンド暗号ライブラリーで、TLS (Transport Layer Security) 1.3 が有効になっています。これにより、オペレーティングシステムの通信層でのレイテンシーを短縮し、RSA-PSS、X25519 などの新しいアルゴリズムを使用して、アプリケーションのプライバシーとセキュリティーを強化します。

8.1.7. RHEL 8 で DSA が非推奨に

デジタル署名アルゴリズム (DSA) は、Red Hat Enterprise Linux 8 では非推奨であると考えられています。DSA キーに依存する認証メカニズムはデフォルト設定では機能しません。OpenSSH クライアントは、LEGACY のシステム全体の暗号化ポリシーレベルでも DSA ホストキーを許可しません。

8.1.8. NSSSSL2 Client Hello が非推奨に

TLS (Transport Layer Security) プロトコルバージョン 1.2 以前は、SSL (Secure Sockets Layer) プロトコルバージョン 2 と後方互換性がある形式の Client Hello メッセージを使用してネゴシエーションを開始できます。NSS (Network Security Services) ライブラリーでのこの機能への対応は非推奨となっており、デフォルトで無効になっています。

この機能への対応が必要なアプリケーションを有効にするには、新しい API の SSL_ENABLE_V2_COMPATIBLE_HELLO を使用する必要があります。この機能への対応は、Red Hat Enterprise Linux 8 の将来のリリースから完全に削除される可能性があります。

8.1.9. NSS がデフォルトで SQL を使用

Network Security Services (NSS) ライブラリーは、デフォルトで信頼データベースに SQL ファイル形式を使用するようになりました。以前のリリースでデフォルトのデータベース形式として使用されていた DBM ファイル形式は、マルチプロセスによる同時アクセスに対応せず、アップストリームでは非推奨となっていました。したがって、NSS 信頼データベースを使用するアプリケーションが鍵や証明書を保存し、取消し情報がデフォルトで SQL 形式のデータベースを作成します。レガシーの DBM 形式でデータベースを作成しようとする試みは失敗します。既存の DBM データベースを読み取り専用モードで開くと、自動的に SQL 形式に変換されます。Red Hat Enterprise Linux 6 以降、NSS では SQL ファイル形式に対応します。

8.2. SSH

8.2.1. OpenSSH がバージョン 7.8p1 にリベース

openssh パッケージが、アップストリームバージョン 7.8p1 にアップグレードされました。以下は、主な変更点です。

  • SSH version 1 プロトコルに対応しなくなりました。
  • hmac-ripemd160 メッセージ認証コードに対応しなくなりました。
  • RC4 (arcfour) 暗号に対応しなくなりました。
  • Blowfish 暗号に対応しなくなりました。
  • CAST 暗号に対応しなくなりました。
  • UseDNS オプションのデフォルト値が no に変更になりました。
  • DSA 公開鍵アルゴリズムがデフォルトで無効になりました。
  • Diffie-Hellman パラメーターの最小モジュールサイズが 2048 ビットに変更になりました。
  • ExposeAuthInfo 設定オプションのセマンティクスが変更になりました。
  • UsePrivilegeSeparation=sandbox オプションが必須になったため、無効にできなくなりました。
  • 許可される最小の RSA 鍵のサイズが 1024 ビットに設定されました。

8.2.2. libssh が SSH をコア暗号化コンポーネントとして実装

この変更により、Red Hat Enterprise Linux 8 のコア暗号化コンポーネントとして libssh が導入されました。libssh ライブラリーは、Secure SHell (SSH) プロトコルを実装しています。

8.2.3. RHEL 8 で libssh2 が利用できない

非推奨の libssh2 ライブラリーは、楕円曲線、Generic Security Service Application Program Interface (GSSAPI) などの機能がなく、RHEL 8 では削除され、libssh が使用されます。

8.3. Rsyslog

8.3.1. デフォルトの rsyslog 設定ファイルの形式がレガシーではない

rsyslog パッケージの設定ファイルが、デフォルトで非レガシー形式を使用するようになりました。レガシー形式も使用できますが、現在の設定ステートメントとレガシーの設定ステートメントを混在する場合は制約がいくつかあります。以前の RHEL リリースから引き継がれた設定は修正する必要があります。詳細は、man ページの rsyslog.conf(5) を参照してください。

8.3.2. imjournal オプションと、最小の journald を使用してシステムログを設定

journald がそのファイルをローテートしたときに重複レコードが作成されないようにするために、imjournal オプションが追加されています。このオプションを使用するとパフォーマンスに影響を及ぼします。

ナレッジベースの記事 Configuring system logging without journald に記載されるように、システムに rsyslog を設定すると、パフォーマンスが向上します。

8.3.3. デフォルトのロギング設定がパフォーマンスに与える悪影響

デフォルトのログ環境設定は、メモリーを 4 GB 以上使用する可能性があり、rsyslogsystemd-journald を実行している場合は、速度制限値の調整が複雑になります。

詳細は、ナレッジベースの記事 Negative effects of the RHEL default logging setup on performance and their mitigations を参照してください。

8.4. OpenSCAP

8.4.1. OpenSCAP API が統合

この更新により、統合された OpenSCAP 共有ライブラリー API を提供します。63 個のシンボルが削除され、14 個が追加され、4 個で署名が更新されました。OpenSCAP 1.3.0 で削除されたシンボルには以下が含まれます。

  • バージョン 1.2.0 で非推奨とされたシンボル
  • SEAP プロトコルシンボル
  • 内部ヘルパー関数
  • 未使用のライブラリーシンボル
  • 未実装シンボル

8.4.2. oscap-podman が、コンテナーのセキュリティースキャンおよびコンプライアンススキャンで oscap-docker に置き換え

RHEL 8.2 では、コンテナーのセキュリティースキャンおよびコンプライアンススキャンを行うための新しいユーティリティーが導入されました。oscap-podman ツールが、RHEL 7 におけるコンテナーおよびコンテナーイメージのスキャンを提供する oscap-docker ユーティリティーと同等のものを提供します。

詳細は、コンテナーおよびコンテナーイメージの脆弱性スキャン セクションを参照してください。

8.5. Audit

8.5.1. Audit 3.0 で audispdauditd に置き換え

今回の更新で、audispd 機能が auditd に移行しました。したがって、plugins.d 設定オプションが auditd.conf に追加されました。また、plugins.d ディレクトリーが、/etc/audit に移動しました。auditd と、そのプラグインの現在のステータスは、service auditd state コマンドを実行すれば確認できます。

8.6. SELinux

8.6.1. SELinux パッケージが Python 3 に移行

  • policycoreutils-python は、policycoreutils-python-utils パッケージおよび python3-policycoreutils パッケージに置き換えられました。
  • libselinux-python パッケージの機能は、python3-libselinux パッケージで提供されるようになりました。
  • setools-libs パッケージの機能は、python3-setools パッケージで提供されるようになりました。
  • libsemanage-python パッケージの機能は、python3-libsemanage パッケージで提供されるようになりました。

8.6.2. SELinux サブパッケージの変更点

  • libselinux-staticlibsemanage-staticlibsepol-static、および setools-libs-tcl が削除されました。
  • RHEL 8.0 および 8.1 では、setools-gui および setools-console-analyses は利用できません。RHEL 8.2 は、このサブパッケージを含む RHEL 8 の最初のマイナーバージョンです。

8.6.3. SELinux ポリシーの変更

init_t ドメインタイプは、RHEL 8 で無制限ではなくなりました。これにより、別の SELinux ラベル付けアプローチを使用するサードパーティーアプリケーションで問題が発生する可能性があります。

標準以外の場所における SELinux のラベル付けの問題を解決するために、このような場所に対して同等のファイルのコンテキストを設定できます。

  1. /my/apps および / ディレクトリーに対して、同等のファイルのコンテキストを設定します。

    # semanage fcontext -a -e / /my/apps
  2. SELinux ポリシーのローカルカスタマイズを表示して、ファイルのコンテキストが同じであることを確認します。

    # semanage fcontext -l -C
    
    SELinux Local fcontext Equivalence
    
    /my/apps = /
  3. /my/apps のコンテキストをデフォルトに戻すと、/ のコンテキストと同等になります。

    # restorecon -Rv /my/apps
    restorecon reset /my/apps context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:root_t:s0
    restorecon reset /my/apps/bin context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:bin_t:s0
    restorecon reset /my/apps/bin/executable context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:bin_t:s0

この方法では、標準以外の場所にインストールされた大部分のファイルとディレクトリーに正しいラベルが割り当てられます。これにより、正しくラベル付けされたプロセスが一部の実行可能ファイルによって開始されるようになります。

ファイルコンテキストの等価性を削除するには、次のコマンドを使用します。

# semanage fcontext -d -e / /my/apps
  • 詳細は、semanage-fcontext man ページを参照してください。

8.6.4. SELinux ブール値の変更点

8.6.4.1. 新しい SELinux ブール値

今回の SELinux システムポリシーの更新により、以下のブール値が追加されました。

  • colord_use_nfs
  • deny_bluetooth
  • httpd_use_opencryptoki
  • logrotate_use_fusefs
  • mysql_connect_http
  • pdns_can_network_connect_db
  • ssh_use_tcpd
  • sslh_can_bind_any_port
  • sslh_can_connect_any_port
  • tor_can_onion_services
  • unconfined_dyntrans_all
  • use_virtualbox
  • virt_sandbox_share_apache_content
  • virt_use_pcscd
8.6.4.2. 削除された SELinux ブール値

RHEL 8 SELinux ポリシーは、以前のリリースで使用できた以下のブール値を提供しません。

  • container_can_connect_any
  • ganesha_use_fusefs
8.6.4.3. デフォルト値の変更

RHEL 8 では、以下の SELinux ブール値が、以前のリリースとは異なるデフォルト値に設定されます。

  • domain_can_mmap_files はデフォルトで off になりました。
  • httpd_graceful_shutdown はデフォルトで off になりました。
  • Mozilla_plugin_can_network_connect はデフォルトで on になりました。
  • named_write_master_zones はデフォルトで on になりました。

さらに、antivirus_use_jit および ssh_chroot_rw_homedirs のブール値の説明が変更になりました。

ブール値のリストとその意味を取得し、有効かどうかを調べるには、selinux-policy-devel パッケージをインストールして、以下のコマンドを実行します。

# semanage boolean -l

8.6.5. SELinux ポートタイプの変更点

RHEL 8 SELinux ポリシーは、以下の追加ポートタイプを提供します。

  • appswitch_emp_port_t
  • babel_port_t
  • bfd_control_port_t
  • conntrackd_port_t
  • firepower_port_t
  • nmea_port_t
  • nsca_port_t
  • openqa_port_t
  • openqa_websockets_port_t
  • priority_e_com_port_t
  • qpasa_agent_port_t
  • rkt_port_t
  • smntubootstrap_port_t
  • statsd_port_t
  • versa_tek_port_t

ポートタイプ dns_port_t および ephemeral_port_t の定義が変更され、gluster_port_t ポートタイプが削除されました。

8.6.6. sesearch の使用方法の変更点

  • sesearch コマンドは、-C オプションを使用しなくなり、条件式を含める必要があります。
  • -T--type オプションが以下のように変更になりました。

    • -T--type_trans - type_transition ルールを検索します。
    • --type_member - type_member ルールを検索します。
    • --type_change - type_change ルールを検索します。

8.7. 削除されたセキュリティー機能

8.7.1. shadow-utils では、ユーザー名およびグループ名に数値だけを使用することができなくなる

useradd コマンドおよび groupadd コマンドでは、数値だけのユーザー名とグループ名を使用することができません。ユーザー ID およびグループ ID は数値となるため、数値だけのユーザー名およびグループ名を使用すると、ユーザー名とユーザー ID、またはグループ名とグループ ID を組み合わせて使用するツールで、混乱が生まれるためです。数値だけのユーザー名およびグループ名は、Red Hat Enterprise Linux 7 では非推奨となり、Red Hat Enterprise Linux 8 では完全に対応されなくなりました。

8.7.2. securetty がデフォルトで無効になる

最新の Linux システムでは、tty デバイスファイルの動的な特性により、PAM モジュール securetty はデフォルトで無効になり、/etc/securetty 設定ファイルが RHEL に含まれなくなりました。/etc/securetty には可能なデバイスが多数含まれているため、ほとんど場合は、実用的な効果はデフォルトで許可され、この変更の影響はあまり受けません。より大きな制限を使用する場合は、/etc/pam.d ディレクトリーの適切なファイルに、pam_securetty.so モジュールを有効にする行を追加して、新しい /etc/securetty ファイルを作成する必要があります。

8.7.3. Clevis HTTP ピンが削除される

Clevis の HTTP ピンが RHEL 8 から削除され、サブコマンドの clevis encrypt http が利用できなくなりました。

8.7.3.1. Coolkey が削除される

スマートカードの Coolkey ドライバーが RHEL 8 から削除されており、その機能が OpenSC から提供されるようになりました。

8.7.3.2. crypto-utils が削除される

crypto-utils パッケージが RHEL 8 から削除されました。代わりに、openssl パッケージ、gnutls-utils パッケージ、および nss-tools パッケージによるツールを使用できます。

8.7.3.3. Libreswan から KLIPS が削除される

Red Hat Enterprise Linux 8 では、Kernel IP Security (KLIPS) IPsec スタックのサポートが Libreswan から削除されました。

第9章 ネットワーク

9.1. NetworkManager

9.1.1. 従来のネットワークスクリプトのサポート

Red Hat Enterprise Linux 8 では、ネットワークスクリプトが非推奨となっており、デフォルトでは提供されなくなりました。基本インストールでは、nmcli ツールを介して NetworkManager を呼び出す ifup スクリプトおよび ifdown スクリプトの新しいバージョンが提供されます。Red Hat Enterprise Linux 8 で ifup スクリプトおよび ifdown スクリプトを実行する場合は、NetworkManager が起動している必要があります。

注記

/sbin/ifup-local スクリプト、ifdown-pre-local スクリプト、および ifdown-local スクリプトのカスタムコマンドは実行されません。

このスクリプトが必要な場合は、次のコマンドを使用すれば、システムに非推奨のネットワークスクリプトをインストールできます。

yum install network-scripts

ifup スクリプトおよび ifdown スクリプトが、インストールされた従来のネットワークスクリプトにリンクします。

従来のネットワークスクリプトを呼び出すと、そのスクリプトが非推奨であることを示す警告が表示されます。

9.1.2. NetworkManager が SR-IOV 仮想機能に対応

Red Hat Enterprise Linux 8 では、NetworkManager で、SR-IOV (Single Root I/O virtualization) に対応するインターフェイスに仮想ファンクション (VF) の数を設定できます。また、NetworkManager では、MAC アドレス、VLAN、spoof checking 設定、許可されるビットレートなど、仮想関数の属性の一部を設定できます。SR-IOV に関連するプロパティーはすべて、sriov 接続の設定で利用できます。詳細は、man ページの nm-settings(5) を参照してください。

9.1.3. NetworkManager が、接続に対するワイルドカードインターフェイスの名前一致に対応

以前は、インターフェイス名の完全一致のみを使用して、特定のインターフェイスへの接続を制限していました。今回の更新で、接続には、ワイルドカードに対応する新しい match.interface-name プロパティーが含まれるようになりました。この更新により、ワイルドカードパターンを使用した柔軟な方法で、接続用インターフェイスを選択できるようになります。

9.1.4. NetworkManager が、ethtool オフロード機能の設定に対応

この機能強化により、NetworkManager は、ethtool オフロード機能の設定に対応するため、init スクリプトまたは NetworkManager ディスパッチャースクリプトを使用しなくなりました。その結果、以下のいずれかの方法を使用して、接続プロファイルの一部としてオフロード機能を設定できるようになりました。

  • nmcli ユーティリティーを使用する
  • /etc/NetworkManager/system-connections/ ディレクトリーのキーファイルを編集する
  • /etc/sysconfig/network-scripts/ifcfg-* ファイルを編集する

この機能は、現在、グラフィカルインターフェイスと nmtui ユーティリティーでは対応していないことに注意してください。

詳細は、nmcli を使用した ethtool オフロード機能の設定 を参照してください。

9.1.5. NetworkManager が、デフォルトで内部 DHCP プラグインを使用するようになる

NetworkManager は、DHCP プラグインの internal および dhclient に対応します。デフォルトでは、Red Hat Enterprise Linux (RHEL) 7 の NetworkManagerdhclient を使用し、RHEL 8 では 内部 プラグインを使用します。特定の状況では、プラグインの動作が異なります。たとえば、dhclient は、/etc/dhcp/ ディレクトリーで指定されている追加設定を使用できます。

RHEL 7 から RHEL 8 にアップグレードした際に NetworkManager の動作が異なる場合は、dhclient プラグインを使用するために、/etc/NetworkManager/NetworkManager.conf ファイルの [main] セクションに、以下の設定を追加します。

[main]
dhcp=dhclient

9.1.6. RHEL 8 では、NetworkManager-config-server パッケージがデフォルトでインストールされない

NetworkManager-config-server パッケージは、セットアップ中にベース環境の Server または Server with GUI のいずれかを選択した場合に限り、デフォルトでインストールされます。別の環境を選択した場合は、yum install NetworkManager-config-server コマンドを使用してパッケージをインストールします。

9.2. パケットのフィルタリング

9.2.1. nftables が、iptables を、デフォルトのネットワークパケットフィルタリングのフレークワークとして置き換え

nftables フレームワークは、パケットの分類機能を提供し、iptables ツール、ip6tables ツール、arptables ツール、ebtables ツール、および ipset ツールの後継となります。利便性、機能、パフォーマンスにおいて、以前のパケットフィルタリングツールに多くの改良が追加されました。以下に例を示します。

  • 線形処理の代わりにルックアップテーブルを使用
  • IPv4 プロトコルおよび IPv6 プロトコルに対する 1 つのフレームワーク
  • 完全ルールセットのフェッチ、更新、および保存を行わず、すべてアトミックに適用されるルール
  • ルールセットにおけるデバッグおよびトレースへの対応 (nftrace) およびトレースイベントの監視 (nft ツール)
  • より統一されたコンパクトな構文、プロトコル固有の拡張なし
  • サードパーティーのアプリケーション用 Netlink API

iptables と同様、nftables は、チェーンを保存するテーブルを使用します。このチェーンには、アクションを実行する個々のルールが含まれます。nft ツールは、以前のパケットフィルタリングフレームワークのツールをすべて置き換えます。libnftables ライブラリーは、libmnl ライブラリーの Netlink API nftables で、低レベルの対話のために使用できます。

iptables ツール、ip6tables ツール、ebtables ツール、および arptables ツールは、nftables ベースの同じ名前のドロップインツールに置き換えられました。外部の挙動は従来のものと同じですが、内部的には必要に応じて互換インターフェイスを通して、従来の netfilter カーネルモジュールを使用した nftables を使用します。

nftables ルールセットに対するモジュールの効果は、nft list ruleset コマンドを使用して確認できます。これらのツールは、テーブル、チェーン、およびルールを nftables ルールセットに追加するため、nft flush ruleset コマンドなどの nftables ルールセット操作は、先に別の従来のコマンドを使用してインストールしたルールセットに影響を及ぼす可能性があることに注意してください。

どの種類のツールが存在するかをすばやく特定するために、バージョン情報にバックエンド名が追加されるようになりました。RHEL 8 では、nftables ベースの iptables ツールで、次のバージョン文字列が出力されます。

$ iptables --version
iptables v1.8.0 (nf_tables)

一方、従来の iptables ツールが存在する場合は、次のバージョン情報が出力されます。

$ iptables --version
iptables v1.8.0 (legacy)

9.2.2. RHEL 8 で、フィルターテーブルから Arptables FORWARD が削除される

arptables の FORWARD チェーン機能は、Red Hat Enterprise Linux (RHEL) 8 から削除されました。ebtables ツールの FORWARD チェーンを使用して、ルールを追加できるようになりました。

9.2.3. iptables-ebtables の出力の一部が、ebtables との完全な互換性がない

RHEL 8 では、ebtables コマンドは、iptables-ebtables パッケージが提供します。ここには、このツールが nftables ベースで再実装されています。このツールには別のコードベースがあり、その出力は、側面が異なる場合があるため、無視できるか、設計上の選択を慎重に検討する必要があります。

したがって、ebtables 出力を解析するスクリプトを移行する際に、以下を反映するスクリプトを調整します。

  • MAC アドレスの書式が、長さが固定されるように変更されました。octet 値では、2 文字の書式を維持するために、必要に応じて、個々のバイト値の前にゼロが含まれます。
  • IPv6 接頭辞の形式が、RFC 4291 に準拠するように変更になりました。スラッシュ文字の後ろの終了部分には、IPv6 アドレスフォーマットのネットマスクが含まなくなりましたが、接頭辞長は含まれます。この変更は、有効な (左連続の) マスクにしか適用されませんが、それ以外の場合は、古い形式で印刷されます。

9.2.4. iptablesnftables に変換する新しいツール

今回の更新で、既存の iptables ルールまたは ip6tables ルールを、nftables で同等のルールに変換する iptables-translate ツールおよび ip6tables-translate ツールが追加されました。拡張機能によっては変換機能がない場合もあります。対応する機能がない拡張機能が存在する場合は、ツールにより、その前に # 記号が付いた未変換ルールが出力されます。以下に例を示します。

| % iptables-translate -A INPUT -j CHECKSUM --checksum-fill
| nft # -A INPUT -j CHECKSUM --checksum-fill

また、ユーザーは、iptables-restore-translate ツールおよび ip6tables-restore-translate ツールを使用して、ルールのダンプを変換できます。その前に、iptables-save コマンドまたは ip6tables-save コマンドを使用して、現在のルールのダンプを出力できます。以下に例を示します。

| % sudo iptables-save >/tmp/iptables.dump
| % iptables-restore-translate -f /tmp/iptables.dump
| # Translated by iptables-restore-translate v1.8.0 on Wed Oct 17 17:00:13 2018
| add table ip nat
| ...

9.3. wpa_supplicant の変更点

9.3.1. journalctlwpa_supplicant ログを読み込む

Red Hat Enterprise Linux (RHEL) 8 の wpa_supplicant パッケージは、CONFIG_DEBUG_SYSLOG が有効になった状態で構築されています。これにより、/var/log/wpa_supplicant.log ファイルの内容を確認する代わりに、journalctl ユーティリティーを使用して wpa_supplicant ログを読み取ることができます。

9.3.2. wpa_supplicant のワイヤレス拡張に対する compile-time サポートが無効になっている

wpa_supplicant パッケージでは、ワイヤレス拡張に対応していません。コマンドラインの引数として wext を使用する場合、またはワイヤレス拡張にのみ対応する古いアダプターのみを使用する場合は、wpa_supplicant デーモンを実行できません。

9.4. 新しいデータチャンクタイプ I-DATA が SCTP に追加

今回の更新で、新しいデータチャンクタイプ (I-DATA)、およびストリームスケジューラーが SCTP (Stream Control Transmission Protocol) に追加されました。以前は、ユーザーが送信する順序で SCTP がユーザーメッセージを送信していました。このため、SCTP ユーザーメッセージが大きくなると、送信が完了するまで、ストリーム内の他のすべてのメッセージがブロックされていました。I-DATA チャンクを使用している場合は、Transmission Sequence Number (TSN) フィールドがオーバーロードされません。そのため、SCTP ではさまざまな方法でストリームをスケジュールできるようになり、I-DATA ではユーザーメッセージのインターリーブ (RFC 8260) が可能になりました。両方のピアが I-DATA チャンクタイプに対応する必要があることに注意してください。

9.5. RHEL 8 における TCP の新機能

Red Hat Enterprise Linux 8 には、TCP ネットワーキングスタックバージョン 4.18 が同梱され、より高いパフォーマンスおよび安定性と、より優れたスケーラビリティーが提供されます。特に、入力接続率が高い、ビジー状態の TCP サーバーのパフォーマンスが向上します。

また、2 つの新しい TCP 輻輳制御アルゴリズム (BBR および NV) が利用でき、ほとんどのシナリオで、キュービックよりもレイテンシーが短く、スループットも良くなります。

9.5.1. RHEL 8 における TCP BBR への対応

Red Hat Enterprise Linux (RHEL) 8 では、新しい TCP 輻輳制御アルゴリズムである BBR (Bottleneck Bandwidth and Round-trip time) に対応するようになりました。BBR は、ボトルネックリンクおよびラウンドトリップ時間 (RTT) の帯域幅を決定します。ほとんどの輻輳アルゴリズムは、パケットロス (デフォルトの Linux TCP 輻輳制御アルゴリズムである CUBIC を含む) に基づいており、高スループットのリンクの問題をかかえています。BBR は、損失イベントに直接反応せず、利用可能な帯域幅をそれと一致させて、TCP ペーシングレートを調整します。

詳細は、How to configure TCP BBR congestion control algorithm の記事を参照してください。

9.7. ネットワークインターフェイス名の変更

Red Hat Enterprise Linux 8 では、RHEL 7 と同じ一貫性のあるネットワークデバイス命名スキームがデフォルトで使用されます。ただし、一部のカーネルドライバー (e1000enfpqedesfctg3bnxt_en など) では、RHEL 8 の新規インストールで一貫した名前が変更になりました。ただし、RHEL 7 からアップグレードする場合はこの名前が保持されます。

9.8. ipv6netmaskgateway、および hostname カーネルパラメーターを削除

RHEL 8.3 以降では、カーネルコマンドラインでネットワークを設定する ipv6netmaskgateway、および hostname カーネルパラメーターは利用できなくなりました。代わりに、以下のような各種形式に対応するようにまとめられた ip パラメーターを使用します。

ip=IP_address:peer:gateway_IP_address:net_mask:host_name:interface_name:configuration_method

個々のフィールドや、このパラメーターで使用できるその他の形式の詳細は、dracut.cmdline(7) の man ページの ip パラメーターの説明を参照してください。

9.9. tc コマンドの -ok オプションが削除される

tc コマンドの -ok オプションが、Red Hat Enterprise Linux 8 から削除されました。回避策として、カーネルを使用した netlink から直接通信するコードを実装できます。受け取った応答メッセージは、送信した要求の完了およびステータスを示します。時間がそれほど重要ではないアプリケーションに対する別の方法は、各コマンドに対して個別に tc を呼び出すことです。これは、カスタムスクリプトで発生する可能性があります。これは、成功したそれぞれの tc 起動に対して OK を出力することで、tc -batch 動作をシミュレートします。

9.10. ethtool ユーティリティーの PTP 機能出力形式が変更されました

RHEL 8.4 以降、ethtool ユーティリティーはカーネルとの通信に ioctl() システムコールではなく netlink インターフェイスを使用します。したがって、ethtool -T <network_controller> コマンドを使用すると、Precision Time Protocol (PTP) 値の形式が変更されます。

以前は、ioctl() インターフェイスでは、ethtool はethtool -internal 文字列テーブルを使用して機能ビット名を変換し、ethtool -T <network_controller> コマンドは次のように表示しました。

Time stamping parameters for <network_controller>:
Capabilities:
hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)
software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE)
...

netlink インターフェイスを使用すると、ethtool は カーネルから文字列を受け取ります。これらの文字列には、内部の SOF_TIMESTAMPING_* 名は含まれません。したがって、ethtool -T <network_controller> は次のように表示されます。

Time stamping parameters for <network_controller>:
Capabilities:
hardware-transmit
software-transmit
...

スクリプトまたはアプリケーションで ethtool の PTP 機能出力を使用する場合は、それに応じて更新してください。

第10章 カーネル

10.1. リソース制御

10.1.1. RHEL 8 で、Control Group v2 がテクノロジーグループとして利用可能

Control Group v2 メカニズムは、統一された階層制御グループです。Control Group v2 は、プロセスを階層的に編成し、制御された設定可能な方法で、階層に従ってシステムリソースを分配します。

以前のバージョンとは異なり、control group v2 には階層が 1 つしかありません。このように階層が単純であるため、Linux カーネルでは次のことが可能になります。

  • 所有者のロールに基づいたプロセスの分類
  • 複数の階層でポリシーが競合する問題の解消

Control group v2 は、非常に多くのコントローラーに対応します。

  • CPU コントローラーにより、CPU サイクルの配分が調整されます。このコントローラーには以下が実装されています。

    • 通常のスケジューリングポリシーに対する重みおよび絶対帯域幅制限のモデル
    • 実時間スケジューリングポリシーに対する絶対帯域幅割り当てモデル
  • メモリーコントローラーは、メモリー配分を調整します。現在、次の種類のメモリー使用量が追跡されます。

    • ユーザー側のメモリー (ページキャッシュと匿名メモリー)
    • dentry、inode などのカーネルデータ構造
    • TCP ソケットバッファー
  • I/O コントローラーは、I/O リソースの配分を制限します。
  • Remote Direct Memory Access (RDMA) コントローラーは、一部のプロセスが使用できる、RDMA/IB に固有のリソースを制限します。このプロセスは、RDMA コントローラーによりグループ化されます。
  • プロセス番号コントローラーは、特定の制限後に、コントロールグループが、新しいタスクが fork() されない、または clone() されないようにできます。
  • Writeback コントローラーがメカニズムとして動作します。これは、I/O コントローラーとメモリーコントローラーとの間の矛盾が相殺されます。

上記の情報は、cgroups-v2 オンラインドキュメント に基づいています。ここでは、個別の control group v2 コントローラーに関する詳細を取得できます。

10.2. メモリーの管理

10.2.1. 64 ビット ARM に 52 ビット PA が利用可能

今回の更新で、64 ビット ARM アーキテクチャー用の 52 ビット物理アドレッシング (PA) に対応するようになりました。これにより、以前の 48 ビットの PA よりも大きな物理アドレス空間が提供されます。

10.2.2. 5 レベルのページテーブル x86_64

RHEL 7 では、既存のメモリーバスには 48/46 ビットの仮想/物理メモリーアドレス容量があり、Linux カーネルが 4 つのレベルのページテーブルを実装して、物理アドレスへの仮想アドレスを管理します。物理バスのアドレス線は、物理メモリーの容量の上限を 64 TB に制限します。

この制限は、57/52 ビットの仮想および物理のメモリーアドレスにより、128 PiB の仮想アドレス空間 (64PB ユーザー/64PB カーネル) と、4 PB の物理メモリーの容量まで拡張されました。

拡張されたアドレス範囲により、RHEL 8 のメモリー管理は 5 レベルのページテーブル実装のサポートを追加します。この実装では、最大 128 PiB の仮想アドレス空間と 4 PiB の物理アドレス空間で、拡張されたアドレス範囲を処理できます。

5 レベルのページテーブルは、取り付けられている物理メモリーが 64 TiB 未満であっても、この機能をサポートできるハードウェアではデフォルトで有効になっています。メモリーが 64 TiB 未満のシステムでは、5 レベルのページテーブルを移動する場合にオーバーヘッドがわずかに増加します。このオーバーヘッドを回避するには、no5lvl カーネルコマンドラインパラメーターを使用して 5 レベルのページテーブルを無効にし、強制的に 4 レベルのページテーブルを使用するようにできます。

10.3. パフォーマンス分析と可観測性ツール

10.3.1. カーネルに bpftool が追加される

eBPF (extended Berkeley Packet Filtering) に基づくプログラムおよびマップの検査と簡単な操作を行う bpftool ユーティリティーが Linux カーネルに追加されました。bpftool はカーネルソースツリーの一部で、bpftool パッケージにより提供されます。これは、kernel パッケージのサブパッケージとして含まれています。

10.3.2. eBPF がテクノロジープレビューとして利用可能に

eBPF (extended Berkeley Packet Filtering) 機能は、テクノロジープレビューとしてネットワーキングおよびトレースの両方に利用できます。eBPF を使用すると、ユーザー空間はカスタムプログラムをさまざまなポイント (ソケット、トレースポイント、パケット受信) に接続してデータを受信して処理できるようにします。この機能には、新しいシステムコール bpf() が含まれます。これは、様々な種類のマップの作成と、様々な種類のプログラムの更新に対応します。bpf() は、root など、CAP_SYS_ADMIN が付与されているユーザーのみが利用できます。詳細は、man ページの bpf(2) を参照してください。

10.3.3. BCC がテクノロジープレビューとして利用可能に

BPF コンパイラーコレクション (BCC) は、RHEL 8 でテクノロジープレビューとして利用できる、効率的なカーネルの追跡および操作プログラムを作成するユーザー空間ツールパッケージです。BCC は、eBPF (extended Berkeley Packet Filtering) を使用して、Linux オペレーティングシステムの I/O 解析、ネットワーキング、およびモニタリング用のツールを提供します。

10.4. ブートプロセス

10.4.1. RHEL でカスタムカーネルをインストールして起動する方法

Boot Loader Specification (BLS) は、スキームと、ファイルフォーマットを定義して、ドロップインディレクトリーの各起動オプションで、ブートローダー設定を管理します。それぞれのドロップイン設定ファイルを操作する必要はありません。すべてのアーキテクチャーが同じブートローダーを使用するわけではないため、この前提は RHEL 8 に特に関係があります。

  • Open Firmware を使用する x86_64aarch64、および ppc64leGRUB2 を使用する
  • Open Power Abstraction Layer (OPAL) を使用する ppc64lePetitboot を使用する
  • s390xzipl を使用する

各ブートローダーには、新しいカーネルがインストールまたは削除された場合に修正が必要な設定ファイルおよびフォーマットが異なります。以前のバージョンの RHEL では、grubby ユーティリティーが、この動作を可能にするコンポーネントでした。ただし、RHEL 8 の場合、ブートローダーの設定は、BLS ファイル形式の実装により標準化されました。ここでは、grubby は、BLS 操作のシンラッパーとして動作します。

10.4.2. RHEL での初期の kdump サポート

以前は、起動プロセスの初期段階で発生したカーネルクラッシュを登録するために kdump サービスの起動に時間がかかりすぎていました。このため、トラブルシューティングの可能性とクラッシュ情報が失われていました。

この問題に対処するために、RHEL 8 では、early kdump サポートが導入されました。このメカニズムの詳細は、/usr/share/doc/kexec-tools/early-kdump-howto.txt ファイルを参照してください。What is early kdump support and how do I configure it? も参照してください。

第11章 ハードウェアの有効化

11.1. 削除されたハードウェアサポート

次のデバイスドライバーとアダプターは RHEL 7 でサポートされていましたが、RHEL 8.0 では使用できなくなりました。

11.1.1. 削除したデバイスのドライバー

次のデバイスドライバーのサポートは、RHEL 8 から削除されました。

  • 3w-9xxx
  • 3w-sas
  • aic79xx
  • aoe
  • arcmsr
  • ata ドライバー:

    • acard-ahci
    • sata_mv
    • sata_nv
    • sata_promise
    • sata_qstor
    • sata_sil
    • sata_sil24
    • sata_sis
    • sata_svw
    • sata_sx4
    • sata_uli
    • sata_via
    • sata_vsc
  • bfa
  • cxgb3
  • cxgb3i
  • e1000
  • floppy
  • hptiop
  • initio
  • isci
  • iw_cxgb3
  • mptbase - このドライバーは、仮想化のユースケースと容易なデベロッパートランジションに使用されます。ただし、サポートされていません。
  • mptctl
  • mptsas - このドライバーは、仮想化のユースケースと容易なデベロッパートランジションに使用されます。ただし、サポートされていません。
  • mptscsih - このドライバーは、仮想化のユースケースと容易なデベロッパートランジションに使用されます。ただし、サポートされていません。
  • mptspi - このドライバーは、仮想化のユースケースと容易なデベロッパートランジションに使用されます。ただし、サポートされていません。
  • mthca
  • mtip32xx
  • mvsas
  • mvumi
  • OSD ドライバー:

    • osd
    • libosd
  • osst
  • pata ドライバー:

    • pata_acpi
    • pata_ali
    • pata_amd
    • pata_arasan_cf
    • pata_artop
    • pata_atiixp
    • pata_atp867x
    • pata_cmd64x
    • pata_cs5536
    • pata_hpt366
    • pata_hpt37x
    • pata_hpt3x2n
    • pata_hpt3x3
    • pata_it8213
    • pata_it821x
    • pata_jmicron
    • pata_marvell
    • pata_netcell
    • pata_ninja32
    • pata_oldpiix
    • pata_pdc2027x
    • pata_pdc202xx_old
    • pata_piccolo
    • pata_rdc
    • pata_sch
    • pata_serverworks
    • pata_sil680
    • pata_sis
    • pata_via
    • pdc_adma
  • pm80xx(pm8001)
  • pmcraid
  • qla3xxx - このドライバーは、仮想化のユースケースと容易なデベロッパートランジションに使用されます。ただし、サポートされていません。
  • qlcnic
  • qlge
  • stex
  • sx8
  • tulip
  • ufshcd
  • ワイヤレスドライバー:

    • carl9170
    • iwl4965
    • iwl3945
    • mwl8k
    • rt73usb
    • rt61pci
    • rtl8187
    • wil6210

11.1.2. 削除されたアダプター

以下に記載のアダプターのサポートは RHEL 8 から削除されました。上記のドライバーのアダプター以外のサポートは変更しません。

PCI ID は、vendor:device:subvendor:subdevice の形式です。subdevice エントリーまたは subvendor:subdevice エントリーがリストにない場合は、そのような不明なエントリーの値を持つデバイスが削除されています。

ご使用のシステムでハードウェアの PCI ID を確認するには、lspci -nn コマンドを実行します。

  • aacraid ドライバーから次のアダプターが削除されました。

    • PERC 2/Si (Iguana/PERC2Si)、PCI ID 0x1028:0x0001:0x1028:0x0001
    • PERC 3/Di (Opal/PERC3Di)、PCI ID 0x1028:0x0002:0x1028:0x0002
    • PERC 3/Si (SlimFast/PERC3Si)、PCI ID 0x1028:0x0003:0x1028:0x0003
    • PERC 3/Di (Iguana FlipChip/PERC3DiF)、PCI ID 0x1028:0x0004:0x1028:0x00d0
    • PERC 3/Di (Viper/PERC3DiV)、PCI ID 0x1028:0x0002:0x1028:0x00d1
    • PERC 3/Di (Lexus/PERC3DiL)、PCI ID 0x1028:0x0002:0x1028:0x00d9
    • PERC 3/Di (Jaguar/PERC3DiJ)、PCI ID 0x1028:0x000a:0x1028:0x0106
    • PERC 3/Di (Dagger/PERC3DiD)、PCI ID 0x1028:0x000a:0x1028:0x011b
    • PERC 3/Di (Boxster/PERC3DiB)、PCI ID 0x1028:0x000a:0x1028:0x0121
    • catapult、PCI ID 0x9005:0x0283:0x9005:0x0283
    • tomcat、PCI ID 0x9005:0x0284:0x9005:0x0284
    • Adaptec 2120S (Crusader)、PCI ID 0x9005:0x0285:0x9005:0x0286
    • Adaptec 2200S (Vulcan)、PCI ID 0x9005:0x0285:0x9005:0x0285
    • Adaptec 2200S (Vulcan-2m)、PCI ID 0x9005:0x0285:0x9005:0x0287
    • Legend S220 (Legend Crusader)、PCI ID 0x9005:0x0285:0x17aa:0x0286
    • Legend S230 (Legend Vulcan)、PCI ID 0x9005:0x0285:0x17aa:0x0287
    • Adaptec 3230S (Harrier)、PCI ID 0x9005:0x0285:0x9005:0x0288
    • Adaptec 3240S (Tornado)、PCI ID 0x9005:0x0285:0x9005:0x0289
    • ASR-2020ZCR SCSI PCI-X ZCR (Skyhawk)、PCI ID 0x9005:0x0285:0x9005:0x028a
    • ASR-2025ZCR SCSI SO-DIMM PCI-X ZCR (Terminator)、PCI ID 0x9005:0x0285:0x9005:0x028b
    • ASR-2230S + ASR-2230SLP PCI-X (Lancer)、PCI ID 0x9005:0x0286:0x9005:0x028c
    • ASR-2130S (Lancer)、PCI ID 0x9005:0x0286:0x9005:0x028d
    • AAR-2820SA (Intruder)、PCI ID 0x9005:0x0286:0x9005:0x029b
    • AAR-2620SA (Intruder)、PCI ID 0x9005:0x0286:0x9005:0x029c
    • AAR-2420SA (Intruder)、PCI ID 0x9005:0x0286:0x9005:0x029d
    • ICP9024RO (Lancer)、PCI ID 0x9005:0x0286:0x9005:0x029e
    • ICP9014RO (Lancer)、PCI ID 0x9005:0x0286:0x9005:0x029f
    • ICP9047MA (Lancer)、PCI ID 0x9005:0x0286:0x9005:0x02a0
    • ICP9087MA (Lancer)、PCI ID 0x9005:0x0286:0x9005:0x02a1
    • ICP5445AU (Hurricane44)、PCI ID 0x9005:0x0286:0x9005:0x02a3
    • ICP9085LI (Marauder-X)、PCI ID 0x9005:0x0285:0x9005:0x02a4
    • ICP5085BR (Marauder-E)、PCI ID 0x9005:0x0285:0x9005:0x02a5
    • ICP9067MA (Intruder-6)、PCI ID 0x9005:0x0286:0x9005:0x02a6
    • Themisto Jupiter Platform、PCI ID 0x9005:0x0287:0x9005:0x0800
    • Themisto Jupiter Platform、PCI ID 0x9005:0x0200:0x9005:0x0200
    • Callisto Jupiter Platform、PCI ID 0x9005:0x0286:0x9005:0x0800
    • ASR-2020SA SATA PCI-X ZCR (Skyhawk)、PCI ID 0x9005:0x0285:0x9005:0x028e
    • ASR-2025SA SATA SO-DIMM PCI-X ZCR (Terminator)、PCI ID 0x9005:0x0285:0x9005:0x028f
    • AAR-2410SA PCI SATA 4ch (Jaguar II)、PCI ID 0x9005:0x0285:0x9005:0x0290
    • CERC SATA RAID 2 PCI SATA 6ch (DellCorsair)、PCI ID 0x9005:0x0285:0x9005:0x0291
    • AAR-2810SA PCI SATA 8ch (Corsair-8)、PCI ID 0x9005:0x0285:0x9005:0x0292
    • AAR-21610SA PCI SATA 16ch (Corsair-16)、PCI ID 0x9005:0x0285:0x9005:0x0293
    • ESD SO-DIMM PCI-X SATA ZCR (Prowler)、PCI ID 0x9005:0x0285:0x9005:0x0294
    • AAR-2610SA PCI SATA 6ch、PCI ID 0x9005:0x0285:0x103C:0x3227
    • ASR-2240S (SabreExpress)、PCI ID 0x9005:0x0285:0x9005:0x0296
    • ASR-4005、PCI ID 0x9005:0x0285:0x9005:0x0297
    • IBM 8i (AvonPark)、PCI ID 0x9005:0x0285:0x1014:0x02F2
    • IBM 8i (AvonPark Lite)、PCI ID 0x9005:0x0285:0x1014:0x0312
    • IBM 8k/8k-l8 (Aurora)、PCI ID 0x9005:0x0286:0x1014:0x9580
    • IBM 8k/8k-l4 (Aurora Lite)、PCI ID 0x9005:0x0286:0x1014:0x9540
    • ASR-4000 (BlackBird)、PCI ID 0x9005:0x0285:0x9005:0x0298
    • ASR-4800SAS (Marauder-X)、PCI ID 0x9005:0x0285:0x9005:0x0299
    • ASR-4805SAS (Marauder-E)、PCI ID 0x9005:0x0285:0x9005:0x029a
    • ASR-3800 (Hurricane44)、PCI ID 0x9005:0x0286:0x9005:0x02a2
    • Perc 320/DC、PCI ID 0x9005:0x0285:0x1028:0x0287
    • Adaptec 5400S (Mustang)、PCI ID 0x1011:0x0046:0x9005:0x0365
    • Adaptec 5400S (Mustang)、PCI ID 0x1011:0x0046:0x9005:0x0364
    • Dell PERC2/QC、PCI ID 0x1011:0x0046:0x9005:0x1364
    • HP NetRAID-4M、PCI ID 0x1011:0x0046:0x103c:0x10c2
    • Dell Catchall、PCI ID 0x9005:0x0285:0x1028
    • Legend Catchall、PCI ID 0x9005:0x0285:0x17aa
    • Adaptec Catch All、PCI ID 0x9005:0x0285
    • Adaptec Rocket Catch All、PCI ID 0x9005:0x0286
    • Adaptec NEMER/ARK Catch All、PCI ID 0x9005:0x0288
  • mlx4_core ドライバーの以下の Mellanox Gen 2 および ConnectX-2 アダプターが削除されました。

    • PCI ID 0x15B3:0x1002
    • PCI ID 0x15B3:0x676E
    • PCI ID 0x15B3:0x6746
    • PCI ID 0x15B3:0x6764
    • PCI ID 0x15B3:0x675A
    • PCI ID 0x15B3:0x6372
    • PCI ID 0x15B3:0x6750
    • PCI ID 0x15B3:0x6368
    • PCI ID 0x15B3:0x673C
    • PCI ID 0x15B3:0x6732
    • PCI ID 0x15B3:0x6354
    • PCI ID 0x15B3:0x634A
    • PCI ID 0x15B3:0x6340
  • mpt2sas ドライバーから次のアダプターが削除されました。

    • SAS2004、PCI ID 0x1000:0x0070
    • SAS2008、PCI ID 0x1000:0x0072
    • SAS2108_1、PCI ID 0x1000:0x0074
    • SAS2108_2、PCI ID 0x1000:0x0076
    • SAS2108_3、PCI ID 0x1000:0x0077
    • SAS2116_1、PCI ID 0x1000:0x0064
    • SAS2116_2、PCI ID 0x1000:0x0065
    • SSS6200、PCI ID 0x1000:0x007E
  • megaraid_sas ドライバーから次のアダプターが削除されました。

    • Dell PERC5、PCI ID 0x1028:0x0015
    • SAS1078R、PCI ID 0x1000:0x0060
    • SAS1078DE、PCI ID 0x1000:0x007C
    • SAS1064R、PCI ID 0x1000:0x0411
    • VERDE_ZCR、PCI ID 0x1000:0x0413
    • SAS1078GEN2、PCI ID 0x1000:0x0078
    • SAS0079GEN2、PCI ID 0x1000:0x0079
    • SAS0073SKINNY、PCI ID 0x1000:0x0073
    • SAS0071SKINNY、 PCI ID 0x1000:0x0071
  • qla2xxx ドライバーから次のアダプターが削除されました。

    • ISP24xx、PCI ID 0x1077:0x2422
    • ISP24xx、PCI ID 0x1077:0x2432
    • ISP2422、PCI ID 0x1077:0x5422
    • QLE220、PCI ID 0x1077:0x5432
    • QLE81xx、PCI ID 0x1077:0x8001
    • QLE10000、PCI ID 0x1077:0xF000
    • QLE84xx、PCI ID 0x1077:0x8044
    • QLE8000、PCI ID 0x1077:0x8432
    • QLE82xx、PCI ID 0x1077:0x8021
  • qla4xxx ドライバーから次のアダプターが削除されました。

    • QLOGIC_ISP8022、PCI ID 0x1077:0x8022
    • QLOGIC_ISP8324、PCI ID 0x1077:0x8032
    • QLOGIC_ISP8042、PCI ID 0x1077:0x8042
  • be2iscsi ドライバーから次のアダプターが削除されました。

    • BladeEngine 2 (BE2) デバイス

      • BladeEngine2 10Gb iSCSI Initiator (汎用)、PCI ID 0x19a2:0x212
      • OneConnect OCe10101、OCm10101、OCe10102、OCm10102 BE2 アダプターファミリー、PCI ID 0x19a2:0x702
      • OCe10100 BE2 アダプターファミリー、PCI ID 0x19a2:0x703
    • BladeEngine 3 (BE3) デバイス

      • OneConnect TOMCAT iSCSI、PCI ID 0x19a2:0x0712
      • BladeEngine3 iSCSI、PCI ID 0x19a2:0x0222
  • be2net ドライバーが制御する次のイーサネットアダプターが削除されました。

    • BladeEngine 2 (BE2) デバイス

      • OneConnect TIGERSHARK NIC、PCI ID 0x19a2:0x0700
      • BladeEngine2 Network Adapter、PCI ID 0x19a2:0x0211
    • BladeEngine 3 (BE3) デバイス

      • OneConnect TOMCAT NIC、PCI ID 0x19a2:0x0710
      • BladeEngine3 Network Adapter、PCI ID 0x19a2:0x0221
  • lpfc ドライバーから次のアダプターが削除されました。

    • BladeEngine 2 (BE2) デバイス

      • OneConnect TIGERSHARK FCoE、PCI ID 0x19a2:0x0704
    • BladeEngine 3 (BE3) デバイス

      • OneConnect TOMCAT FCoE、PCI ID 0x19a2:0x0714
    • ファイバーチャンネル (FC) デバイス

      • FIREFLY、PCI ID 0x10df:0x1ae5
      • PROTEUS_VF、PCI ID 0x10df:0xe100
      • BALIUS、PCI ID 0x10df:0xe131
      • PROTEUS_PF、PCI ID 0x10df:0xe180
      • RFLY、PCI ID 0x10df:0xf095
      • PFLY、PCI ID 0x10df:0xf098
      • LP101、PCI ID 0x10df:0xf0a1
      • TFLY、PCI ID 0x10df:0xf0a5
      • BSMB、PCI ID 0x10df:0xf0d1
      • BMID、PCI ID 0x10df:0xf0d5
      • ZSMB、PCI ID 0x10df:0xf0e1
      • ZMID、PCI ID 0x10df:0xf0e5
      • NEPTUNE、PCI ID 0x10df:0xf0f5
      • NEPTUNE_SCSP、PCI ID 0x10df:0xf0f6
      • NEPTUNE_DCSP、PCI ID 0x10df:0xf0f7
      • FALCON、PCI ID 0x10df:0xf180
      • SUPERFLY、PCI ID 0x10df:0xf700
      • DRAGONFLY、PCI ID 0x10df:0xf800
      • CENTAUR、PCI ID 0x10df:0xf900
      • PEGASUS、PCI ID 0x10df:0xf980
      • THOR、PCI ID 0x10df:0xfa00
      • VIPER、PCI ID 0x10df:0xfb00
      • LP10000S、PCI ID 0x10df:0xfc00
      • LP11000S、PCI ID 0x10df:0xfc10
      • LPE11000S、PCI ID 0x10df:0xfc20
      • PROTEUS_S、PCI ID 0x10df:0xfc50
      • HELIOS、PCI ID 0x10df:0xfd00
      • HELIOS_SCSP、PCI ID 0x10df:0xfd11
      • HELIOS_DCSP、PCI ID 0x10df:0xfd12
      • ZEPHYR、PCI ID 0x10df:0xfe00
      • HORNET、PCI ID 0x10df:0xfe05
      • ZEPHYR_SCSP、PCI ID 0x10df:0xfe11
      • ZEPHYR_DCSP、PCI ID 0x10df:0xfe12
    • Lancer FCoE CNA デバイス

      • OCe15104-FM、PCI ID 0x10df:0xe260
      • OCe15102-FM、PCI ID 0x10df:0xe260
      • OCm15108-F-P、PCI ID 0x10df:0xe260

11.1.3. 削除されたその他のハードウェアサポート

11.1.3.1. AGP グラフィックカードがサポート対象外に

AGP (Accelerated Graphics Port) バスを使用するグラフィックカードは、Red Hat Enterprise Linux 8 ではサポートされていません。推奨される代替として、PCI Express バスを備えたグラフィックスカードを使用してください。

11.1.3.2. FCoE ソフトウェアの削除

FCoE (Fibre Channel over Ethernet) ソフトウェアは、Red Hat Enterprise Linux 8 から削除されました。これにより、Ethernet アダプターおよびドライバーで、ソフトウェア FCoE インターフェイスで作成するのに fcoe.ko カーネルモジュールが利用できなくなりました。この変更は、業界でソフトウェア管理 FCoE が採用されていないことが原因です。

Red Hat Enterprise 8 に固有の変更には以下が含まれます。

  • fcoe.ko カーネルモジュールが利用できなくなりました。これにより、Data Center Bridging が有効な Ethernet アダプターおよびドライバーを使用したソフトウェア FCoE のサポートが削除されます。
  • lldpad を使用して DCBX (Data Center Bridging eXchange) を介したリンクレベルのソフトウェア設定が、FCoE ではサポートされなくなりました。

    • fcoe-utils ツール (特に fcoemon) は、デフォルトで設定され、DCB 設定を検証せず、lldpad と通信しません。
    • fcoemonlldpad 統合が永続的に無効になる可能性があります。
  • libhbaapi ライブラリーおよび libhbalinux ライブラリーは、fcoe-utils からは使用されず、Red Hat のテストも受けなくなります。

以下のサポートは変更しません。

  • オペレーティングシステムへの Fibre Channel アダプターとして表示される、現在サポートされるオフロード FCoE アダプターは、別途記載がない限り、fcoe-utils 管理ツールを使用しません。これは、lpfc FC ドライバーによりサポートされているアダプターを選択します。bfa ドライバーは、Red Hat Enterprise Linux 8 には含まれないことに注意してください。
  • 現在サポートされるオフロードの FCoE アダプターは、fcoe-utils 管理ツールを使用していますが、別途記載がない限り、fcoe.ko の代わりに独自のカーネルドライバーを使用し、ドライバーやファームウェアに DCBX 設定を管理します。fnic ドライバー、bnx2fc ドライバー、および qedf ドライバーは、引き続き Red Hat Enterprise Linux 8 で完全に対応します。
  • 対応する一部のドライバーに必要なカーネルモジュール libfc.ko および libfcoe.ko は、上記で説明されています。

詳細は、Software FCoE および Fibre Channel ではターゲットモードに対応しない を参照してください。

11.1.3.3. RHEL 8 では e1000 ネットワークドライバーに対応しない

Red Hat Enterprise Linux 8 は、e1000 ネットワークドライバーに対応していません。これは、ベアメタルおよび仮想化の両方に影響します。ただし、新しいバージョンの e1000e ネットワークドライバーが、引き続き RHEL 8 でフルサポートとなります。

11.1.3.4. RHEL 8 では tulip ドライバーに対応しない

この更新で、tulip ネットワークドライバーへの対応は終了しました。したがって、Microsoft Hyper-V ハイパーバイザーの Generation 1 仮想マシンで RHEL 8 を使用すると、Legacy Network Adapter デバイスが動作しないため、仮想マシンの PXE インストールに失敗します。

PXE インストールを起動するには、Generation 2 Hyper-V 仮想マシンに RHEL 8 をインストールします。RHEL 8 Generation 1 仮想マシンが必要な場合は ISO インストールを使用します。

11.1.3.5. qla2xxx ドライバーがターゲットモードに対応しなくなる

qla2xxx QLogic ファイバーチャンネルドライバーを使用したターゲットモードのサポートが無効になっています。この変更の影響は以下のとおりです。

  • カーネルが、tcm_qla2xxx モジュールを提供しなくなりました。
  • rtslib ライブラリーおよび targetcli ユーティリティーが、qla2xxx に対応しなくなりました。

qla2xxx を使用したイニシエーターモードは引き続きサポートされます。

第12章 ファイルシステムおよびストレージ

12.1. ファイルシステム

12.1.1. Btrfs が削除される

Btrfs ファイルシステムは、Red Hat Enterprise Linux 8 から削除されました。これには、以下のコンポーネントがあります。

  • btrfs.ko カーネルモジュール
  • btrfs-progs パッケージ
  • snapper パッケージ

Red Hat Enterprise Linux 8 では、Btrfs ファイルシステムの作成、マウント、またはインストールを行うことができなくなりました。Anaconda インストーラーおよびキックスタートコマンドが Btrfs に対応しなくなりました。

12.1.2. XFS が、共有コピーオンライトのデータエクステントに対応

XFS ファイルシステムは、共有コピーオンライトのデータエクステント機能に対応します。この機能により、2 つ以上のファイルで共通のデータブロックセットを共有できます。共通ブロックを共有しているファイルのいずかを変更すると、XFS が共通ブロックへのリンクを解除して、新しいファイルを作成します。これは、その他のファイルシステムに見られるコピーオンライト (COW) 機能と似ています。

共有コピーオンライトのデータエクステントには次の特徴があります。

高速
共有コピーを作成しても、ディスク I/O を使用しません。
容量を効果的に使用
共有ブロックは、ディスク容量を追加で使用しません。
透過的
共通ブロックを共有するファイルは、通常のファイルと同じように機能します。

ユーザー空間ユーティリティーは、次の目的で共有コピーオンライトのデータエクステントを使用できます。

  • cp --reflink コマンドなどを使用した効果的なファイルのクローン作成
  • ファイルごとのスナップショット

この機能は、Overlayfs、NFS などのカーネルサブシステムで、より効率的な操作に使用されます。

共有コピーオンライトのデータエクステントは、xfsprogs パッケージの 4.17.0-2.el8 以降のバージョンで、XFS ファイルシステムを作成する際にデフォルトで有効になります。

直接アクセス (DAX) デバイスは、現在、共有コピーオンライトのデータエクステントを使用する XFS に対応していません。この機能を使用せずに XFS ファイルシステムを作成する場合は、次のコマンドを使用します。

# mkfs.xfs -m reflink=0 block-device

Red Hat Enterprise Linux 7 は、読み取り専用モードでのみ、共有コピーオンライトのデータエクステントを使用する XFS ファイルシステムをマウントできます。

12.1.3. ext4 ファイルシステムがメタデータのチェックサムをサポート

この更新により、ext4 メタデータはチェックサムにより保護されます。これにより、ファイルシステムが破損メタデータを認識させます。これにより破損を回避し、ファイルシステムの耐障害性を高めます。

12.1.4. /etc/sysconfig/nfs ファイルおよびレガシーの NFS サービス名が利用できない

Red Hat Enterprise Linux 8.0 では、NFS 設定が、Red Hat Enterprise Linux 7 で使用されていた /etc/sysconfig/nfs 設定ファイルから、/etc/nfs.conf に移動しています。

/etc/nfs.conf ファイルが異なる構文を使用します。Red Hat Enterprise Linux 7 からアップグレードすると、Red Hat Enterprise Linux 8 が、すべてのオプションを /etc/sysconfig/nfs から /etc/nfs.conf へ自動的に変換しようとします。

Red Hat Enterprise Linux 7 では、両方の設定ファイルに対応します。Red Hat は、新しい /etc/nfs.conf ファイルを使用して、Red Hat Enterprise Linux のすべてのバージョンの NFS 設定を、自動化した設定システムと互換性を持たせるようにすることを推奨します。

また、以下の NFS サービスエイリアスが削除され、アップストリームの名前に置き換えられました。

  • nfs.service (nfs-server.service に置き換え)
  • nfs-secure.service (rpc-gssd.service に置き換え)
  • rpcgssd.service (rpc-gssd.service に置き換え)
  • nfs-idmap.service (nfs-idmapd.service に置き換え)
  • rpcidmapd.service (nfs-idmapd.service に置き換え)
  • nfs-lock.service (rpc-statd.service に置き換え)
  • nfslock.service (rpc-statd.service に置き換え)

12.2. ストレージ

12.2.1. BOOM ブートマネージャーが、ブートエントリーを作成するプロセスを簡素化

BOOM は、Linux システム用のブートマネージャーで、ブートエントリー設定の BootLoader 仕様に対応するブートローダーを使用します。柔軟なブート設定が可能になり、ブートエントリーの新規作成や変更が容易になります。たとえば、LVM を使用して作成したシステムのスナップショットイメージを起動するためのエントリーです。

BOOM は、既存のブートローダー設定を変更せず、追加エントリーを挿入するだけです。既存の設定は維持され、ディストリビューションの統合 (カーネルのインストールや更新のスクリプトなど) は、以前と同じように引き続き機能します。

BOOM には、ブートエントリーを作成するタスクを容易にする、単純化されたコマンドラインインターフェイス (CLI) および API があります。

12.2.2. Stratis が利用可能に

Stratis は、新しいローカルストレージマネージャーです。ユーザーへの追加機能を備えたストレージプールに、管理されるファイルシステムを提供します。

Stratis を使用すると、次のようなストレージタスクをより簡単に実行できます。

  • スナップショットおよびシンプロビジョニングを管理する
  • 必要に応じてファイルシステムのサイズを自動的に大きくする
  • ファイルシステムを維持する

Stratis ストレージを管理するには、バックグランドサービス stratisd と通信する stratis ユーティリティーを使用します。

Stratis はテクノロジープレビューとして提供されます。

詳細については、Stratis のドキュメント (Stratis ファイルシステムの設定) を参照してください。

12.2.3. LUKS2 が、ボリューム暗号化のデフォルト形式に

RHEL 8 では、レガシーの LUKS (LUKS1) 形式に代わり、LUKS バージョン 2 (LUKS2) の形式が使用されます。dm-crypt サブシステムおよび cryptsetup ツールでは、暗号化ボリュームのデフォルト形式として LUKS2 が使用されるようになりました。LUKS2 は、部分的なメタデータ破損イベントが発生した場合に備えて、暗号化されたボリュームにメタデータの冗長性と自動回復を提供します。

内部の柔軟なレイアウトにより、LUKS2 は将来の機能も可能にします。これは、libcryptsetup に組み込まれた一般的なカーネルキーリングトークンによる自動ロック解除に対応し、カーネルキーリング保持サービスに保存されているパスフレーズを使用して LUKS2 ボリュームのロックを解除します。

以下は、その他の主な機能強化です。

  • ラップ鍵暗号方式を使用した保護鍵の設定
  • Policy-Based Decryption (Clevis) とのより簡単な統合
  • 最大 32 個の鍵スロット (LUKS1 は鍵スロットを 8 個のみ提供します)

詳細は、man ページの cryptsetup(8) および cryptsetup-reencrypt(8) を参照してください。

12.2.4. ブロックデバイスにおけるマルチキュースケジューリング

Red Hat Enterprise Linux 8 では、ブロックデバイスがマルチキュースケジューリングを使用するようになりました。これにより、高速ソリッドステートドライブ (SSD) およびマルチコアシステムでの拡張が向上します。

SCSI マルチキュー (scsi-mq) ドライバーがデフォルトで有効になり、カーネルが scsi_mod.use_blk_mq=Y オプションで起動します。この変更は、アップストリームの Linux カーネルと同じです。

デバイスマッパーマルチパス (DM Multipath) を使用するには、scsi-mq ドライバーがアクティブになっている必要があります。

12.2.5. VDO がすべてのアーキテクチャーに対応

Virtual Data Optimizer (VDO) が、RHEL 8 で対応しているすべてのアーキテクチャーで利用可能になりました。

12.2.6. VDO が読み込みキャッシュに対応しなくなる

読み込みキャッシュ機能は、VDO (Virtual Data Optimizer) から削除されました。読み込みキャッシュは常に VDO ボリュームで無効になり、vdo ユーティリティーの --readCache オプションを使用して有効にできなくなりました。

Red Hat は、異なる実装を使用して、後続の Red Hat Enterprise Linux リリースで VDO 読み取りキャッシュを再実装できるようになりました。

12.2.7. dmraid パッケージが削除される

dmraid パッケージは、Red Hat Enterprise Linux 8 から削除されました。ハードウェアとソフトウェアの RAID ホストバスアダプター (HBA) ヘの対応が必要な場合は、ネイティブの MD software RAID、SNIA RAID Common Disk Data Format (DDF)、Intel® Matrix Storage Manager (IMSM) の形式に対応する mdadm ユーティリティーを使用する必要があります。

12.2.8. Software FCoE および Fibre Channel ではターゲットモードに対応しない

  • Software FCoE - Red Hat Enterprise Linux 8.0 から、NIC Software FCoE ターゲット機能が削除されました。
  • ファイバーチャンネルは、ターゲットモードに対応しません。ターゲットモードは、Red Hat Enterprise Linux 8.0 の qla2xxx QLogic Fibre Channel ドライバーに対して無効になります。

詳しくは、FCoE ソフトウェアの削除 を参照してください。

12.2.9. DM Multipath のマージナルパスの検出が改善

multipathd サービスでは、マージナルパスの検出が改善しました。これにより、マルチパスデバイスが、繰り返し失敗する可能性があるパスを回避して、パフォーマンスを向上します。マージナルパスは、永続的で断続的な I/O エラーがあるパスです。

マージナルパスの動作は、/etc/multipath.conf ファイルの以下のオプションで制御します。

  • marginal_path_double_failed_time
  • marginal_path_err_sample_time
  • marginal_path_err_rate_threshold
  • marginal_path_err_recheck_gap_time

以下の場合、DM Multipath はパスを無効にし、サンプル期間中に繰り返し I/O でテストします。

  • multipath.conf オプションが設定されている
  • 設定した期間内にパスが 2 回失敗する
  • その他のパスが利用できる

このテスト時に、パスのエラー率が、設定されたエラー率よりも大きいと、設定したギャップ時間中 DM Multipath がパスを無視し、それが復旧できるぐらいに適切に機能しているかどうかを再確認します。

詳細は、man ページの multipath.conf を参照してください。

12.2.10. DM Multipath 設定ファイルの overrides セクションが追加

/etc/multipath.conf ファイルには、全デバイスの設定値を設定できる overrides セクションが追加されました。この属性は、デバイスを含むパスに対して、/etc/multipath.conf ファイルの multipaths セクションに指定した属性で上書きした場合を除き、DM Multipath によりすべてのデバイスに使用されます。この機能は、現在は対応していない設定ファイルの devices セクションの all_devs パラメーターに代わるものです。

12.2.11. Broadcom Emulex および Marvell Qlogic のファイバーチャンネルアダプターで NVMe/FC に完全対応

NVMe に対応する Broadcom Emulex アダプターおよび Marvell Qlogic Fibre Channel 32Gbit アダプターとともに使用すると、イニシエーターモードで NVMe/FC (NVMe over Fibre Channel) トランスポートタイプに完全に対応するようになりました。

Red Hat Enterprise Linux に同梱されていた RDMA (Remote Direct Memory Access) プロトコルに加えて、NVMe over Fibre Channel が、NVMe (Nonvolatile Memory Express) プロトコルのファブリックトランスポートタイプとして追加されました。

NVMe/FC を有効にするには、以下を行います。

  • lpfc ドライバーで NVMe/FC を有効にするには、/etc/modprobe.d/lpfc.conf ファイルに以下のオプションを追加します。

    lpfc_enable_fc4_type=3
  • qla2xxx ドライバーで NVMe/FC を有効にするには、/etc/modprobe.d/qla2xxx.conf ファイルに以下のオプションを追加します。

    qla2xxx.ql2xnvmeenable=1

その他の制限:

  • NVMe クラスタリングは、NVMe/FC ではサポートされません。
  • NVMe/FC は、kdump に対応していません。
  • SAN (Storage Area Network) の NVMe/FC からのシステム起動には対応していません。

12.2.12. DIF/DIX (Data Integrity Field/Data Integrity Extension) への対応

DIF/DIX は SCSI 規格への追加分です。対応していると明記されている場合を除き、引き続き HBA およびストレージアレイに対するテクノロジープレビューとなります。

DIF/DIX により DIF (Data Integrity Field) が追加され、一般的に使用される 512 バイトのディスクブロックのサイズが 520 バイトに増えます。DIF は、書き込みの発生時に HBA (Host Bus Adapter) により算出されるデータブロックのチェックサム値を保存します。その後、受信時にストレージデバイスがチェックサムを確認し、データとチェックサムの両方を保存します。読み取りが発生すると、チェックサムが、ストレージデバイス、および受信する HBA により検証されます。

12.2.13. libstoragemgmt-netapp-plugin の削除

libStorageMgmt ライブラリーで使用される libstoragemgmt-netapp-plugin パッケージが削除されました。次の理由でサポートされなくなりました。

  • このパッケージには NetApp 7 モード API が必要ですが、これは NetApp によって段階的に廃止されています。
  • RHEL 8 では、TLS_RSA_WITH_3DES_EDE_CBC_SHA 暗号を使用した TLSv1.0 プロトコルのデフォルトサポートが削除されました。TLS でこのプラグインを使用しても機能しません。

12.2.14. sfdisk および cfdisk からの Cylinder-Head-Sector アドレス指定の削除

Cylinder-Head-Sector (CHS) アドレス指定は、最新のストレージデバイスではもはや役に立ちません。sfdisk および cfdisk コマンドからオプションとして削除されました。RHEL 8 以降、次のオプションは使用できません。

  • -C, --cylinders number
  • -H, --heads number
  • -S, --sectors number

詳細は、sfdisk (8) および cfdisk (8) man ページを参照してください。

12.3. LVM

12.3.1. 共有ストレージデバイスを管理する clvmd の削除

LVM は、共有ストレージデバイスの管理に clvmd (cluster lvm daemon) を使用しなくなりました。代わりに、LVM が lvmlockd (lvm lock daemon) を使用するようになりました。

  • lvmlockd の詳細は、man ページの lvmlockd(8) を参照してください。共有ストレージを使用する一般的な方法は、man ページの lvmsystemid(7) を参照してください。
  • Pacemaker クラスターで LVM を使用する方法は、LVM-activate リソースエージェントのヘルプ画面を参照してください。
  • Red Hat High Availability クラスターで共有論理ボリュームを設定する手順例は、クラスターに GFS2 ファイルシステムを設定 を参照してください。

12.3.2. lvmetad デーモンの削除

LVM は、メタデータのキャッシュに lvmetad デーモンを使用しなくなり、常にディスクからメタデータを常に読み込みます。LVM ディスクの読み込みが減っており、それによりキャッシュの利点が減ります。

論理ボリュームの自動アクティベーションは、lvm.conf 設定ファイルの use_lvmetad 設定に間接的に関連付けられていました。lvm.conf ファイルに auto_activation_volume_list を設定し続ける自動アクティベーションを無効にすることが適切な方法となります。

12.3.3. LVM が、GFS プールボリュームマネージャー、または lvm1 メタデータ形式でフォーマットしたデバイスを管理できない

LVM が、GFS プールのボリュームマネージャー、または lvm1 メタデータ形式でフォーマットしたデバイスを管理できなくなりました。Red Hat Enterprise Linux 4 を導入する前に論理ボリュームを作成した場合は、この影響を受ける場合があります。lvm1 形式を使用したボリュームグループは、vgconvert コマンドを使用して lvm2 形式に変換する必要があります。

12.3.4. LVM ライブラリーおよび LVM Python バインディングが削除される

lvm2-python-libs パッケージにより提供される lvm2app ライブラリーおよび LVM Python バインディングが削除されました。Red Hat は、代わりに以下のソリューションを推奨します。

  • LVM D-Bus API と lvm2-dbusd サービスの組み合わせ。このソリューションでは Python バージョン 3 を使用する必要があります。
  • JSON 形式の LVM コマンドラインユーティリティー。この形式は、lvm2 パッケージのバージョン 2.02.158 以降で利用できます。
  • C/C++ の AppStream に含まれる libblockdev ライブラリー

Red Hat Enterprise Linux 8 へアップグレードする前に、削除したライブラリーおよび D-Bus API へのバインディングを使用して、アプリケーションをポートする必要があります。

12.3.5. LVM ミラーのログをミラーリングする機能が削除される

ミラー化された LVM ボリュームでのミラー化されたミラーログ機能が非推奨となりました。Red Hat Enterprise Linux (RHEL) 8 では、ミラー化されたミラーログを持つ LVM ボリュームの作成またはアクティブ化がサポートされなくなりました。

推奨される代替ソリューションは以下のとおりです。

  • RAID1 LVM ボリューム。RAID1 ボリュームの優れた点は、劣化モードにおいても機能し、一時的な障害の後に回復できることです。
  • ディスクのミラーログ。ミラー化されたミラーログをディスクのミラーログに変換するには、lvconvert --mirrorlog disk my_vg/my_lv コマンドを実行します。

第13章 高可用性およびクラスター

Red Hat Enterprise Linux 8 では、pcs は、クラスター通信に、Corosync 3 クラスターエンジンと、Kronosnet (knet) ネットワーク抽象化層にフルサポートを提供します。既存の RHEL 7 クラスターから RHEL 8 クラスターへのアップグレードを計画すると、以下のような事項を検討する必要があります。

  • アプリケーションのバージョン - RHEL 8 クラスターで必要なのは、どのバージョンの高可用性アプリケーションですか ?
  • アプリケーションのプロセスの順番 - アプリケーションのプロセスを開始および停止する際に必要なのはどの変更ですか ?
  • クラスターインフラストラクチャー - RHEL 8 の pcs で複数のネットワーク接続に対応するようになったため、クラスターが認識する NIC の数は変更しますか ?
  • 必要なパッケージ - 新しいクラスターで同じパッケージをすべてインストールする必要はありますか ?

RHEL 8 で Pacemaker クラスターを実行するための、以下の事項またはその他の事項により、RHEL 7 クラスターから RHEL 8 クラスターへのインプレースアップグレードを実行することはできず、RHEL 8 で新しいクラスターを設定する方法があります。RHEL 7 および RHEL 8 の両方を実行しているノードを含むクラスターを実行することはできません。

また、アップグレードを実行する前に、次の計画を立てる必要があります。

  • 最終カットオーバー - アプリケーションのダウンタイムを短くするために、以前のクラスターで実行しているアプリケーションを停止して、新しいクラスターで開始するためにはどのようなプロセスがありますか ?
  • テスト - アップグレード前に、開発環境またはテスト環境で、アップグレード戦略をテストすることはできますか ?

RHEL 7 と RHEL 8 における、クラスター作成および管理における主な相違点は、以下のセクションで説明します。

13.1. pcs cluster setup コマンド、pcs cluster node add コマンド、および pcs cluster node remove コマンドの新しい形式

Red Hat Enterprise Linux 8 の pcs では、ノード名の使用に完全に対応します。これは、現在は必須であり、ノード識別子でノードアドレスを置き換えます。ノードアドレスは任意となりました。

  • pcs host auth コマンドで、ノードアドレスがデフォルトでノード名となります。
  • pcs cluster setup コマンドおよび pcs cluster node add コマンドでは、ノードアドレスが、pcs host auth コマンドで指定したノードアドレスにデフォルト設定されます。

この変更により、クラスターのセットアップ、クラスターへのノードの追加、およびクラスターからのノードの削除を行うコマンドの形式が変更になりました。新しいコマンド形式の詳細は、pcs cluster setup コマンド、pcs cluster node add コマンド、および pcs cluster node remove コマンドのヘルプ表示を参照してください。

13.2. マスターリソースから、昇格可能なクローンリソースに名前が変更

Red Hat Enterprise Linux (RHEL) 8 は Pacemaker 2.0 に対応しています。ここでは、マスター/スレーブのリソースが、別の種類のリソースではなくなり、promotable メタ属性が true に設定されている標準のクローンリソースになりました。今回の更新に対応するために、以下の変更が行われました。

  • pcs コマンドでマスターリソースを作成することができなくなりました。代わりに、昇格可能な クローンリソースを作成できます。関連キーワードおよびコマンドが、master から promotable に変わりました。
  • 既存のすべてのマスターリソースが昇格可能なクローンリソースとして表示されます。
  • RHEL7 クラスターでは昇格可能なクローンに対応しないため、Web UI で RHEL7 クラスターを管理する場合は、マスターリソースが引き続きマスターと呼ばれます。

13.3. クラスターのノードを認証する新しいコマンド

Red Hat Enterprise Linux (RHEL) 8 では、クラスターでノードの認証に使用されるコマンドに以下の変更が加えられています。

  • 認証用の新しいコマンドは pcs host auth です。このコマンドにより、ホスト名、アドレス、および pcsd ポートを指定できます。
  • pcs cluster auth コマンドは、ローカルクラスターのノードのみを認証し、ノードリストは許可しません、
  • 各ノードにアドレスを指定できるようになりました。これにより、pcs/pcsd は指定したアドレスを使用して各ノードと通信します。このアドレスは、corosync が内部で使用しているアドレスとは異なる場合があります。
  • pcs pcsd clear-auth コマンドは、pcs pcsd deauth コマンドおよび pcs host deauth コマンドに置き換えられました。この新しいコマンドを使用すると、ユーザーは全ホストの認証解除だけでなく、1 台のホストでも認証解除できます。
  • 以前は、ノード認証が双方向で行われており、pcs cluster auth コマンドを実行すると、指定したすべてのノードが互いに認証されていました。ただし、pcs host auth コマンドを使用すると、指定したノードに対してローカルホストだけが認証されます。これにより、このコマンドを実行する際に、どのノードをどのノードに認証させるかをより適切に制御できます。クラスターを設定する場合や、ノードを追加する際に、pcs がクラスターのトークンを自動的に同期するため、クラスター内のすべてのノードが以前と同じように自動的に認証され、クラスターノードが互いに通信できます。

これらの変更は後方互換性がないことに注意してください。RHEL 7 システムで認証されたノードは、再認証する必要があります。

13.4. Red Hat High Availability のアクティブ/パッシブなクラスターにおける LVM ボリューム

RHEL 8 の Red Hat HA アクティブ/パッシブのリソースとして LVM ボリュームを設定すると、LVM-activate リソースとしてボリュームを設定します。RHEL 7 では、このようなボリュームを LVM リソースとして設定しました。RHEL 8 のアクティブ/パッシブクラスターで LVM ボリュームをリソースとして設定する方法を含むクラスターの設定手順の例は、Red Hat High Availability クラスターのアクティブ/パッシブな NFS サーバーの設定 を参照してください。

13.5. Red Hat High Availability のアクティブ/アクティブクラスターにおける共有 LVM ボリューム

RHEL 8 では、LVM は、clvmd の代わりに LVM ロックデーモン lvmlockd を使用して、アクティブ/アクティブクラスターで共有ストレージデバイスを管理します。これにより、GFS2 ファイルシステムを共有論理ボリュームとしてマウントできる論理ボリュームを設定する必要があります。

また、これにより、LVM が有効な リソースエージェントを使用して LVM ボリュームを管理し、lvmlockd リソースエージェントを使用して lvmlockd を管理する必要があります。

共有論理ボリュームを使用して GFS2 ファイルシステムを含む RHEL 8 Pacemaker クラスターを設定する全手順は、クラスターでの GFS2 ファイルシステムの設定 を参照してください。

13.6. RHEL 8 Pacemaker クラスター内の GFS2 ファイルシステム

RHEL 8 では、LVM は、「共有ストレージデバイスを管理する clvmd の削除」 で説明されているように、アクティブ/アクティブクラスターで共有ストレージデバイスを管理するために、clvmd の代わりに、LVM ロックデーモン lvmlockd を使用します。

RHEL 8 クラスターに RHEL 7 システムを作成した GFS2 ファイルシステムを使用するには、RHEL 8 システムで共有論理ボリュームとしてマウントされる論理ボリュームを設定して、ボリュームグループのロックを開始する必要があります。既存の RHEL 7 論理ボリュームを、RHEL 8 Pacemaker クラスターとして使用するように設定する手順は、RHEL7 から RHEL8 へ GFS2 ファイルシステムの移行 を参照してください。

第14章 シェルおよびコマンドラインツール

14.1. ローカライゼーションが複数のパッケージで配布

RHEL 8 では、1 つの glibc-common パッケージで、ロケールと翻訳が提供されなくなりました。代わりに、すべてのロケールと言語が glibc-langpack-CODE パッケージで利用できるようになりました。また、デフォルトですべてのロケールがインストールされず、インストーラーで選択した言語だけがインストールされます。その他の言語は、必要に応じてロケールパッケージを個別にインストールする必要があります。

システムにインストールされているすべてのパッケージに対する翻訳、ディクショナリー、およびロケールを含む追加のアドオンパッケージをインストールするメタパッケージは、langpacks と呼ばれます。

詳細は、langpacks の使用 を参照してください。

14.2. ユーザー名およびグループ名がすべて数値の場合はサポート対象外

Red Hat Enterprise Linux (RHEL) 8 の useradd コマンドおよび groupadd コマンドでは、数値だけのユーザー名とグループ名を使用することができません。ユーザー ID およびグループ ID は数値となるため、数値だけのユーザー名およびグループ名を使用すると、ユーザー名とユーザー ID、またはグループ名とグループ ID を組み合わせて使用するツールで、混乱が生まれるためです。

コマンドラインでの新規ユーザーの追加 に関する詳細を参照してください。

14.3. nobody ユーザーが nfsnobody に置き換え

Red Hat Enterprise Linux (RHEL) 7 では、nobody ユーザーとグループのペアの ID は 99 でした。nfsnobody ユーザーとグループのペアの ID は 65534 で、デフォルトのカーネルオーバーフロー ID になります。

これはいずれも、RHEL 8 では、nobody ユーザーおよびグループのペア (ID 65534) に統合されます。RHEL 8 では、nfsnobody ペアは作成されません。

この変更により、nobody が所有し、NFS とは無関係のファイルに関する混乱が軽減されます。

14.4. バージョン制御システム

RHEL 8 は、次のバージョン管理システムを提供します。

  • Git 2.18 は、分散アーキテクチャーを持つ分散型リビジョン管理システムです。
  • Mercurial 4.8 は、大規模プロジェクトを効率的に処理するために設計された、軽量の分散バージョン管理システムです。
  • Subversion 1.10 は、集中型管理システムです。

RHEL 7 で利用できた Concurrent Versions System (CVS) および Revision Control System (RCS) は、RHEL 8 では配布されていません。

14.4.1. Subversion 1.10 への主な変更点

Subversion 1.10 には、RHEL 7 で配布されたバージョン 1.7 以降に追加された新機能と、次の互換性の変更が含まれています。

  • 言語バインディングに対応するのに使用される Subversion ライブラリーにおける非互換性のため、Subversion 1.10Python 3 バインディングは利用できません。したがって、SubversionPython バインディングを必要とするアプリケーションには対応していません。
  • Berkeley DB に基づくリポジトリーには対応しなくなりました。アップグレード前に、svnadmin dump コマンドを使用して、Subversion 1.7 で作成したリポジトリーをバックアップします。RHEL 8 をインストールした後、svnadmin load コマンドを使用してリポジトリーを復元します。
  • RHEL 7 の Subversion 1.7 クライアントがチェックアウトした既存のワーキングコピーは、Subversion 1.10 で使用する前に新しい形式にアップグレードする必要があります。RHEL 8 をインストールしたら、各ワーキングコピーで svn upgrade コマンドを実行します。
  • https:// を使用してリポジトリーにアクセスするスマートカード認証には対応しなくなりました。

14.5. パッケージが crontab エントリーから systemd タイマーへ移行

crontab エントリーで使用されていたパッケージで、systemd タイマーが使用されるようになりました。以下のコマンドを実行して、systemd タイマーエントリーのあるパッケージを検索します。

$ repoquery --qf %{name} -f '/usr/lib/systemd/system/*.timer'
$ repoquery --qf %{name} -f '/etc/cron./'

第15章 動的プログラミング言語、Web サーバー、およびデータベースサーバー

15.1. 動的プログラミング言語

15.1.1. Python への主な変更点

15.1.1.1. Python 3 が RHEL 8 におけるデフォルトの Python 実装に

Red Hat Enterprise Linux 8 には、Python 3 の複数のバージョンが同梱されています。Python 3.6 は、RHEL 8 のライフサイクル全体でサポートされる予定です。それぞれのパッケージは、デフォルトではインストールされない場合があります。

Python 2.7 は、python2 パッケージで入手できます。ただし、Python 3 への移行をより円滑に進められるように、Python 2 のライフサイクルは短くなっています。

詳細は、Python のバージョン を参照してください。

デフォルトの python パッケージまたはバージョンを指定しない /usr/bin/python 実行ファイルは、いずれも RHEL 8 では配布されません。python3 または python2 を直接使用することが推奨されます。もしくは、管理者が、alternatives コマンドを使用して、バージョン管理外の python コマンドを設定できます。バージョン管理されていない Python の設定 を参照してください。

15.1.1.2. Python 2 から Python 3 への移行

開発者は、Python 2 で記述したコードを Python 3 に移行できます。

大規模なコードベースを Python 3 に移行する方法は The Conservative Python 3 Porting Guide を参照してください。

この移行が終了すると、元の Python 2 コードは Python 3 インタープリターにより解釈できるようになり、同様に Python 2 インタープリターは解釈できるままとなることに注意してください。

15.1.1.3. バージョンを指定しない Python の設定

システム管理者は、alternatives コマンドを使用して、/usr/bin/python に、バージョンを管理しない python コマンドを設定できます。必要なパッケージ (python3、python38、python39、python3.11、または python2) は、バージョンを指定しないコマンドをそれぞれのバージョンに設定する前にインストールする必要があります。

重要

/usr/bin/python 実行ファイルは 代替 システムによって制御されます。更新時に手動の変更が上書きされる可能性があります。

その他の Python 関連のコマンド (pip3 など) には、バージョンを指定しないで設定できるバリアントがあります。

15.1.1.3.1. バージョンを指定しない python コマンドを直接設定

バージョンを指定しない python コマンドを、選択した Python バージョンに直接設定できます。

前提条件

  • 必要なバージョンの Python がインストールされていることを確認する。

手順

  • バージョンを指定しない python コマンドを Python 3.6 に設定するには、以下を使用します。

    # alternatives --set python /usr/bin/python3
  • バージョンを指定しない python コマンドを Python 3.8 に設定するには、以下を使用します。

    # alternatives --set python /usr/bin/python3.8
  • バージョンを指定しない python コマンドを Python 3.9 に設定するには、以下を使用します。

    # alternatives --set python /usr/bin/python3.9
  • バージョンを指定しない python コマンドを Python 3.11 に設定するには、以下を使用します。

    # alternatives --set python /usr/bin/python3.11
  • バージョンを指定しない python コマンドを Python 3.11 に設定するには、以下を使用します。

    # alternatives --set python /usr/bin/python3.12
  • バージョンを指定しない python コマンドを Python 2 に設定するには、以下のコマンドを実行します。

    # alternatives --set python /usr/bin/python2
15.1.1.3.2. バージョンを指定しない python コマンドを、必要な Python バージョンに対話的に設定する

バージョンを指定しない python コマンドを、必要な Python バージョンに対話的に設定できます。

前提条件

  • 必要なバージョンの Python がインストールされていることを確認する。

手順

  1. バージョンを指定しない python コマンドを対話的に設定するには、次のコマンドを実行します。

    # alternatives --config python
  2. 表示されたリストから必要なバージョンを選択します。
  3. この設定をリセットし、バージョンを指定しない python コマンドを削除するには、次のコマンドを実行します。

    # alternatives --auto python
15.1.1.3.3. 関連情報
  • man ページの alternatives(8) および unversioned-python(1)
15.1.1.4. Python スクリプトでのインタープリターディレクティブの処理

Red Hat Enterprise Linux 8 では、実行可能な Python スクリプトは、少なくとも主要な Python バージョンを明示的に指定するインタープリターディレクティブ (別名 hashbangs または shebangs) を使用することが想定されます。以下に例を示します。

#!/usr/bin/python3
#!/usr/bin/python3.6
#!/usr/bin/python3.8
#!/usr/bin/python3.9
#!/usr/bin/python3.11
#!/usr/bin/python3.12
#!/usr/bin/python2

/usr/lib/rpm/redhat/brp-mangle-shebangs BRP (buildroot policy) スクリプトは、RPM パッケージをビルドする際に自動的に実行され、実行可能なすべてのファイルでインタープリターディレクティブを修正しようとします。

BRP スクリプトは、以下のようにあいまいなインタープリターディレクティブを含む Python スクリプトを検出すると、エラーを生成します。

#!/usr/bin/python

または

#!/usr/bin/env python
15.1.1.4.1. Python スクリプトでインタープリターディレクティブの変更

RPM ビルド時にビルドエラーが発生する Python スクリプト内のインタープリターディレクティブを変更します。

前提条件

  • Python スクリプトのインタープリターディレクティブの一部でビルドエラーが発生する。

手順

インタープリターディレクティブを変更するには、以下のタスクのいずれかを実行します。

  • platform-python-devel パッケージから pathfix.py スクリプトを適用します。

    # pathfix.py -pn -i %{__python3} PATH …​

    複数の PATH を指定できます。PATH がディレクトリーの場合、pathfix.py はあいまいなインタープリターディレクティブを持つスクリプトだけでなく、^[a-zA-Z0-9_]+\.py$ のパターンに一致する Python スクリプトを再帰的にスキャンします。このコマンドを %prep セクション、または %install セクションに追加します。

  • パッケージ化した Python スクリプトを、想定される形式に準拠するように変更します。この目的のために、pathfix.py は、RPM ビルドプロセス以外でも使用できます。pathfix.py を RPM ビルド以外で実行する場合は、上記の例の %{__python3} を、/usr/bin/python3 などのインタープリターディレクティブのパスに置き換えます。

パッケージ化された Python スクリプトに Python 3.6 以外のバージョンが必要な場合は、上記のコマンドを調整して必要なバージョンを含めます。

15.1.1.4.2. カスタムパッケージの /usr/bin/python3 インタープリターディレクティブの変更

デフォルトでは、/usr/bin/python3 の形式でのインタープリターディレクティブは、Red Hat Enterprise Linux のシステムツールに使用される platform-python パッケージから Python を参照するインタープリターディレクティブに置き換えられます。カスタムパッケージの /usr/bin/python3 インタープリターディレクティブを変更して、AppStream リポジトリーからインストールした特定バージョンの Python を参照できます。

手順

  • Python の特定バージョンのパッケージを構築するには、対応する python パッケージの python*-rpm-macros サブパッケージを SPEC ファイルの BuildRequires セクションに追加します。たとえば、Python 3.6 の場合は、以下の行を追加します。

    BuildRequires:  python36-rpm-macros

    これにより、カスタムパッケージの /usr/bin/python3 インタープリターディレクティブは、自動的に /usr/bin/python3.6 に変換されます。

注記

BRP スクリプトがインタープリターディレクティブを確認したり、変更したりしないようにするには、以下の RPM ディレクティブを使用します。

%undefine __brp_mangle_shebangs
15.1.1.5. net-snmp パッケージの Python バインディングが利用できない

Net-SNMP のツールスイートは、RHEL 8 のデフォルトの Python の実装である Python 3 にバインディングを提供しません。これにより、python-net-snmp パッケージ、python2-net-snmp パッケージ、または python3-net-snmp パッケージが RHEL 8 では使用できません。

15.1.2. PHP への主な変更点

Red Hat Enterprise Linux 8 には PHP 7.2 が同梱されています。このバージョンには、RHEL 7 で利用できた PHP 5.4 に対する重要な変更が追加されています。

  • PHP はデフォルトで FastCGI Process Manager (FPM) を使用します (スレッド化された httpd で安全に使用できます)。
  • php_value 変数と php-flag 変数が httpd 設定ファイルで使用されなくなり、代わりにプール設定の /etc/php-fpm.d/*.conf で設定する必要があります。
  • PHP スクリプトのエラーと警告のログは、/var/log/httpd/error.log ではなく /var/log/php-fpm/www-error.log ファイルに記録されます。
  • PHP の max_execution_time 設定変数を変更する時は、変更した値に合わせて httpd ProxyTimeout 設定を増やす必要があります。
  • PHP スクリプトを実行するユーザーが、FPM プール設定 (apache ユーザーがデフォルトとなる /etc/php-fpm.d/www.conf ファイル) に設定されるようになりました。
  • 設定を変更した場合、または新しい拡張機能をインストールした場合は、php-fpm サービスを再起動する必要があります。
  • zip 拡張が、php-common から、別のパッケージ php-pecl-zip に移動しました。

以下の拡張機能が削除されました。

  • aspell
  • mysql (拡張機能の mysqli および pdo_mysql は、php-mysqlnd パッケージで引き続き利用できます)
  • memcache

15.1.3. Perl への主な変更点

RHEL 8 で提供される Perl 5.26 では、RHEL 7 で提供されていたバージョンに以下のような変更が追加されました。

  • Unicode 9.0 に対応するようになりました。
  • 新しい SystemTap のプローブ op-entryloading-file、および loaded-file が提供されるようになりました。
  • パフォーマンスを向上させるために、スカラーの割り当て時に、コピーオンライトメカニズムが使用されます。
  • IPv4 ソケットおよび IPv6 ソケットを透過的に処理するために IO::Socket::IP モジュールが追加されました。
  • 構造化された方法で perl -V データにアクセスするために、Config::Perl::V モジュールが追加されました。
  • Comprehensive Perl Archive Network (CPAN) リポジトリーからモジュールを取得、抽出、ビルド、およびインストールする cpanm ユーティリティーを同梱する perl-App-cpanminus パッケージが追加されました。
  • セキュリティー上の理由により、@INC モジュールの検索パスから、現在のディレクトリー (.) が削除されました。
  • 上記の動作上の変更によりファイルの読み込みに失敗した時に、do ステートメントが非推奨の警告を返すようになりました。
  • do subroutine(LIST) 呼び出しに対応しなくなり、構文エラーが発生するようになりました。
  • ハッシュがデフォルトでランダム化されるようになりました。ハッシュから鍵と値が返される順序は、perl の実行ごとに変わります。ランダム化を無効にするには、PERL_PERTURB_KEYS 環境変数を 0 に設定します。
  • 正規表現のパターンで、エスケープされていないリテラルの { 文字が使用できなくなりました。
  • $_ 変数に対する語彙的なスコープへの対応が削除されました。
  • 配列またはハッシュに defined 演算子を使用すると、致命的なエラーが発生します。
  • UNIVERSAL モジュールから関数をインポートすると、致命的なエラーが発生します。
  • find2perl ツール、s2p ツール、a2pc2ph ツール、および pstruct ツールが削除されました。
  • ${^ENCODING} 機能が削除されました。encoding プラグマのデフォルトモードに対応しなくなりました。UTF-8 以外のエンコーディングでソースコードを記述する場合は、エンコーディングの Filter オプションを使用します。
  • アップストリームに合わせて、perl パッケージが変更になりました。perl パッケージはコアモジュール群をインストールし、/usr/bin/perl インタープリターは perl-interpreter パッケージで提供されます。以前のリリースでは、perl パッケージに最小限のインタープリターだけが同梱され、perl-core パッケージにインタープリターとコアモジュールの両方が同梱されていました。
  • Perl モジュールの IO::Socket::SSL は、./certs/my-ca.pem ファイルまたは ./ca ディレクトリーから認証局の証明書、./certs/server-key.pem ファイルからサーバーの秘密鍵、./certs/server-cert.pem ファイルからサーバーの証明書、./certs/client-key.pem ファイルからクライアントの秘密鍵、./certs/client-cert.pem ファイルからクライアント証明書を読み込まなくなりました。代わりにファイルのパスを明示的に指定します。

15.1.4. Ruby への主な変更点

RHEL 8 では、RHEL 7 に同梱されていた Ruby 2.5 に新機能および機能強化を追加した Ruby 2.0.0 が提供されます。以下は、主な変更点です。

  • インクリメンタルガベージコレクターが追加されました。
  • Refinements 構文が追加されました。
  • シンボルは、ガベージコレクションが行われるようになりました。
  • 安全レベルの $SAFE=2 および $SAFE=3 が廃止されました。
  • Fixnum クラスと Bignum クラスが、Integer クラスに統合されました。
  • Hash クラスの最適化、インスタンス変数へのアクセスの向上、ならびに Mutex クラスの小型化および高速化により、パフォーマンスが向上しました。
  • 古い API が非推奨になりました。
  • RubyGemsRakeRDocPsychMinitesttest-unit などのバンドルされたライブライリーが更新されました。
  • Ruby とともに配布されていた mathnDLext/tkXMLRPC などのライブラリーは非推奨になり、同梱されなくなりました。
  • SemVer バージョン管理スキームが、Ruby バージョン管理に使用されるようになりました。

15.1.5. SWIG への主な変更点

RHEL 8 には、SWIG (Simplified Wrapper and Interface Generator) バージョン 3.0 が含まれています。RHEL 7 に同梱されていたバージョン 2.0 に新機能、機能拡張、およびバグ修正が数多く追加されました。特に注目すべきは、C++11 標準仕様への対応が実装されたことです。SWIG は、Go 1.6PHP 7Octave 4.2、および Python 3.5 に対応するようになりました。

15.1.6. Node.js が RHEL に新登場

JavaScript プログラミング言語で高速でスケーラブルなネットワークアプリケーションを構築するソフトウェア開発プラットフォームである Node.js が RHEL で初めて提供されます。以前は、Software Collection からしか入手できませんでした。RHEL 8 では Node.js 10 が提供されます。

15.2. Tcl

Tool command language (Tcl) は、動的なプログラミング言語です。この言語のインタープリターと C ライブラリーは、tcl パッケージにより提供されます。

Tk とともに Tcl を使用すると (Tcl/Tk)、プラットフォーム間共通の GUI アプリケーションを作成できます。Tk は、tk パッケージから入手できます。

Tk は次のいずれかを参照できることに注意してください。

  • 複数言語のプログラミングツールキット
  • Tk C ライブラリーバインディングは、複数の言語 (C、Ruby、Perl、Python など) で利用できます。
  • Tk コンソールのインスタンスを作成する wish インタープリター
  • 特定の Tcl インタープリターに新しいコマンドを多数追加する Tk の拡張

15.2.1. Tcl/Tk 8.6 に関する注目すべき変更点

RHEL 8 では、Tcl/Tk バージョン 8.6 が使用されます。Tcl/Tk バージョン 8.5 から、以下のような変更が追加されています。

  • オブジェクト指向のプログラミングサポート
  • スタックレス評価の実装
  • 強化された例外処理
  • Tcl で構築およびインストールしたサードパーティーパッケージのコレクション
  • 有効なマルチスレッド操作
  • SQL データベースを提供するスクリプトサポート
  • IPv6 ネットワーキングサポート
  • ビルドインの zlib 圧縮
  • リスト処理

    新しい 2 つのコマンド lmap および dict map が利用できます。これにより、Tcl コンテナーにおける変換の表現が可能になります。

  • スクリプトにより積み上げられたチャンネル

    新しい 2 つのコマンド chan push および chan pop が利用できるため、I/O チャンネルへ、または I/O チャンネルからの変換を追加または削除できます。

Tcl/Tk version 8.6 の変更点および新機能の詳細は、以下の参考資料を参照してください。

Tcl/Tk 8.6 に移行する必要がある場合は、Tcl/Tk を使用してタスクのスクリプトを作成したユーザーのパスの移行 を参照してください。

15.3. Web サーバー

15.3.1. Apache HTTP Server への主な変更点

Apache HTTP Server が、RHEL 7 のバージョン 2.4.6 から、RHEL 8 のバージョン 2.4.37 に更新されました。この更新バージョンには新機能がいくつか含まれていますが、外部モジュールの設定および Application Binary Interface (ABI) のレベルでは、RHEL 7 バージョンとの後方互換性を維持します。

新機能は次のとおりです。

  • httpd モジュール含まれる mod_http2 パッケージにより、HTTP/2 に対応するようになりました。
  • systemd ソケットのアクティベーションが対応します。詳細は、man ページの httpd.socket(8) を参照してください。
  • 新しいモジュールが複数追加されています。

    • mod_proxy_hcheck - プロキシーのヘルスチェックモジュール
    • mod_proxy_uwsgi - Web Server Gateway Interface (WSGI) プロキシー
    • mod_proxy_fdpass - クライアントのソケットを別のプロセスに渡す
    • mod_cache_socache - HTTP キャッシュ (例: memcache バックエンドを使用)
    • mod_md - ACME プロトコルの SSL/TLS 証明書サービス
  • 以下のモジュールはデフォルトで読み込まれるようになりました。

    • mod_request
    • mod_macro
    • mod_watchdog
  • 新しいサブパッケージ httpd-filesystem が追加されています。これには、Apache HTTP Server の基本的なディレクトリーレイアウト (ディレクトリーの適切な権限を含む) が含まれます。
  • インスタンス化されたサービスのサポート httpd@.service が導入されました。詳細は、man ページの httpd.service を参照してください。
  • 新しい httpd-init.service%post script に置き換わり、自己署名の鍵ペア mod_ssl を作成します。
  • (Let's Encrypt などの証明書プロバイダーで使用するため) 自動証明書管理環境 (ACME) プロトコルを使用した、TLS 証明書の自動プロビジョニングおよび更新に、mod_md パッケージで対応するようになりました。
  • Apache HTTP Server が、PKCS#11 モジュールを利用して、ハードウェアのセキュリティートークンから、TLS 証明書および秘密鍵を直接読み込むようになりました。これにより、mod_ssl 設定で、PKCS#11 URL を使用して、SSLCertificateKeyFile ディレクティブおよび SSLCertificateFile ディレクティブに、TLS 秘密鍵と、必要に応じて TLS 証明書をそれぞれ指定できるようになりました。
  • /etc/httpd/conf/httpd.conf ファイルの新しい ListenFree ディレクティブに対応するようになりました。

    Listen ディレクティブと同様、ListenFree は、サーバーがリッスンする IP アドレス、ポート、または IP アドレスとポートの組み合わせに関する情報を提供します。ただし、ListenFree を使用すると、IP_FREEBIND ソケットオプションがデフォルトで有効になります。したがって、httpd は、ローカルではない IP アドレス、または今はまだ存在していない IP アドレスにバインドすることもできます。これにより、httpd がソケットをリッスンできるようになり、httpd がバインドしようとするときに、基になるネットワークインターフェイスまたは指定した動的 IP アドレスを起動する必要がなくなります。

    ListenFree ディレクティブは、現在 RHEL 8 でのみ利用できます。

    ListenFree の詳細は、以下の表を参照してください。

    表15.1 ListenFree ディレクティブの構文、状態、およびモジュール
    構文状態モジュール

    ListenFree [IP-address:]portnumber [protocol]

    MPM

    event、worker、prefork、mpm_winnt、mpm_netware、mpmt_os2

その他の主な変更点は次の通りです。

  • 以下のモジュールが削除されました。

  • RHEL 8 の Apache HTTP Server が使用するデフォルトの DBM 認証データベースのデフォルトタイプが、SDBM から db5 に変更になりました。
  • Apache HTTP Servermod_wsgi モジュールが Python 3 に更新されました。WSGI アプリケーションは Python 3 でしか対応していないため、Python 2 から移行する必要があります。
  • Apache HTTP Server を使用してデフォルトで設定されたマルチプロセッシングモジュール (MPM) は、マルチプロセスのフォークモデル (prefork として知られています) から、高パフォーマンスのマルチスレッドモデル event に変更しました。

    スレッドセーフではないサードパーティーのモジュールは、交換または削除する必要があります。設定した MPM を変更するには、/etc/httpd/conf.modules.d/00-mpm.conf ファイルを編集します。詳細は、man ページの httpd.service(8) を参照してください。

  • suEXEC によりユーザーに許可される最小 UID および GID はそれぞれ 1000 および 500 です (以前は 100 および 100 でした)。
  • /etc/sysconfig/httpd ファイルは、httpd サービスへの環境変数の設定に対応するインターフェイスではなくなりました。systemd サービスに、httpd.service(8) の man ページが追加されています。
  • httpd サービスを停止すると、デフォルトで自動停止が使用されます。
  • mod_auth_kerb モジュールが、mod_auth_gssapi モジュールに置き換わりました。

デプロイ方法は Apache HTTP Web サーバーの設定 を参照してください。

15.3.2. nginx Web サーバーが RHEL に新登場

RHEL 8 では、HTTP などのプロトコルに対応する Web サーバーおよびプロキシーサーバー nginx 1.14 が導入され、同時実行性とパフォーマンスが高くなり、メモリー使用量が少なくなりました。nginx は、以前は、Software Collection からしか入手できませんでした。

nginx の Web サーバーは、PKCS#11 モジュールを利用してハードウェアセキュリティートークンから直接 TLS 秘密鍵を読み込むようになりました。これにより、nginx 設定で、PKCS#11 の URL を使用して TLS 秘密鍵を ssl_certificate_key ディレクティブに指定できるようになりました。

15.3.3. Apache Tomcat は RHEL 8.0 で削除され、RHEL 8.8 で再導入される

Apache Tomcat サーバーは Red Hat Enterprise Linux 8.0 から削除され、RHEL 8.8 で再導入されました。Tomcat は、Java Servlet および JavaServer Pages テクノロジーの公式リファレンス実装で使用されるサーブレットコンテナーです。Java Servlet および JavaServer Pages の仕様は、Java Community Process に基づいて Sun によって開発されました。Tomcat はオープンな参加型環境で開発され、Apache ソフトウェアライセンスバージョン 2.0 に基づいてリリースされています。

サーブレットコンテナーを必要とする RHEL 8.8 より前のマイナーバージョンのユーザーは、JBoss Web Server を使用できます。

15.4. プロキシーキャッシュサーバー

15.4.1. Varnish Cache が RHEL に新登場

高パフォーマンスの HTTP 逆ポリシーである Varnish Cache が、RHEL で初めて提供されました。以前は、Software Collection からしか入手できませんでした。Varnish Cache は、将来の同等の要求で応答時間およびネットワークの帯域幅を削減するのに使用されるメモリーに、ファイルまたはファイルの断片を保存します。RHEL 8.0 は、Varnish Cache 6.0 で配布されています。

15.4.2. Squid への主な変更点

RHEL 8.0 は、Web クライアント、対応する FTP、Gopher、および HTTP のデータオブジェクト用の高パフォーマンスのプロキシーキャッシュサーバーである Squid 4.4 で配布します。このリリースは、RHEL 7 で利用可能なバージョン 3.5 に新しい機能、機能強化、バグ修正を多数提供します。

以下は、主な変更点です。

  • ヘルパーのキューサイズが変更可能
  • ヘルパー同時実行チャンネルへの変更
  • ヘルパーバイナリーへの変更
  • Internet Content Adaptation Protocol (ICAP) の保護
  • 対称型マルチプロセッシング (SMP) への対応が改善
  • プロセス管理が改善
  • SSL への対応が削除
  • Edge Side Includes (ESI) カスタムパーサーが削除
  • 複数の設定変更

15.5. データベースサーバー

RHEL 8 は、次のデータベースサーバーを提供します。

  • MySQL 8.0。マルチユーザー、マルチスレッドの SQL データベースサーバーです。MySQL サーバーデーモンである mysqld と、多数のクライアントプログラムで設定されます。
  • MariaDB 10.3。マルチユーザー、マルチスレッドの SQL データベースサーバーです。あらゆる実用的な目的に対応するために、MariaDB には、MySQL とバイナリー互換性があります。
  • PostgreSQL 10 および PostgreSQL 9.6。高度なオブジェクトリレーショナルデータベース管理システム (DBMS) です。
  • Redis 5。高度な鍵と値のストアです。鍵には、文字列、ハッシュ、リスト、セット、およびソートセットを含めることができるため、データ構造サーバーと呼ばれています。RHEL で、Redis が初めて提供されます。

NoSQL の MongoDB データベースサーバーは、Server Side Public License (SSPL) を使用するため、RHEL 8.0 には同梱されていません。

データベースサーバーを並行してインストールできない

RPM パッケージが競合しているため、RHEL 8.0 では、mariadb モジュールと mysql モジュールを同時にインストールすることができません。

設計上、同じモジュールの複数のバージョン (ストリーム) を並行してインストールすることはできません。たとえば、postgresql モジュールから利用可能なストリーム ( 10 (デフォルト) または 9.6 ) の中から 1 つ選択する必要があります。RHEL 6 および RHEL 7 用の Red Hat Software Collections では、コンポーネントの並列インストールが可能です。RHEL 8 では、コンテナー内で異なるバージョンのデータベースサーバーを使用できます。

15.5.1. MariaDB 10.3 への主な変更点

MariaDB 10.3 では、RHEL 7 に同梱されていたバージョン 5.5 に新機能が数多く追加されました。以下は、主な変更点です。

  • 共通テーブル式 (CTE)
  • システムのバージョンが管理されたテーブル
  • FOR ループ
  • 非表示の列
  • シーケンス
  • InnoDB のインスタント ADD COLUMN
  • ストレージエンジンに依存しないカラム圧縮
  • 並列レプリケーション
  • マルチソースのレプリケーション

さらに、新しい mariadb-connector-c パッケージは、MySQLMariaDB に共通のクライアントライブラリーを提供します。このライブラリーは、データベースサーバーの MySQL および MariaDB の全バージョンで使用できます。その結果、RHEL 8 に同梱される MySQL サーバーおよび MariaDB サーバーのいずれかに構築されるアプリケーションの 1 つに接続できます。

その他の主な変更点は次の通りです。

  • 同期マルチソースクラスターのMariaDB Galera クラスター は、MariaDB の標準部分となりました。
  • InnoDB は、XtraDB の代わりに、デフォルトのストレージエンジンとして使用されます。
  • mariadb-bench サブパッケージが削除されました。
  • プラグインの成熟度に対するデフォルトの許可レベルは、サーバーの成熟度よりレベルが 1 つ低くなるように変更になりました。その結果、以前は動作していた、成熟度レベルが低いプラグインが、読み込まれなくなりました。

Red Hat Enterprise Linux 8 での MariaDB の使用 も併せて参照してください。

15.5.2. MySQL 8.0 への主な変更点

RHEL 8 に同梱される MySQL 8.0 には、たとえば次のような機能強化が含まれます。

  • MySQL に、データベースオブジェクトに関する情報を格納するトランザクショナルデータディクショナリーが組み込まれました。
  • MySQL がロールに対応するようになりました。ロールは特権の集まりです。
  • デフォルトの文字セットが、latin1 から utf8mb4 に変更しました。
  • 非再帰的および再帰的な Common Table Expression に対応するようになりました。
  • MySQL が、クエリーで関連する行の集合に対して、行ごとに計算を実行する window 関数に対応するようになりました。
  • locking read ステートメントにより、InnoDB で、NOWAIT オプションおよび SKIP LOCKED オプションに対応するようになりました。
  • GIS 関連の関数が改善しました。
  • JSON 関数が強化されました。
  • 新しい mariadb-connector-c パッケージは、MySQLMariaDB に共通のクライアントライブラリーを提供します。このライブラリーは、データベースサーバーの MySQL および MariaDB の全バージョンで使用できます。その結果、RHEL 8 に同梱される MySQL サーバーおよび MariaDB サーバーのいずれかに構築されるアプリケーションの 1 つに接続できます。

さらに、RHEL 8 に同梱されている MySQL 8.0 サーバーでは、デフォルトの認証プラグインに mysql_native_password を使用するように設定されています。RHEL 8 のクライアントツールおよびライブラリーは、アップストリームの MySQL 8.0 バージョンでデフォルトで使用されている caching_sha2_password メソッドと互換性がないためです。

デフォルトの認証プラグインを caching_sha2_password に変更するには、/etc/my.cnf.d/mysql-default-authentication-plugin.cnf ファイルを次のように変更します。

[mysqld]
default_authentication_plugin=caching_sha2_password

15.5.3. PostgreSQL への主な変更点

RHEL 8.0 は、postgresql モジュールの 2 つのストリームで、PostgreSQL データベースサーバーのバージョンを 2 つ (PostgreSQL 10 (デフォルトストリーム) および PostgreSQL 9.6) 提供します。RHEL 7 には PostgreSQL バージョン 9.2 が含まれます。

PostgreSQL 9.6 への主な変更点。以下は例になります。

  • 一連の動作の並列実行 - scanjoin、および aggregate
  • 同期レプリケーションの機能強化
  • フレーズを検索できるように、フルテキスト検索が改善
  • postgres_fdw データ連携ドライバーが、リモートの joinsortUPDATE、および DELETE の操作に対応
  • (特に、マルチ CPU ソケットサーバーのスケーラビリティーに関する) 重要なパフォーマンスの向上

PostgreSQL 10 への主な機能拡張。以下は例になります。

  • publish キーワードおよび subscribe キーワードを使用した論理レプリケーション
  • SCRAM-SHA-256 メカニズムを基にした強力なパスワード認証
  • 宣言型テーブルのパーティション
  • 改善されたクエリーの並列処理
  • 重要な一般的なパフォーマンスの向上
  • 改善された監視および制御

Red Hat Enterprise Linux 8 での PostgreSQL の使用 も併せて参照してください。

第16章 コンパイラーおよび開発ツール

16.1. RHEL 7 以降の toolchain の変更点

以下のシナリオでは、Red Hat Enterprise Linux 7 で説明されているコンポーネントのリリース以降のツールチェインにおける変更を記載します。Red Hat Enterprise Linux 8.0 リリースノート も併せて参照してください。

16.1.1. RHEL 8 の GCC における変更点

Red Hat Enterprise Linux 8 では、GCC ツールチェーンは GCC 8.2 リリースシリーズに基づいています。以下は、Red Hat Enterprise Linux 7 からの主な変更点です。

  • エイリアス解析、ベクトル化機能の改善、同一コードの折りたたみ、プロシージャー間解析、ストアマージの最適化パスなど、一般的な最適化が多数追加されました。
  • Address Sanitizer が改善されました。
  • メモリーリークを検出するために、Leak Sanitizer が追加されました。
  • 未定義の挙動を検出するために、Undefined Behavior Sanitizer が追加されました。
  • デバッグ情報が DWARF5 形式で生成できるようになりました。この機能は実験的なものです。
  • ソースコードカバレッジ解析ツールの GCOV が、様々な改良とともに拡張されました。
  • OpenMP 4.5 仕様のサポートが追加されました。また、OpenMP 4.0 仕様のオフロード機能は、C、C++、および Fortran のコンパイラーで対応されます。
  • 特定の、起こりうるプログラムエラーを静的に検出するために、新しい警告と改善された診断が追加されました。
  • ソースの場所は、その場所よりも広い範囲を追跡するため、診断する内容が濃くなりました。コンパイラーは、fix-it ヒントを提供し、可能なコードの修正を提案します。代替名とタイポの検出を簡単にするために、スペルチェックが追加されました。

セキュリティー

GCC が、生成したコードをさらに強化するツールを提供するように拡張されました。セキュリティーに関する改善点には以下が含まれます。

  • オーバーフローチェックを含む算術計算のための組み込み関数 __builtin_add_overflow__builtin_sub_overflow、および __builtin_mul_overflow が追加されました。
  • スタッククラッシュに対して追加のコード保護を生成するために、-fstack-clash-protection オプションが追加されました。
  • 増加したプログラムセキュリティーの制御フロー命令のターゲットアドレスを確認するために、-fcf-protection オプションが導入されました。
  • 新しい -Wstringop-truncation 警告オプションは、コピーした文字列を切り捨てるか、目的が変更しない strncatstrncpystpncpy などのバインドされた文字列操作関数への呼び出しをリスト表示します。
  • -Warray-bounds 警告オプションが改善され、範囲外の配列のインデックスおよびポインターのオフセットの検出が改善されるようになりました。
  • memcpyrealloc などの生のメモリーアクセス機能により、重要なクラスターイプのオブジェクトで潜在的に危険な操作を警告するために、-Wclass-memaccess 警告オプションが追加されました。

アーキテクチャーおよびプロセッサーのサポート

アーキテクチャーおよびプロセッサーサポートの改善点は次のとおりです。

  • Intel AVX-512 アーキテクチャー、その多数のマイクロアーキテクチャー、および Intel Software Guard Extensions (SGX) にアーキテクチャー固有の新しいオプションが複数追加されました。
  • コード生成は、現在、64 ビットの ARM アーキテクチャー LSE 拡張、ARMv8.2-A 16 ビット浮動小数点拡張 (FPE)、およびアーキテクチャーのバージョン ARMv8.2-A、ARMv8.3-A、および ARMv8.4-A を対象にできるようになりました。
  • ARM および 64 ビット ARM アーキテクチャーで -march=native オプションの処理が修正されました。
  • 64 ビット IBM Z アーキテクチャーの z13 および z14 プロセッサーのサポートが追加されました。

言語および標準

以下は、言語と標準規格に関連した主な変更点です。

  • C 言語でコンパイルする際に使用されるデフォルトの標準規格が、GNU 拡張機能が含まれる C17 に変更になりました。
  • C++ 言語でコードをコンパイルする際に使用されるデフォルトの標準規格が、GNU 拡張機能が含まれる C++14 に変更になりました。
  • C++ ランタイムライブラリーが、C++11 および C++14 の標準規格に対応するようになりました。
  • C++ コンパイラーは、新しい機能を多数持つ C++14 標準仕様を実装するようになりました。たとえば、変数テンプレート、非静的データメンバーイニシャライザーを持つ統合、拡張した constexpr 指定子、標準サイズの割り当て解除関数、汎用ラムダ、可変長の配列、桁区切り記号などになります。
  • C 言語の標準 C11 のサポートが改善しました。ISO C11 アトミック、一般的な選択、およびスレッドローカルストレージが利用可能になりました。
  • 新しい __auto_type の GNU C 拡張機能が、C 言語の C++11 の auto キーワード機能のサブセットを提供します。
  • ISO/IEC TS 18661-3:2015 標準規格が指定する型名 _FloatN および _FloatNx が、C フロントエンドで認識されるようになりました。
  • C 言語でコンパイルする際に使用されるデフォルトの標準規格が、GNU 拡張機能が含まれる C17 に変更になりました。これは、--std=gnu17 オプションを使用するのと同じ効果があります。以前は、デフォルトは、GNU 拡張を持つ C89 です。
  • GCC は、C++17 言語標準規格と、C++20 標準規格の一部の機能を使用してコンパイルできるようになりました。
  • 空のクラスを引数として渡すと、プラットフォーム ABI で要求される、Intel 64 アーキテクチャーおよび AMD64 アーキテクチャーで領域を使用しません。削除したコピーまたは移動のコンストラクターだけを持つクラスを渡すか返すと、重要なコピーまたは移動のコンストラクターを持つクラスと同じ規則を使用します。
  • C++11 の alignof 演算子により返される値は、C の _Alignof 演算子と一致し、最小の配置を返すように修正されました。適切な配置を見つけるには、GNU 拡張機能 __alignof__ を使用します。
  • Fortran 言語コード用の libgfortran ライブラリーのメインバージョンが 5 に変更になりました。
  • Ada (GNAT)、GCC Go、および Objective C/C++ 言語に対応しなくなりました。Go コード開発には Go Toolset を使用してください。

関連情報

16.1.2. RHEL 8 の GCC へのセキュリティー強化

以下では、Red Hat Enterprise Linux 7.0 のリリース以降に追加されたセキュリティーに関連する GCC の変更の詳細を紹介します。

新しい警告

以下のような警告オプションが追加されました。

オプション警告が表示された理由

-Wstringop-truncation

コピーした文字列を切り捨てるか、目的が変更しない strncatstrncpystpncpy などのバインドした文字列操作を読み出します。

-Wclass-memaccess

memcpyrealloc のような、生のメモリー機能により、潜在的に危険な方法で操作される重要なクラスターイプのオブジェクトです。

警告は、ユーザー定義のコンストラクターやコピー代入演算子、破損した仮想テーブルポインター、const 修飾型または参照、またはメンバーポインターのデータメンバーを回避する呼び出しを検出します。この警告は、データメンバーへのアクセス制御を回避する呼び出しも検出します。

-Wmisleading-indentation

コードのインデントにより、コードのブロック構造について誤解を与える場所。

-Walloc-size-larger-than=size

割り当てるメモリーの量が size を超えた場合にメモリー割り当て関数を呼び出します。2 つのパラメーターを乗じることで割り当てが指定される関数や、alloc_size 属性が付けられた関数とも連携します。

-Walloc-zero

メモリー量を割り当てないようにするメモリー割り当て関数を呼び出します。2 つのパラメーターを乗じることで割り当てが指定される関数や、alloc_size 属性が付けられた関数とも連携します。

-Walloca

alloca 関数へのすべての読み出し。

-Walloca-larger-than=size

size 以上のメモリーが必要になると、alloca 関数が呼び出されます。

-Wvla-larger-than=size

指定のサイズを超えたか、そのバインドが十分に拘束されるか不明な可変長配列 (VLA) の定義。

-Wformat-overflow=level

形式化された出力関数の sprintf ファミリーへの呼び出しで、特定の好ましいバッファーオーバーフロー。level 値の詳細と説明は、man ページの gcc(1) を参照してください。

-Wformat-truncation=level

形式化された出力関数の snprintf ファミリーへの呼び出しで、特定の好ましい出力の切り替え。level 値の詳細と説明は、man ページの gcc(1) を参照してください。

-Wstringop-overflow=type

memcpystrcpy などの文字列処理関数への呼び出しのバッファーオーバーフロー。level 値の詳細と説明は、gcc(1) man ページを参照してください。

警告の改良

次の GCC の警告が修正されました。

  • -Warray-bounds オプションが改善され、範囲外の配列インデックスおよびポインターオフセットの複数インスタンスを検出するようになりました。たとえば、フレキシブル配列メンバーと文字列リテラルに、負または過剰なインデックスが検出されます。
  • GCC 7 で導入された -Wrestrict オプションは、標準メモリーと、memcpystrcpy などの文字列操作関数への制限引数を介してオブジェクトへのアクセスをオーバーラップする、より多くのインスタンスを検出するように強化されました。
  • -Wnonnull オプションは、null 以外の引数 (nonnull 属性が付いている) を期待する関数に null ポインターを渡す広範囲なケースセットを検出するように強化されました。

新しい UndefinedBehaviorSanitizer

UndefinedBehaviorSanitizer と呼ばれる未定義の動作を検出する新しいランタイムサニタイザーが追加されました。主な機能は以下のようになります。

オプションチェック

-fsanitize=float-divide-by-zero

ゼロによる浮動小数点除算を検出します。

-fsanitize=float-cast-overflow

浮動小数点型から整数の変換がオーバーフローしていないことを確認します。

-fsanitize=bounds

配列境界の計測を有効にして、範囲外のアクセスを検出します。

-fsanitize=alignment

アラインメントチェックを有効にし、アラインが適切でない様々なオブジェクトを検出します。

-fsanitize=object-size

オブジェクトサイズのチェックを有効にして、様々な範囲外のアクセスを検出します。

-fsanitize=vptr

C++ メンバー関数呼び出し、メンバーアクセス、および基本クラスおよび派生クラスへのポインター間の会話のチェックを有効にします。また、参照されるオブジェクトに正しい動的タイプがない場合は検出します。

-fsanitize=bounds-strict

配列境界の厳密なチェックを有効にします。これにより、-fsanitize=bounds と、柔軟なメンバー状の配列の計測を有効にします。

-fsanitize=signed-integer-overflow

汎用ベクトルを持つ算術演算でも、算術オーバーフローが診断されます。

-fsanitize=builtin

事前定義されたビルトインの __builtin_clz または __builtin_ctz への無効な引数をランタイム時に診断します。-fsanitize=undefined からのチェックが含まれます。

-fsanitize=pointer-overflow

ポインターのラッピングに簡易ランタイムテストを実行します。-fsanitize=undefined からのチェックが含まれます。

AddressSanitizer の新規オプション

以下のオプションが AddressSanitizer に追加されました。

オプションチェック

-fsanitize=pointer-compare

異なるメモリーオブジェクトを指定するポインターの比較を警告します。

-fsanitize=pointer-subtract

異なるメモリーオブジェクトを指すポインターの減算を警告します。

-fsanitize-address-use-after-scope

その変数が定義されている範囲後に取得され使用されているアドレスの変数をサニタイズします。

その他のサニタイザーおよび計測

  • プローブを挿入するために、-fstack-clash-protection オプションが追加されました。このプローブは、スタック領域が静的または動的に割り当てられた場合に、スタックオーバーフローが確実に検出され、オペレーティングシステムが提供するスタックガードページを超えることに依存する攻撃ベクトルを軽減する際に挿入されます。
  • 制御フロー転送のターゲットアドレス命令 (間接的な関数呼び出し、関数の戻り値、間接ジャンプなど) のターゲットアドレスが有効であることを確認することで、コード計測を実行して、プログラムセキュリティーを高める新しいオプション -fcf-protection=[full|branch|return|none] が追加されました。

関連情報

  • 上述のオプションの一部に提供された値の詳細および説明は、gcc(1) man ページを参照してください。

    $ man gcc

16.1.3. RHEL 8 の GCC で互換性に影響を与える変更

std::string および std::list における C++ ABI の変更

RHEL 7 (GCC 4.8) と RHEL 8 (GCC 8) との間で変更した libstdc++ ライブラリーの std::string クラスおよび std::list クラスの Application Binary Interface (ABI) は、C++11 標準に従います。libstdc++ ライブラリーは、古い ABI および新しい ABI の両方に対応しますが、その他の C++ システムライブラリーには対応しません。そのため、このライブラリーに動的にリンクするアプリケーションを再構築する必要があります。これは、C++98 を含むすべての C++ 標準モードに影響します。RHEL 7 で Red Hat Developer Toolset コンパイラーを使用して構築したアプリケーションにも影響します。このコンパイラーは、古い ABI を維持して、システムライブラリーとの互換性を維持します。

GCC が、Ada、Go、および Objective C/C++ コードを構築しなくなる

GCC コンパイラーから、Ada (GNAT)、GCC Go、および Objective C/C++ の言語でコードを構築する機能が削除されました。

Go コードを構築する場合は、代わりに Go Toolset を使用します。

16.2. コンパイラーツールセット

RHEL 8 は、以下のコンパイラーツールセットを、アプリケーションストリームとして提供します。

  • LLVM ツールは、LLVM コンパイラーインフラストラクチャーフレームワーク、C 言語および C++ 言語用の Clang コンパイラー、LLDB デバッガー、コード解析の関連ツールを提供します。
  • Rust Toolset は、Rust プログラミング言語コンパイラー rustccargo ビルドツールおよび依存マネージャー、cargo-vendor プラグイン、および必要なライブラリーを提供します。
  • Go Toolset は、Go プログラミング言語ツールおよびライブラリーを提供します。Go は、golang としても知られています。

使用方法の詳細と情報については、Red Hat DeveloperTools ページのコンパイラーツールセットのユーザーガイドを参照してください。

16.3. RHEL 8 における Java 実装および Java ツール

RHEL 8 AppStream リポジトリーには、以下が含まれます。

  • java-11-openjdk パッケージ。OpenJDK 11 Java Runtime Environment および OpenJDK 11 Java Software Development Kit を提供します。
  • java-1.8.0-openjdk パッケージ。OpenJDK 8 Java Runtime Environment および OpenJDK 8 Java Software Development Kit を提供します。
  • icedtea-web パッケージ (Java Web Start の実装を提供)。
  • Java ライブラリーおよびコマンドラインツールを提供する ant モジュール。Java アプリケーションのコンパイル、アセンブル、テスト、および実行を行います。ant がバージョン 1.10 に更新されました。
  • maven モジュールは、ソフトウェアプロジェクトの管理および解釈を行うツールを提供します。maven は、以前は、Software Collection から、またはサポート対象外の Optional チャンネルからしか入手できませんでした。
  • scala モジュール は、Java プラットフォーム用の汎用プログラミング言語を提供します。scala は、以前は、Software Collection からしか入手できませんでした。

また、java-1.8.0-ibm パッケージは、Supplementary リポジトリーを介して配布されます。Red Hat は、このリポジトリーのパッケージをサポートしていません。

16.4. GDB で互換性に影響を与える変更

Red Hat Enterprise Linux 8 で提供される GDB のバージョンは、特に GDB の出力が端末から直接読み込まれる場合に、互換性に影響を与える変更が多数含まれています。次のセクションは、この変更の詳細を提供します。

GDB の出力の解析は推奨されません。Python GDB API または GDB Machine Interface (MI) を使用するスクリプトが推奨されます。

GDBserver がシェルで inferior を開始

inferior コマンドライン引数で拡張や変数置換を有効にするために、GDBserver では、GDB と同じように、シェルで inferior を開始するようになりました。

シェルを使用して無効にするには、以下を行います。

  • GDB コマンド target extended-remote を使用する場合は、set startup-with-shell off コマンドでシェルが無効になります。
  • GDB コマンド target remote を使用する場合は、GDBserver の --no-startup-with-shell オプションでシェルが無効になります。

例16.1 リモートの GDB inferior へのシェル拡張例

この例は、GDBserver から /bin/echo /* コマンドを実行する方法が Red Hat Enterprise Linux versions 7 および 8 でどのように異なるかを示します。

  • RHEL 7 の場合:

    $ gdbserver --multi :1234
    $ gdb -batch -ex 'target extended-remote :1234' -ex 'set remote exec-file /bin/echo' -ex 'file /bin/echo' -ex 'run /*'
    /*
  • RHEL 8 の場合:

    $ gdbserver --multi :1234
    $ gdb -batch -ex 'target extended-remote :1234' -ex 'set remote exec-file /bin/echo' -ex 'file /bin/echo' -ex 'run /*'
    /bin /boot (...) /tmp /usr /var
gcj サポートが削除される

Java 用の GNU Compiler でコンパイルされた Java プログラムをデバッグへの対応 (gcj) が削除されました。

シンボルのダンプのメンテナンスコマンドの新しい構文

シンボルのダンプのメンテナンスコマンド構文に、ファイル名の前にオプションが追加されました。これにより、RHEL 7 の GDB で機能するコマンドが、RHEL 8 では機能しなくなりました。

例として、次のコマンドはファイルにシンボルを格納しませんが、エラーメッセージを生成します。

(gdb) maintenance print symbols /tmp/out main.c

シンボルのダンプのメンテナンスコマンドの新しい構文は、以下のようになります。

maint print symbols [-pc address] [--] [filename]
maint print symbols [-objfile objfile] [-source source] [--] [filename]
maint print psymbols [-objfile objfile] [-pc address] [--] [filename]
maint print psymbols [-objfile objfile] [-source source] [--] [filename]
maint print msymbols [-objfile objfile] [--] [filename]
スレッド番号がグローバルではなくなる

GDB は、グローバルのスレッド番号設定のみを使用していました。番号設定は、inferior_num.thread_num の形式 (2.1 など) で、inferior ごとに表示されるように拡張されました。そのため、利便性に関する変数 $_thread と、Python 属性 InferiorThread.num のスレッド番号が、inferior の間で一意ではなくなりました。

GDB は、スレッドごとに、グローバルスレッド ID と呼ばれる 2 番目のスレッド ID を格納します。これは、以前のリリースのスレッド番号と同等の、新規のものになります。グローバルスレッド番号にアクセスするには、利便性に関する変数 $_gthread および Python 属性 InferiorThread.global_num を使用します。

後方互換性の場合は、Machine Interface (MI) のスレッド ID に、常にグローバル ID が含まれます。

例16.2 GDB スレッド番号変更の例

Red Hat Enterprise Linux 7 の場合:

# debuginfo-install coreutils
$ gdb -batch -ex 'file echo' -ex start -ex 'add-inferior' -ex 'inferior 2' -ex 'file echo' -ex start -ex 'info threads' -ex 'pring $_thread' -ex 'inferior 1' -ex 'pring $_thread'
(...)
  Id   Target Id         Frame
* 2    process 203923 "echo" main (argc=1, argv=0x7fffffffdb88) at src/echo.c:109
  1    process 203914 "echo" main (argc=1, argv=0x7fffffffdb88) at src/echo.c:109
$1 = 2
(...)
$2 = 1

Red Hat Enterprise Linux 8 の場合:

# dnf debuginfo-install coreutils
$ gdb -batch -ex 'file echo' -ex start -ex 'add-inferior' -ex 'inferior 2' -ex 'file echo' -ex start -ex 'info threads' -ex 'pring $_thread' -ex 'inferior 1' -ex 'pring $_thread'
(...)
  Id   Target Id         Frame
  1.1  process 4106488 "echo" main (argc=1, argv=0x7fffffffce58) at ../src/echo.c:109
* 2.1  process 4106494 "echo" main (argc=1, argv=0x7fffffffce58) at ../src/echo.c:109
$1 = 1
(...)
$2 = 1
値の中身に対するメモリーが制限される

GDB は、以前は、値のコンテンツに割り当てられるメモリー量に制限を課していませんでした。その結果、誤ったプログラムをデバッグすると、GDB が割り当てるメモリー量が多くなりすぎていました。割り当てたメモリーの量を制限できるように、max-value-size 設定が追加されました。この制限のデフォルト値は 64 KiB です。これにより、Red Hat Enterprise Linux 8 の GDB では、表示される値が大きくなりすぎることはありませんが、その値が大きすぎることが報告されます。

たとえば、char s[128*1024]; と定義された値を出力すると、異なる結果が生成されます。

  • Red Hat Enterprise Linux 7 では、$1 = 'A' <repeats 131072 times> となります。
  • Red Hat Enterprise Linux 8 では、value requires 131072 bytes, which is more than max-value-size (値には 131072 バイトが必要ですが、この値は max-value-size を超えています) と表示されます。
スタブ形式の Sun のバージョンがサポート対象外になる

Sun バージョンの stabs デバッグファイルフォーマットに対応しなくなりました。RHEL で gcc -gstabs オプションを使用して GCC が生成した stabs フォーマットは、GDB でも引き続きサポートされます。

Sysroot 処理変更

set sysroot path コマンドは、デバッグに必要なファイルを検索する際にシステムルートを指定します。このコマンドに適用したディレクトリー名は、文字列 target: の接頭辞になり、GDB が、(ローカルおよびリモートの) ターゲットシステムの共有ライブラリーを読み込みます。以前は利用できた remote: 接頭辞は、target: として扱われるようになりました。さらに、デフォルトのシステム root の値は、後方互換性として、空の文字列から target: に変更になりました。

GDB がリモートのプロセスを開始したり、すでに実行しているプロセス (ローカルおよびリモートの両方) に接続する際に、指定したシステムの root が、主な実行ファイルのファイル名の先頭に追加されます。これは、プロセスがリモートの場合に、デフォルト値 target: が、GDB がリモートシステムからデバッグ情報を読み込もうとすることを示しています。これが発生しないようにするには、target remote コマンドの前に set sysroot コマンドを実行して、ローカルのシンボルファイルが、リモートのファイルが見つかるよりも早く見つかるようにします。

HISTSIZE が GDB コマンドの履歴サイズを制御しなくなる

HISTSIZE 環境変数に使用されている GDB は、コマンド履歴がどのぐらい保存されるかを指定していました。代わりに GDBHISTSIZE 環境変数が使用されるように変更になりました。この変数は、GDB に固有になります。可能な値とその効果は次のとおりです。

  • 正の数 - このサイズのコマンド履歴を使用
  • -1 または空の文字列 - コマンド履歴をすべて保持
  • 数値以外の値 - 無視
完了制限が追加される

set max-completions コマンドを使用して、完了時に検討される候補の最大値が制限されるようになりました。現在の制限を表示するには、show max-completions コマンドを実行します。デフォルト値は 200 です。この制限により、GDB が、生成する完了リストが大きすぎて、応答しなくならないようにします。

たとえば、p <tab><tab> の入力後の出力は、以下のようになります。

  • RHEL 7 の場合 - Display all 29863 possibilities? (y or n)
  • RHEL 8 の場合 - Display all 200 possibilities? (y or n)
HP-UX XDB 互換性モードが削除される

HP-UX XDB 互換性モードの -xdb オプションが GDB から削除されています。

スレッドのシグナル処理

GDB は、シグナルが実際に送信されるスレッドの代わりに、現在のスレッドへシグナルを配信していました。このバグは修正され、実行を再開する際に GDB が現在のスレッドへ、常にシグナルを渡すようになりました。

また、signal コマンドは、現在のスレッドに、必要なシグナルを常に正しく配信するようになりました。シグナルに対してプログラムが停止したり、ユーザーがスレッドを切り替えた場合は、GDB により確認が求められます。

ブレークポイントモードが常に挿入され、自動的にマージされる

breakpoint always-inserted 設定が変更しました。auto 値と対応する動作が削除されました。デフォルト値は off です。off の場合は、すべてのスレッドが停止するまで、GDB がターゲットからブレークポイントを削除しないようになります。

remotebaud コマンドがサポート対象外に

set remotebaud コマンドおよび show remotebaud コマンドがサポートされなくなりました。代わりに set serial baud コマンドおよび show serial baud コマンドを使用してください。

16.5. コンパイラーおよび開発ツールにおける互換性に影響を与える変更

librtkaio が削除される

この更新では、librtkaio ライブラリーが削除されました。このライブラリーは、ファイルへの高パフォーマンスのリアルタイム非同期 I/O アクセスを提供していました。これは、Linux の KAIO (kernel Asynchronous I/O) サポートに基づいています。

削除の結果は以下のようになります。

  • librtkaio を読み込む LD_PRELOAD メソッドを使用するアプリケーションは、不明なライブラリーに関する警告を表示し、代わりに librt ライブラリーを読み込み、適切に実行します。
  • librtkaio を読み込む LD_LIBRARY_PATH メソッドを使用するアプリケーションは、代わりに librt ライブラリーを読み込んで適切に実行し、警告は表示されません。
  • dlopen() システムコールを使用するアプリケーションでは、代わりに librtkaiolibrt ライブラリーを直接読み込みます。

librtkaio のユーザーには以下のオプションがあります。

  • 自身のアプリケーションを変更せずに、上記のフォールバックメカニズムを使用。
  • librt ライブラリーを使用するようにアプリケーションのコードを変更。互換性のある POSIX 準拠 API が提供されます。
  • 互換性のある API を提供する libaio ライブラリーを使用するようにアプリケーションのコードを変更。

特定の条件では、librtlibaio の両方が、同じ機能および性能を提供します。

Red Hat 互換性レベルは、libaio パッケージが 2 になります。librtk と削除された librtkaio の場合は 1 です。

詳細は Changes/GLIBC223 librtkaio removal を参照してください。

Sun RPC インターフェイスおよび NIS インターフェイスが glibc から削除される

glibc ライブラリーは、新しいアプリケーションに Sun RPC および NIS のインターフェイスを提供しなくなりました。このインターフェイスは、レガシーアプリケーションを実行する場合にのみ利用できるようになりました。開発者は、Sun RPC の代わりに libtirpc ライブラリー、そして NIS の代わりに libnsl2 ライブラリーを使用するようにアプリケーションを変更する必要があります。アプリケーションは、置換ライブラリーの IPv6 サポートを利用します。

32 ビット Xen の nosegneg ライブラリーが削除される

glibc i686 パッケージは、以前は代替の glibc ビルドに含まれており、負のオフセット (nosegneg) を使用して、スレッド記述子セグメントレジスターの使用を回避していました。この代替ビルドは、ハードウェアの仮想化サポートを使用せず、フル準仮想化のコストを削除するための最適化として、32 ビットバージョンの Xen Project ハイパーバイザーでのみ使用されます。この代替ビルドはこれ以上使用されず、削除されます。

make の新しい演算子 != を使用すると一部の makefile の既存構文で解釈が異なる

BSD makefile との互換性を高める $(shell …​) 関数の代わりに、シェル代入演算子 != が GNU make に追加されました。これにより、variable!=value のように、感嘆符で終わり、その後に代入が続く名前の変数は、新しいシェル割り当てとして解釈されるようになりました。以前の動作に戻すには、variable! =value のように、感嘆符の後にスペースを追加します。

演算子と関数の詳細と相違点は、GNU の make マニュアルを参照してください。

MPI デバッグサポート用 valgrind ライブラリーが削除される

valgrind-openmpi パッケージが提供する Valgrindlibmpiwrap.so ラッパーライブラリーが削除されました。このライブラリーにより、MPI (Message Passing Interface) を使用して、Valgrind がプログラムをデバッグできるようになりました。このライブラリーは、以前のバージョンの Red Hat Enterprise Linux の Open MPI 実装バージョンに固有です。

libmpiwrap.so を使用する場合は、MPI 実装およびバージョンに固有のアップストリームソースから独自のバージョンを構築することが推奨されます。LD_PRELOAD 技術を使用して、カスタムビルドのライブラリーを Valgrind に提供します。

開発用ヘッダーおよび静的ライブラリーが valgrind-devel から削除される

valgrind-devel サブパッケージは、カスタムの valgrind ツールを開発する開発ファイルを追加するために使用されていました。このファイルには保証された API がないため、この更新によりこのファイルが削除され、静的なリンクが必要となり、サポート対象外となります。valgrind-devel パッケージには、valgrind が有効なプログラムや、valgrind.hcallgrind.hdrd.hhelgrind.hmemcheck.h などのヘッダーファイルに対する開発ファイルが含まれます。このファイルは安定しており、十分にサポートされます。

第17章 ID 管理

17.1. Identity Management パッケージがモジュールとしてインストールされる

RHEL 8 では、Identity Management (IdM) サーバーとクライアントのインストールに必要なパッケージがモジュールとして配布されています。client ストリームは、idm モジュールのデフォルトのストリームであるため、このストリームを有効にしなくてもクライアントのインストールに必要なパッケージをダウンロードできます。

IdM サーバーモジュールストリームは DL1 と呼ばれ、さまざまなタイプの IdM サーバーに対応するプロファイルが複数含まれます。

  • サーバー: 統合 DNS のない IdM サーバー
  • DNS: 統合 DNS のある IdM サーバー
  • adtrust: Active Directory と信頼関係のある IdM サーバー
  • クライアント: IdM クライアント

DL1 ストリームの特定のプロファイルにあるパッケージをダウンロードする場合は、以下を行います。

  1. ストリームを有効にします。

    # yum module enable idm:DL1
  2. ストリーム経由で配信される RPM に切り替えます。

    # yum distro-sync
  3. 選択したプロファイルをインストールします。

    # yum module install idm:DL1/profile

    profile を、上で定義した特定のプロファイルのいずれかに置き換えます。

詳細は Identity Management サーバーに必要なパッケージのインストール および Identity Management クライアントのインストールに必要なパッケージ を参照してください。

17.2. Active Directory ユーザーが Identity Management を管理可能に

Red Hat Enterprise Linux (RHEL) 7 では、System Security Services Daemon (SSSD) で外部グループメンバーシップを使用して、AD ユーザーとグループが POSIX 環境の IdM リソースにアクセスするのを許可します。

IdM LDAP サーバーには、アクセス制御を付与する独自のメカニズムがあります。RHEL 8 には、AD ユーザーに対する ID ユーザーのオーバーライドを、IdM グループのメンバーとして追加できるようにする更新が導入されました。ID オーバーライドは、特定の Active Directory ユーザーまたはグループのプロパティーが特定の ID ビュー (この場合は Default Trust View) 内でどのように見えるかを記述するレコードです。この更新により、IdM LDAP サーバーは、IdM グループのアクセス制御ルールを AD ユーザーに適用できます。

AD ユーザーは、IdM UI のセルフサービス機能 (SSH キーのアップロード、個人のデータの変更など) を使用できるようになりました。AD 管理者は、アカウントおよびパスワードを 2 つ使用しなくても、IdM を完全に管理できるようになります。

注記

IdM の一部の機能は、AD ユーザーには現在利用できません。たとえば、IdM の admins グループに所属する AD ユーザーが、IdM ユーザーのパスワードを設定することはできません。

17.3. IdM が、インストールおよび管理用の Ansible ロールとモジュールに対応

Red Hat Enterprise Linux 8.1 では、Identity Management (IdM) のデプロイメントと管理のための Ansible ロールとモジュールを提供する ansible-freeipa パッケージが導入されています。Ansible ロールを使用して、IdM サーバー、レプリカ、およびクライアントのインストールとアンインストールを行うことができます。Ansible モジュールを使用して、IdM グループ、トポロジー、およびユーザーを管理できます。また、サンプル Playbook も用意されています。

今回の更新で、IdM ベースのソリューションのインストールおよび設定が容易になります。

17.4. すべての依存関係を持つ AppStream リポジトリーで ansible-freeipa が利用可能に

RHEL 8.6 以降、ansible-freeipa パッケージをインストールすると、ansible のより基本的なバージョンである ansible-core パッケージが依存関係として自動的にインストールされます。ansible-freeipaansible-core の両方が、rhel-9-for-x86_64-appstream-rpms リポジトリーで利用できます。

RHEL 8.6 の ansible-freeipa には、RHEL 8.6 より前に含まれていたすべてのモジュールが含まれています。

RHEL 8.6 より前は、まず Ansible リポジトリーを有効にして、ansible パッケージをインストールする必要がありました。そうして初めて、ansible-freeipa がインストール可能でした。

17.5. 従来の RHEL ansible-freeipa リポジトリーに代わる Ansible Automation Hub

Red Hat Enterprise Linux 8.6 では、標準の RHEL リポジトリーからダウンロードする代わりに、Ansible Automation Hub (AAH) から ansible-freeipa モジュールをダウンロードできます。AAH を使用することで、このリポジトリーで利用可能な ansible-freeipa モジュールのより高速な更新の恩恵を受けることができます。

AAH では、ansible-freeipa のロールとモジュールがコレクション形式で配布されます。AAH ポータルのコンテンツにアクセスするには、Ansible Automation Platform (AAP) サブスクリプションが必要であることに注意してください。また、ansible バージョン 2.14 以降も必要です。

redhat.rhel_idm コレクションには、従来の ansible-freeipa パッケージと同じコンテンツが含まれています。ただし、コレクション形式では、名前空間とコレクション名で構成される完全修飾コレクション名 (FQCN) が使用されます。たとえば、redhat.rhel_idm.ipadnsconfig モジュールは、RHEL リポジトリーによって提供される ansible-freeipaipadnsconfig モジュールに対応します。名前空間とコレクション名の組み合わせにより、オブジェクトが一意になり、競合することなく共有できるようになります。

17.6. Identity Management ユーザーは、外部アイデンティティープロバイダーを使用して IdM に認証できるようになる

RHEL 8.10 以降では、アイデンティティー Management (IdM) ユーザーを、OAuth 2 デバイス認証フローをサポートする外部アイデンティティープロバイダー (IdP) に関連付けることができます。このような IdP の例としては、Red Hat build of Keycloak、Azure Entra ID、Github、Google、Facebook などがあります。

IdM に IdP 参照と関連付けられた IdP ユーザー ID が存在する場合は、それらを使用して IdM ユーザーが外部 IdP で認証できるようにすることができます。外部 IdP で認証と認可を実行した後、IdM ユーザーはシングルサインオン機能を備えた Kerberos チケットを受け取ります。ユーザーは、RHEL 8.7 以降で使用可能な SSSD バージョンで認証する必要があります。

idp ansible-freeipa モジュールを使用して、IdM ユーザーの IdP 認証を設定することもできます。

17.7. RHEL 8 のセッション記録ソリューションが追加

Red Hat Enterprise Linux 8 (RHEL 8) にセッション記録ソリューションが追加されました。新しい tlog パッケージと、それに関連付けられた Web コンソールセッションプレイヤーにより、ユーザー端末セッションを録画および再生できるようになりました。録画は、システムセキュリティーサービスデーモン (SSSD) サービスを介して、ユーザー別またはユーザーグループ別に設定できます。端末への入出力はすべてキャプチャーされ、テキストベースの形式でシステムジャーナルに保存されます。セキュリティー上の理由から、未加工のパスワードやその他の機密情報を傍受されないように、入力はデフォルトでは非アクティブになっています。

このソリューションを、セキュリティーが重要なシステムでユーザーセッションを監査するのに使用できます。セキュリティー違反が発生した場合に、記録したセッションをフォレンジック分析として評価できます。システム管理者は、セッション録画をローカルに設定し、tlog-play ユーティリティーを使用して、RHEL 8 Web コンソールインターフェイスまたはコマンドラインインターフェイスから、結果を表示できるようになりました。

17.8. Identity Management から削除された機能

17.8.1. NTP サーバー の IdM サーバーロールがない

RHEL 8 では chronyd が優先されるため、ntpd は非推奨となっており、IdM サーバーは Network Time Protocol (NTP) サーバーとして設定されず、NTP クライアントとしてのみ設定されます。RHEL 7 の NTP サーバー の IdM サーバーロールも、RHEL 8 では非推奨になりました。

17.8.2. NSS データベースが OpenLDAP でサポートされない

以前のバージョンの Red Hat Enterprise Linux (RHEL) における OpenLDAP スイートは、暗号化目的で Mozilla Network Security Services (NSS) を使用しました。RHEL 8 を使用して、OpenLDAP コミュニティーがサポートする OpenSSL は NSS を置き換えます。証明書およびキーを保存する NSS データベースをサポートしません。ただし、同じ目的を担う PEM (Privacy Enhanced Mail) ファイルをサポートします。

17.8.3. 選択した Python Kerberos パッケージが置き換えられている

Red Hat Enterprise Linux (RHEL) 8 では、python-gssapi パッケージが、python-krbVpython-kerberospython-requests-kerberospython-urllib2_kerberos などの Python Kerberos パッケージに置き換えられました。重要な利点には、以下のようなものがあります。

  • python-gssapi は、python-kerberos または python-krbV よりも使いやすくなりました。
  • python 2 および python 3 は、python-gssapi では対応されますが、python-krbV では対応されません。
  • 追加の Kerberos パッケージ python-requests-gssapi および python-urllib-gssapi は、現在、 Extra Packages for Enterprise Linux (EPEL) リポジトリーの追加パッケージで利用できます。

GSSAPI ベースのパッケージは、後方互換性のために、Kerberos だけでなく、NT LAN Manager NTLM など、その他の Generic Security Services API (GSSAPI) メカニズムを使用できます。

この更新により、RHEL 8 の GSSAPI の保守性とデバッグ可能性が向上します。

17.9. SSSD

17.9.1. AD GPO がデフォルトで有効に

RHEL 8 では、ad_gpo_access_control オプションのデフォルト設定は enforcing となり、Active Directory Group Policy Objects (GPO) に基づいてアクセス制御ルールが評価され、適用されます。

一方、RHEL 7 のこのオプションのデフォルトは Permissive で、GPO ベースのアクセス制御ルールは強制的に実行されません。Permissive モードでは、GPO によるアクセスが拒否されるたびに syslog メッセージは記録されますが、ユーザーはアクセスが拒否されてもそのままログインできます。

注記

Red Hat は、RHEL 7 から RHEL 8 にアップグレードする前に、Active Directory で GPO が正しく設定されていることを確認することを推奨します。

デフォルトの RHEL 7 ホストで認可に影響のない GPO の設定が間違っていると、デフォルトの RHEL 8 ホストに影響を及ぼす可能性があります。

GPO の詳細は、RHEL でのグループポリシーオブジェクトアクセス制御の適用 および sssd-ad の man ページの ad_gpo_access_control のエントリーを参照してください。

17.9.2. authselectauthconfig に置き換え

RHEL 8 では、authselect ユーティリティーが authconfig ユーティリティーに代わります。authselect には、システム管理者が PAM 設定変更を簡単に行える、PAM スタック管理のより安全なアプローチがあります。authselect を使用して、パスワード、証明書、スマートカード、フィンガープリントなどの認証方法を設定できます。authselect では、リモートドメインに参加するのに必要なサービスを設定しないことに注意してください。このタスクは、realmdipa-client-install のような専門のツールにより実行されます。

17.9.3. KCM が、KEYRING をデフォルトの認証情報キャッシュストレージとして置き換え

RHEL 8 でデフォルトの認証情報キャッシュストレージは、sssd-kcm デーモンにより強化されている Kerberos Credential Manager (KCM) です。KCM では、以前使用されていた KEYRING の制限 (名前空間がないためにコンテナー化された環境での使用や、クォータの表示および管理が困難など) が解消されています。

今回の更新で、RHEL 8 には、コンテナー環境により適した認証情報キャッシュが含まれ、将来のリリースでより多くの機能を構築するための基盤が提供されます。

17.9.4. sssctl が、IdM ドメインの HBAC ルールレポートを出力

今回の更新で、System Security Services Daemon (SSSD) の sssctl ユーティリティーは、Identity Management (IdM) ドメインのアクセス制御レポートを出力できるようになりました。この機能は、規制上の理由から、特定のクライアントマシンにアクセスできるユーザーとグループのリストを表示するニーズを満たします。IdM クライアントで sssctl access-report domain_name を実行すると、クライアントマシンに適用する IdM ドメインで解析されたホストベースのアクセス制御 (HBAC) ルールのサブセットを表示します。

IdM 以外のプロバイダーは、この機能に対応していません。

17.9.5. RHEL 8.8 以降、SSSD がデフォルトでローカルユーザーをキャッシュせず、nss_sss モジュールを通じてローカルユーザーにサービスを提供しなくなる

RHEL 8.8 以降では、/etc/passwd ファイルおよび /etc/group ファイルからユーザーおよびグループを提供する System Security Services Daemon (SSSD) files プロバイダーはデフォルトで無効になっています。/etc/sssd/sssd.conf 設定ファイルの enable_files_domain 設定のデフォルト値は false です。

RHEL 8.7 以前のバージョンでは、SSSD ファイル プロバイダーはデフォルトで有効になっています。sssd.conf 設定ファイルの enable_files_domain 設定のデフォルト値は true であり、sss nsswitch モジュールは /etc/nsswitch.conf ファイル内の ファイル より優先されます。

17.9.6. SSSD で、複数のスマートカード認証デバイスの中から 1 つを選択可能

デフォルトでは、SSSD (System Security Services Daemon) が、スマートカード認証用デバイスを自動的に検出しようとします。複数のデバイスを接続している場合は、最初に見つかったデバイスを SSSD が選択します。したがって、特定のデバイスを選択することはできません。失敗する可能性もあります。

この更新では、sssd.conf 設定ファイルの [pam] セクションに、新しい p11_uri オプションを設定できるようになりました。このオプションを使用すると、スマートカード認証に使用するデバイスを定義できます。

たとえば、OpenSC PKCS#11 モジュールにより検出されたスロット ID 2 のリーダーを選択するには、以下を追加します。

p11_uri = library-description=OpenSC%20smartcard%20framework;slot-id=2

sssd.conf[pam] セクションに追加します。

詳細は、man sssd.conf ページを参照してください。

17.10. 削除された SSSD 機能

17.10.1. sssd-secrets が削除される

System Security Services Daemon (SSSD) の sssd-secrets コンポーネントは、Red Hat Enterprise Linux 8 から削除されました。Custodia シークレットサービスプロバイダーが、以前よりも活発に開発されなくなったためです。その他の Identity Management ツールを使用して Identity Management Vault などのシークレットを保存します。

17.10.2. SSSD バージョンの libwbclient が削除される

libwbclient パッケージの SSSD 実装により、Samba smbd サービスは、winbind サービスを実行する必要なく、AD からユーザーおよびグループ情報を取得できていました。Samba では、winbind サービスが実行しており、AD との通信を処理する必要があるため、セキュリティー上の理由から、関連するコードが smdb から削除されました。この追加の必須機能は SSSD の一部ではなく、また、libwbclient の SSSD 実装は Samba の最近のバージョンでは使用できないため、libwbclient の SSSD 実装は RHEL 8.5 で削除されました。

第18章 Web コンソール

18.1. Web コンソールがデフォルトで利用可能

RHEL 8 Web コンソールのパッケージ (Cockpit とも呼ばれます) は、Red Hat Enterprise Linux のデフォルトリポジトリーに同梱されるようになったため、登録済みの RHEL 8 システムにすぐにインストールできます。

さらに、RHEL 8 の最小インストール以外のインストールでは、Web コンソールが自動的にインストールされ、コンソールに必要なファイアウォールポートが自動的に開くようになりました。

ログイン前に、Web コンソールを有効にしたり、Web コンソールにアクセスする方法を示すシステムメッセージも追加されました。

18.2. 新しいファイアウォールインターフェイス

RHEL 8 Web コンソールの Networking タブに Firewall セクションが追加されました。このセクションでは以下のことができます。

  • ファイアウォールの有効化/無効化
  • サービスの追加/削除

詳細は Web コンソールでのファイアウォールの管理 を参照してください。

18.3. サブスクリプション管理

RHEL 8 Web コンソールは、ローカルシステムにインストールされている Red Hat Subscription Manager を使用するインターフェイスを提供します。Subscription Manager は Red Hat カスタマーポータルに接続し、利用可能な次のものをすべて確認します。

  • アクティブなサブスクリプション
  • 期限が切れたサブスクリプション
  • 更新されたサブスクリプション

Red Hat カスタマーポータルでサブスクリプションを更新したり、別のサブスクリプションを入手したい場合に、Subscription Manager のデータを手動で更新する必要はありません。Subscription Manager は、Red Hat カスタマーポータルと自動的に同期します。

注記

新しい subscription-manager-cockpit パッケージで、Web コンソールのサブスクリプションページが提供されるようになりました。

詳細は Web コンソールを使用したサブスクリプションの管理 を参照してください。

18.4. Web コンソール用の IdM 統合が改善

システムが Identity Management (IdM) ドメインに登録されていると、RHEL 8 Web コンソールはデフォルトで、ドメインで集中管理されている IdM リソースを使用するようになりました。これには、以下の利点があります。

  • IdM ドメインの管理者は、Web コンソールを使用して、ローカルマシンを管理できます。
  • コンソールの Web サーバーでは、IdM 認証局 (CA) が発行した証明書に自動的に切り替わり、ブラウザーにより許可されます。
  • IdM ドメインに Kerberos チケットがあると、Web コンソールにアクセスする際にログイン認証情報を指定する必要がなくなりました。
  • IdM ドメインで認識されている SSH ホストは、手動で SSH 接続を追加しなくても Web コンソールにアクセスできます。

IdM と Web コンソールの統合が適切に機能するようにするには、IdM サーバーの enable-admins-sudo オプションを使用して、ipa-advise ユーティリティーを実行する必要があります。

18.5. Web コンソールにモバイルブラウザーとの互換性が追加

今回の更新で、モバイルブラウザーのバリアントで、Web コンソールメニューおよびページを移動できるようになりました。これにより、モバイルデバイスから RHEL 8 Web コンソールを使用してシステムを管理できます。

18.6. Web コンソールのフロントページに、不足している更新およびサブスクリプションを表示

RHEL 8 Web コンソールが管理するシステムに、古いパッケージまたは失効したサブスクリプションがあると、システムの Web コンソールのフロントページに警告が表示されるようになりました。

18.7. Web コンソールが PBD 登録に対応

今回の更新で、RHEL 8 Web コンソールインターフェイスを使用して、管理システムのディスクに PBD (Policy-Based Decryption) ルールを適用できるようになりました。これは、Clevis 複号クライアントを使用して、LUKS で暗号化されたディスクパーティションの自動ロック解除など、Web コンソールのさまざまなセキュリティー管理機能を容易にします。

18.8. LUKS v2 のサポート

Web コンソールの ストレージ タブでは、作成、ロック、ロック解除、サイズ変更、または LUKS (Linux Unified Key Setup) バージョン 2 形式を使用した暗号化デバイスを設定できます。

この新しいバージョンの LUKS は、以下を提供します。

  • より柔軟なロック解除ポリシー
  • より強力な暗号化
  • 今後の変更との互換性の高さ

18.9. Web コンソールを使用して仮想マシンが管理可能に

RHEL 8 Web コンソールインターフェイスに、Virtual Machines ページを追加できるようになりました。これにより、libvirt ベースの仮想マシンを作成および管理できるようになりました。

Web コンソールおよび仮想マシンマネージャーの仮想管理機能の相違点は、仮想マシンマネージャーと Web コンソールでの仮想化機能の相違点 を参照してください。

18.10. Web コンソールで Internet Explorer がサポートされない

RHEL 8 Web コンソールで Internet Explorer ブラウザーに対応しなくなりました。Internet Explorer の Web コンソールを開こうとするとエラー画面が表示され、代わりに使用できる推奨されるブラウザーのリストが表示されます。

第19章 仮想化

19.1. Web コンソールを使用して仮想マシンが管理可能に

RHEL 8 Web コンソールインターフェイスに、Virtual Machines ページを追加できるようになりました。これにより、libvirt ベースの仮想マシンを作成および管理できるようになりました。

また、Virtual Machine Manager (virt-manager) アプリケーションが非推奨になり、将来バージョンの RHEL ではサポートされなくなる可能性があります。

Web コンソールは、virt-manager が提供する仮想管理機能をすべて提供しているわけではないことに注意してください。RHEL 8 Web コンソールと Virtual Machine Manager の利用可能な機能の相違点の詳細は、RHEL 8 Web コンソールで仮想マシンの管理 を参照してください。

19.2. 仮想システムで Q35 マシンタイプに対応

Red hat Enterprise Linux 8 は、より現代的な PCI Express ベースのマシンタイプである Q35 に対応するようになりました。これにより、仮想デバイスの機能とパフォーマンスに様々な改善が行われ、最新の広範囲なデバイスで仮想システムへの互換性が保証されます。また、Red Hat Enterprise Linux 8 で作成された仮想マシンは、デフォルトで Q35 を使用するように設定されています。

以前のデフォルトの PC マシンタイプは非推奨になっており、将来バージョンの RHEL では対応されなくなる可能性があります。既存の仮想マシンのマシンタイプを PC から Q35 へ変更することは推奨されていません。

PCQ35 の主な相違点は以下のようになります。

  • Windows XP などの古いオペレーティングシステムでは Q35 に対応せず、Q35 の仮想マシンで使用すると起動しません。
  • 現在、Q35 仮想マシンで RHEL 6 をオペレーティングシステムとして使用すると、状況によっては、その仮想マシンにホットプラグした PCI デバイスが動作しません。さらに、一部のレガシーの virtio デバイスは、RHEL 6 の Q35 仮想マシンでは適切に動作しません。

    したがって、RHEL 6 仮想マシンには、マシンタイプ PC が使用されます。

  • Q35 は、PCI の代わりに PCI Express (PCI-e) バスをエミュレートします。その結果、異なるデバイストポロジーとアドレス指定方式が、ゲスト OS に提示されます。
  • Q35 には、IDE コントローラーの代わりに、組み込み SATA/AHCI コントローラーがあります。
  • SecureBoot 機能は、Q35 仮想マシンでのみ有効です。

19.3. 削除された仮想機能

cpu64-rhel6 CPU モデルが非推奨になり削除される

RHEL 8.1 では、cpu64-rhel6 QEMU 仮想 CPU モデルが非推奨になり、RHEL 8.2 から削除されました。ホストマシンにある CPU に応じて、QEMU および libvirt が提供する他の CPU モデルを使用することが推奨されます。

IVSHMEM が無効になる

複数の仮想マシンに共有メモリーを提供する仮想マシン間の共有メモリーデバイス (IVSHMEM) 機能は、Red Hat Enterprise Linux 8 で無効になりました。このデバイスで設定した仮想マシンは起動できません。同様に、そのようなデバイスにおけるホットプラグの試行も失敗します。

virt-install が NFS の場所を使用できなくなる

この更新により、virt-install ユーティリティーは、NFS の場所をマウントできなくなりました。したがって、NFS アドレスを持つ virt-install を使用する仮想マシンを、--location オプションの値としてインストールしようとすると失敗します。この変更を回避するには、virt-install を使用する前に NFS 共有をマウントするか、HTTP の場所を使用します。

RHEL 8 では tulip ドライバーに対応しない

この更新で、tulip ネットワークドライバーへの対応は終了しました。したがって、Microsoft Hyper-V ハイパーバイザーの Generation 1 仮想マシンで RHEL 8 を使用すると、Legacy Network Adapter デバイスが動作しないため、仮想マシンの PXE インストールに失敗します。

PXE インストールを起動するには、Generation 2 Hyper-V 仮想マシンに RHEL 8 をインストールします。RHEL 8 Generation 1 仮想マシンが必要な場合は ISO インストールを使用します。

LSI Logic SAS ドライバーおよび Parallel SCSI ドライバーはサポート対象外に

SCSI 用の LSI Logic SAS ドライバー (mptsas) および LSI Logic Parallel ドライバー (mptspi) はサポートされなくなりました。したがって、このドライバーは、VMWare ハイパーバイザーで RHEL 8 をゲストのオペレーティングシステムとして SCSI ディスクにインストールするために使用できますが、Red Hat は、作成した仮想マシンをサポートしません。

virtio-win をインストールすると、Windows ドライバーを含むフロッピーのディスクイメージが作成されなくなる

フロッピードライブの制限により、virtio-win ドライバーはフロッピーイメージとして提供されなくなりました。代わりに ISO イメージを使用する必要があります。

第20章 コンテナー

Red Hat Enterprise Linux 8 用の一連のコンテナーイメージが利用できます。以下は、主な変更点です。

  • RHEL 8.0 には、Docker が同梱されていません。コンテナーを使用するには、ツールの podmanbuildahskopeo、および runc が必要です。

    これらのツールの詳細およびRHEL 8 でコンテナーを使用する方法は コンテナーの構築、実行、および管理 を参照してください。

  • podman ツールが、完全に対応されるようになりました。

    podman ツールでは、1 つのノードにある Pod、コンテナーイメージ、およびコンテナーが管理されます。これは、libpod ライブラリーでビルドされます。このライブラリーでは、コンテナーおよびコンテナーのグループ (Pod と呼ばれています) の管理が有効になります。

    podman の使用方法は コンテナーの構築、実行、および管理 を参照してください。

  • RHEL 8 GA 以降、Red Hat Universal Base Images (UBI) が新たに利用できるようになりました。UBI は、標準および最小の RHEL ベースイメージなど、以前提供されていた Red Hat イメージの一部を置き換えるものです。

    以前の Red Hat イメージとは異なり、UBI は自由に再配布できます。つまり、あらゆる環境で使用でき、どこでも共有できます。Red Hat のお客様でなくても使用できます。

    UBI の詳細は コンテナーの構築、実行、および管理 を参照してください。

  • RHEL 8 GA 時に、AppStream コンポーネントを提供するコンテナーイメージが追加されました。このコンテナーイメージは、RHEL 7 の Red Hat Software Collections で配布されています。このような RHEL 8 イメージは、すべて ubi8 ベースイメージに基づいています。
  • 64 ビットの ARM アーキテクチャーに対するコンテナーイメージの ARM は、RHEL 8 で完全に対応されています。
  • RHEL 8 では、rhel-tools コンテナーが削除されました。sos ツールおよび redhat-support-tool ツールは、support-tools コンテナーで提供されています。システム管理者は、このイメージを、システムツールのコンテナーイメージをビルドするためのベースとして使用することもできます。
  • ルートレスコンテナーは、RHEL 8 ではテクノロジープレビューとして利用できます。

    ルートレスコンテナーは、管理者権限なしで通常のシステムユーザーにより作成および管理されるコンテナーです。

第21章 デスクトップおよびグラフィックス

21.1. GNOME Shell がデフォルトのデスクトップ環境に

RHEL 8 では、GNOME Shell がデフォルトのデスクトップ環境として配布されます。

KDE Plasma Workspaces (KDE) に関連するすべてのパッケージが削除され、デフォルトの GNOME デスクトップ環境の代替として KDE を使用することができなくなりました。

Red Hat は、KDE を使用する RHEL 7 から、RHEL 8 GNOME への移行は対応しません。KDE を使用する RHEL 7 を使用している場合は、データのバックアップを取得し、GNOME Shell で RHEL 8 をインストールします。

21.2. GNOME Shell への主な変更点

RHEL 8 では、GNOME Shell (バージョン 3.28) が配布されます。

本セクションでは、以下を説明します。

  • GNOME Shell (バージョン 3.28) に関連する機能強化を説明します。
  • GNOME Shell 環境とディスプレイプロトコルのデフォルトの組み合わせにおける変更を説明します。
  • デフォルトでは利用できない機能にアクセスする方法を説明します。
  • ソフトウェア管理の GNOME ツールにおける変更を説明します。

21.2.1. RHEL 8 の GNOME シェル (バージョン 3.28)

RHEL 8 では、GNOME シェルのバージョン 3.28 が利用できます。以下は、主な機能強化です。

  • GNOME Boxes の新機能
  • 新しいオンスクリーンキーボード
  • デバイスへの対応が拡張 (最も大きな統合は Thunderbolt 3 インターフェイス)
  • GNOME ソフトウェア、dconf-editor、および GNOME 端末の改善

21.2.2. GNOME Shell 環境

GNOME 3 では、2 つの基本的な環境を利用できます。

  • GNOME Standard
  • GNOME クラシック

いずれの環境でも、グラフィカルインターフェイスを構築するプロトコルを 2 つ使用できます。

  • X11 プロトコル (X.Org をディスプレイサーバーとして使用)
  • Wayland プロトコル (GNOME ShellWayland コンポジターおよびディスプレイサーバーとして使用)

    ディスプレイサーバーに関するこのソリューションは、Wayland の GNOME Shell と呼ばれています。

RHEL 8 のデフォルトの組み合わせは、Wayland の GNOME Shell を使用した GNOME 標準環境です。

ただし、GNOME Shell 環境と、グラフィックスのプロトコルスタックに切り替える場合があります。詳細は、「GNOME 環境およびディスプレイプロトコルの選択」 を参照してください。

関連情報

  • 両方の GNOME Shell 環境の基本的な使用方法は、GNOME 環境の概要 を参照してください。

21.2.3. デスクトップアイコン

RHEL 8 では、デスクトップアイコン機能は Nautilus ファイルマネージャーではなく、デスクトップアイコンの gnome-shell 拡張により提供されるようになりました。

拡張機能を使用できるようにするには、Appstream リポジトリーで利用可能な gnome-shell-extension-desktop-icons パッケージをインストールする必要があります。

関連情報

21.2.4. 分数スケール

Wayland の GNOME Shell セッションで、分数のスケーリング機能が利用できます。この機能は、GUI を分数でスケールでき、特定のディスプレイでスケールした GUI の出現を改善します。

この機能は現在試験的なものなので、デフォルトでは無効になっていることに注意してください。

分数スケールを有効にするには、次のコマンドを実行します。

# gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

21.2.5. パッケージ管理用 GNOME ソフトウェア

RHEL 7 のグラフィカル環境におけるパッケージ管理に、一連のツールを提供する gnome-packagekit パッケージが利用できなくなりました。

RHEL 8 では、アプリケーションと gnome-shell 拡張機能のインストールと更新を可能にする GNOME Software ユーティリティーにより同様の機能が提供されます。GNOME Software は、gnome-software パッケージで配布されます。

関連情報

21.2.6. sudo でグラフィカルアプリケーションを開く

sudo コマンドを使用して、端末でグラフィカルアプリケーションを開くには、次の操作が必要になります。

X11 アプリケーション

アプリケーションは、X11 ディスプレイプロトコルを使用して、X サーバーのアクセス制御リストにローカルユーザー root を追加します。その結果、rootXwayland に接続できるようになり、X11 プロトコルが Wayland プロトコル、または逆方向に翻訳されます。

例21.1 X サーバーアクセス制御リストへ root を追加して、sudo で xclock を開く

$ xhost +si:localuser:root

$ sudo xclock

Wayland アプリケーション

アプリケーションが Wayland ネイティブの場合は、-E オプションが含まれます。

例21.2 sudo で GNOME Calculator を開く

$ sudo -E gnome-calculator

もしくは、sudo およびアプリケーションの名前を入力すると、アプリケーションを開く操作に失敗し、次のエラーメッセージが表示されます。

No protocol specified
Unable to init server: could not connect: connection refused
# Failed to parse arguments: Cannot open display

21.3. GNOME 環境およびディスプレイプロトコルの選択

様々な GNOME 環境の組み合わせおよびグラフィックプロトコルスタックを切り替えるために、以下の手順を使用します。

手順

  1. ログイン画面 (GDM) で、Sign In ボタンの横にある歯車のボタンをクリックします。

    注記

    ロック画面からはこのオプションにアクセスできません。最初に RHEL 8 を起動するか、現在のセッションからログアウトすると、ログイン画面が表示されます。

    gnome environments new

  2. 表示されるドロップダウンメニューから、オプションを選択します。

    注記

    ログイン画面に表示されるメニューで、X.Org ディスプレイサーバーが X11 ディスプレイサーバーとして表示されます。

重要

GNOME 環境、および上記手順のグラフィックプロトコルスタックの変更は、ユーザーがログアウトしたり、コンピューターの電源を落としたり、システムを再起動しても持続します。

第22章 国際化

22.1. RHEL 8 の国際言語

Red Hat Enterprise Linux 8 は、複数の言語のインストールと、要件に応じた言語の変更に対応します。

  • 東アジア言語 - 日本語、韓国語、簡体字中国語、および繁体字中国語。
  • ヨーロッパ言語 - 英語、ドイツ語、スペイン語、フランス語、イタリア語、ポルトガル語、およびロシア語。

次の表は、さまざまな主要言語に提供されるフォントと入力方法を示しています。

言語デフォルトフォント (フォントパッケージ)入力メソッド

英語

dejavu-sans-fonts

 

フランス語

dejavu-sans-fonts

 

ドイツ語

dejavu-sans-fonts

 

イタリア語

dejavu-sans-fonts

 

ロシア語

dejavu-sans-fonts

 

スペイン語

dejavu-sans-fonts

 

ポルトガル語

dejavu-sans-fonts

 

簡体字中国語

google-noto-sans-cjk-ttc-fonts、google-noto-serif-cjk-ttc-fonts

ibus-libpinyin、libpinyin

繁体字中国語

google-noto-sans-cjk-ttc-fonts、google-noto-serif-cjk-ttc-fonts

ibus-libzhuyin、libzhuyin

日本語

google-noto-sans-cjk-ttc-fonts、google-noto-serif-cjk-ttc-fonts

ibus-kkc、libkkc

韓国語

google-noto-sans-cjk-ttc-fonts、google-noto-serif-cjk-ttc-fonts

ibus-hangul、libhangu

22.2. RHEL 8 における国際化の主な変更点

RHEL 8 では、RHEL 7 の国際化に以下の変更が加えられています。

  • Unicode 11 コンピューティングの業界標準のサポートが追加されました。
  • 国際化は複数のパッケージで配布され、より小さなフットプリントのインストールを可能にします。詳細は、Using langpacks を参照してください。
  • 複数のロケールの glibc パッケージの更新が、Common Locale Data Repository (CLDR) と同期するようになりました。

第23章 Red Hat Enterprise Linux for SAP Solutions

Red Hat Enterprise Linux for SAP Solutions は、SAP ワークロードの一貫した基盤を提供します。SAP 環境など、ビジネスクリティカルな IT ランドスケープに RHEL for SAP Solutions サブスクリプションが提供する機能および利点のリストは、Overview of the Red Hat Enterprise Linux for SAP Solutions subscription を参照してください。以下のリソースは、RHEL 7 から RHEL 8 への変更の概要を示しています。

BaseOS と AppStream の 2 つの主要な RHEL リポジトリーの他に、RHEL 8 for SAP Solutions サブスクリプションには、SAP Solutions リポジトリーと SAP NetWeaver が含まれます。どちらのリポジトリーも SAP 環境およびワークロードに必要です。

RHEL 7 と RHEL 8 の間でリポジトリー名の変更

以下の表は、RHEL 7 for SAP HANA / Solutions と RHEL 8 for SAP Solutions との間で名前が変更されたリポジトリーのリストです。

元のリポジトリー名新規リポジトリー名 [a]変更があったバージョン備考

rhel-sap-hana-for-rhel-7-<server|for-power-le>-rpms

rhel-8-for-<arch>-sap-solutions-rpms

RHEL 8.0

延長更新サポート (EUS) リポジトリーおよび Update Services for SAP Solutions (E4S) リポジトリーにも適用されます。

rhel-sap-for-rhel-7-<server|for-power-le>-rpms

rhel-8-for-<arch>-sap-netweaver-rpms

RHEL 8.0

延長更新サポート (EUS) リポジトリーおよび Update Services for SAP Solutions (E4S) リポジトリーにも適用されます。

[a] この表はサンプルを使用して完全なリポジトリー ID を特定し、<arch> は特定のアーキテクチャーです。

付録A パッケージの変更

以下の章では、パッケージに関するRHEL 8 と RHEL 9 の間の変更点と、RHEL 9 のマイナーリリース間の変更点を説明します。

A.1. 新しいパッケージ

A.1.1. RHEL 8 マイナーリリースに追加されたパッケージ

以下のパッケージが、RHEL 8.1 以降の RHEL 8 マイナーリリースに追加されました。

パッケージリポジトリー追加されたバージョン

aardvark-dns

rhel8-AppStream

RHEL 8.6

accel-config

rhel8-BaseOS

RHEL 8.4

accel-config-devel

rhel8-CRB

RHEL 8.4

accel-config-libs

rhel8-BaseOS

RHEL 8.4

adwaita-icon-theme-devel

rhel8-CRB

RHEL 8.6

adwaita-qt5

rhel8-AppStream

RHEL 8.5

alsa-sof-firmware

rhel8-BaseOS

RHEL 8.3

alsa-sof-firmware-debug

rhel8-BaseOS

RHEL 8.3

anaconda-widgets-devel

rhel8-CRB

RHEL 8.7

annobin-annocheck

rhel8-AppStream

RHEL 8.3

ansible-collection-microsoft-sql

rhel8-AppStream

RHEL 8.5

ansible-collection-redhat-rhel_mgmt

rhel8-AppStream

RHEL 8.5

ansible-core

rhel8-AppStream

RHEL 8.6

ansible-freeipa

rhel8-AppStream

RHEL 8.1

ansible-freeipa-tests

rhel8-AppStream

RHEL 8.5

ansible-pcp

rhel8-AppStream

RHEL 8.5

ansible-test

rhel8-AppStream

RHEL 8.6

apiguardian

rhel8-AppStream

RHEL 8.4

asio-devel

rhel8-CRB

RHEL 8.1

asio-devel

rhel8-CRB

RHEL 8.3

aspnetcore-runtime-3.1

rhel8-AppStream

RHEL 8.2

aspnetcore-runtime-5.0

rhel8-AppStream

RHEL 8.3

aspnetcore-runtime-6.0

rhel8-AppStream

RHEL 8.5

aspnetcore-runtime-7.0

rhel8-AppStream

RHEL 8.7

aspnetcore-runtime-8.0

rhel8-AppStream

RHEL 8.10

aspnetcore-targeting-pack-3.1

rhel8-AppStream

RHEL 8.2

aspnetcore-targeting-pack-5.0

rhel8-AppStream

RHEL 8.3

aspnetcore-targeting-pack-6.0

rhel8-AppStream

RHEL 8.5

aspnetcore-targeting-pack-7.0

rhel8-AppStream

RHEL 8.7

aspnetcore-targeting-pack-8.0

rhel8-AppStream

RHEL 8.10

autogen-libopts-devel

rhel8-CRB

RHEL 8.3

avahi-glib-devel

rhel8-CRB

RHEL 8.4

avahi-gobject-devel

rhel8-CRB

RHEL 8.4

avahi-tools

rhel8-AppStream

RHEL 8.9

avahi-ui

rhel8-CRB

RHEL 8.4

avahi-ui-devel

rhel8-CRB

RHEL 8.4

bash-devel

rhel8-CRB

RHEL 8.6

batik-css

rhel8-AppStream

RHEL 8.4

batik-util

rhel8-AppStream

RHEL 8.4

bcc-devel

rhel8-CRB

RHEL 8.2

bind9.16

rhel8-AppStream

RHEL 8.6

bind9.16-chroot

rhel8-AppStream

RHEL 8.6

bind9.16-devel

rhel8-CRB

RHEL 8.6

bind9.16-dnssec-utils

rhel8-CRB

RHEL 8.6

bind9.16-doc

rhel8-CRB

RHEL 8.6

bind9.16-libs

rhel8-AppStream

RHEL 8.6

bind9.16-license

rhel8-AppStream

RHEL 8.6

bind9.16-utils

rhel8-AppStream

RHEL 8.6

chan

rhel8-AppStream

RHEL 8.3

cifs-utils-devel

rhel8-CRB

RHEL 8.8

clang-resource-filesystem

rhel8-AppStream

RHEL 8.5

clang-tools-extra-devel

rhel8-AppStream

RHEL 8.10

cockpit-leapp

rhel8-AppStream

RHEL 8.7

compat-exiv2-026

rhel8-AppStream

RHEL 8.2

compat-hwloc1

rhel8-BaseOS

RHEL 8.5

compat-sap-c++-10

rhel8-SAP

RHEL 8.3

compat-sap-c++-11

rhel8-SAP

RHEL 8.5

compat-sap-c++-12

rhel8-SAP

RHEL 8.7

conmon

rhel8-AppStream

RHEL 8.2

coreos-installer

rhel8-AppStream

RHEL 8.5

coreos-installer-bootinfra

rhel8-AppStream

RHEL 8.5

coreos-installer-dracut

rhel8-AppStream

RHEL 8.6

crit

rhel8-AppStream

RHEL 8.2

criu-devel

rhel8-AppStream

RHEL 8.5

criu-libs

rhel8-AppStream

RHEL 8.5

crun

rhel8-AppStream

RHEL 8.3

crypto-policies-scripts

rhel8-BaseOS

RHEL 8.3

dejavu-lgc-sans-fonts

rhel8-AppStream

RHEL 8.4

delve

rhel8-AppStream

RHEL 8.2

directory-maven-plugin-javadoc

rhel8-AppStream

RHEL 8.2

directory-maven-plugin

rhel8-AppStream

RHEL 8.2

disruptor

rhel8-AppStream

RHEL 8.6

dotnet-apphost-pack-3.1

rhel8-AppStream

RHEL 8.2

dotnet-apphost-pack-5.0

rhel8-AppStream

RHEL 8.3

dotnet-apphost-pack-6.0

rhel8-AppStream

RHEL 8.5

dotnet-apphost-pack-7.0

rhel8-AppStream

RHEL 8.7

dotnet-apphost-pack-8.0

rhel8-AppStream

RHEL 8.10

dotnet-build-reference-packages

rhel8-CRB

RHEL 8.5

dotnet-hostfxr-3.1

rhel8-AppStream

RHEL 8.2

dotnet-hostfxr-5.0

rhel8-AppStream

RHEL 8.3

dotnet-hostfxr-6.0

rhel8-AppStream

RHEL 8.5

dotnet-hostfxr-7.0

rhel8-AppStream

RHEL 8.7

dotnet-hostfxr-8.0

rhel8-AppStream

RHEL 8.10

dotnet-runtime-3.1

rhel8-AppStream

RHEL 8.2

dotnet-runtime-5.0

rhel8-AppStream

RHEL 8.3

dotnet-runtime-6.0

rhel8-AppStream

RHEL 8.5

dotnet-runtime-7.0

rhel8-AppStream

RHEL 8.7

dotnet-runtime-8.0

rhel8-AppStream

RHEL 8.10

dotnet-sdk-3.1-source-built-artifacts

rhel8-CRB

RHEL 8.5

dotnet-sdk-3.1

rhel8-AppStream

RHEL 8.2

dotnet-sdk-5.0

rhel8-AppStream

RHEL 8.3

dotnet-sdk-5.0-source-built-artifacts

rhel8-CRB

RHEL 8.5

dotnet-sdk-6.0

rhel8-AppStream

RHEL 8.5

dotnet-sdk-6.0-source-built-artifacts

rhel8-CRB

RHEL 8.6

dotnet-sdk-7.0

rhel8-AppStream

RHEL 8.7

dotnet-sdk-7.0-source-built-artifacts

rhel8-CRB

RHEL 8.7

dotnet-sdk-8.0

rhel8-AppStream

RHEL 8.10

dotnet-sdk-8.0-source-built-artifacts

rhel8-CRB

RHEL 8.10

dotnet-targeting-pack-3.1

rhel8-AppStream

RHEL 8.2

dotnet-targeting-pack-5.0

rhel8-AppStream

RHEL 8.3

dotnet-targeting-pack-6.0

rhel8-AppStream

RHEL 8.5

dotnet-targeting-pack-7.0

rhel8-AppStream

RHEL 8.7

dotnet-targeting-pack-8.0

rhel8-AppStream

RHEL 8.10

dotnet-templates-3.1

rhel8-AppStream

RHEL 8.2

dotnet-templates-5.0

rhel8-AppStream

RHEL 8.3

dotnet-templates-6.0

rhel8-AppStream

RHEL 8.5

dotnet-templates-7.0

rhel8-AppStream

RHEL 8.7

dotnet-templates-8.0

rhel8-AppStream

RHEL 8.10

dotnet5.0-build-reference-packages

rhel8-CRB

RHEL 8.5

dwarves

rhel8-CRB

RHEL 8.2

ecj

rhel8-AppStream

RHEL 8.8

eclipse-ecf-core

rhel8-AppStream

RHEL 8.4

eclipse-ecf-runtime

rhel8-AppStream

RHEL 8.4

eclipse-emf-core

rhel8-AppStream

RHEL 8.4

eclipse-emf-runtime

rhel8-AppStream

RHEL 8.4

eclipse-emf-xsd

rhel8-AppStream

RHEL 8.4

eclipse-equinox-osgi

rhel8-AppStream

RHEL 8.4

eclipse-jdt

rhel8-AppStream

RHEL 8.4

eclipse-p2-discovery

rhel8-AppStream

RHEL 8.4

eclipse-pde

rhel8-AppStream

RHEL 8.4

eclipse-platform

rhel8-AppStream

RHEL 8.4

eclipse-swt

rhel8-AppStream

RHEL 8.4

ee4j-parent

rhel8-AppStream

RHEL 8.2

efivar-devel

rhel8-CRB

RHEL 8.6

egl-utils

rhel8-AppStream

RHEL 8.7

elfutils-debuginfod

rhel8-BaseOS

RHEL 8.3

elfutils-debuginfod-client-devel

rhel8-AppStream

RHEL 8.2

elfutils-debuginfod-client

rhel8-AppStream

RHEL 8.2

emoji-picker

rhel8-AppStream

RHEL 8.4

eth-tools-basic

rhel8-AppStream

RHEL 8.5

eth-tools-fastfabric

rhel8-AppStream

RHEL 8.5

evince-devel

rhel8-CRB

RHEL 8.4

evolution-data-server-ui

rhel8-AppStream

RHEL 8.10

evolution-data-server-ui-devel

rhel8-AppStream

RHEL 8.10

fapolicyd

rhel8-AppStream

RHEL 8.1

fapolicyd-selinux

rhel8-AppStream

RHEL 8.3

fasterxml-oss-parent

rhel8-AppStream

RHEL 8.10

fdo-admin-cli

rhel8-AppStream

RHEL 8.6

fdo-client

rhel8-AppStream

RHEL 8.6

fdo-init

rhel8-AppStream

RHEL 8.6

fdo-manufacturing-server

rhel8-AppStream

RHEL 8.6

fdo-owner-cli

rhel8-AppStream

RHEL 8.6

fdo-owner-onboarding-server

rhel8-AppStream

RHEL 8.6

fdo-rendezvous-server

rhel8-AppStream

RHEL 8.6

felix-gogo-command

rhel8-AppStream

RHEL 8.4

felix-gogo-runtime

rhel8-AppStream

RHEL 8.4

felix-gogo-shell

rhel8-AppStream

RHEL 8.4

felix-scr

rhel8-AppStream

RHEL 8.4

fence-agents-ibm-powervs

rhel8-AppStream

RHEL 8.6

fence-agents-ibm-vpc

rhel8-AppStream

RHEL 8.6

fence-agents-kubevirt

rhel8-AppStream

RHEL 8.6

fence-agents-openstack

rhel8-HighAvailability

RHEL 8.7

fence-virtd-cpg

rhel8-AppStream

RHEL 8.6

flatpak-devel

rhel8-CRB

RHEL 8.5

flatpak-selinux

rhel8-AppStream

RHEL 8.2

flatpak-session-helper

rhel8-AppStream

RHEL 8.2

flatpak-spawn

rhel8-AppStream

RHEL 8.4

flatpak-xdg-utils

rhel8-AppStream

RHEL 8.4

frr-selinux

rhel8-AppStream

RHEL 8.7

fstrm

rhel8-AppStream

RHEL 8.4

fstrm-devel

rhel8-AppStream

RHEL 8.4

fstrm-utils

rhel8-CRB

RHEL 8.7

fwupd-devel

rhel8-CRB

RHEL 8.6

gcc-plugin-annobin

rhel8-AppStream

RHEL 8.7

gcc-toolset-9-libasan-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-9-libatomic-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-9-liblsan-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-9-libtsan-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-9-libubsan-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-10

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-annobin

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-binutils

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-binutils-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-build

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-dwz

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-dyninst

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-dyninst-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-debuginfod-client

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-debuginfod-client-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-libelf

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-libelf-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-libs

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc-c++

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc-gdb-plugin

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc-gfortran

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc-plugin-devel

rhel8-CRB

RHEL 8.5

gcc-toolset-10-gdb

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gdb-doc

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gdb-gdbserver

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libasan-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libatomic-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libitm-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-liblsan-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libquadmath-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libstdc++-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libstdc++-docs

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libtsan-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libubsan-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-ltrace

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-make

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-make-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-perftools

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-runtime

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-strace

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-client

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-initscript

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-runtime

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-sdt-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-server

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-toolchain

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-valgrind

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-valgrind-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-11

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-annobin-annocheck

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-annobin-docs

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-annobin-plugin-gcc

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-binutils

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-binutils-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-build

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-dwz

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-dyninst

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-dyninst-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-debuginfod-client

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-debuginfod-client-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-libelf

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-libelf-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-libs

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc-c++

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc-gdb-plugin

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc-gfortran

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc-plugin-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gdb

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gdb-doc

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gdb-gdbserver

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libasan-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libatomic-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libgccjit

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libgccjit-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libgccjit-docs

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libitm-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-liblsan-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libquadmath-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libstdc++-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libstdc++-docs

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libtsan-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libubsan-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-ltrace

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-make

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-make-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-perftools

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-runtime

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-strace

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-client

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-initscript

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-runtime

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-sdt-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-server

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-toolchain

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-valgrind

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-valgrind-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-12

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-annobin-annocheck

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-annobin-docs

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-annobin-plugin-gcc

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-binutils

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-binutils-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-binutils-gold

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-build

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-dwz

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gcc

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gcc-c++

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gcc-gfortran

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gcc-plugin-annobin

rhel8-AppStream

RHEL 8.8

gcc-toolset-12-gcc-plugin-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gdb

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libasan-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libatomic-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libgccjit

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libgccjit-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libgccjit-docs

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libitm-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-liblsan-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libquadmath-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libstdc++-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libstdc++-docs

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libtsan-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libubsan-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-offload-nvptx

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-runtime

rhel8-AppStream

RHEL 8.7

gcc-toolset-13

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-annobin-annocheck

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-annobin-docs

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-annobin-plugin-gcc

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-binutils

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-binutils-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-binutils-gold

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-dwz

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc-c++

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc-gfortran

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc-plugin-annobin

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc-plugin-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gdb

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libasan-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libatomic-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libgccjit

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libgccjit-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libitm-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-liblsan-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libquadmath-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libstdc++-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libstdc++-docs

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libtsan-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libubsan-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-offload-nvptx

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-runtime

rhel8-AppStream

RHEL 8.9

gdm-devel

rhel8-CRB

RHEL 8.6

gdm-pam-extensions-devel

rhel8-CRB

RHEL 8.6

git-credential-libsecret

rhel8-AppStream

RHEL 8.3

git-lfs

rhel8-AppStream

RHEL 8.3

glade

rhel8-CRB

RHEL 8.7

glassfish-jsp

rhel8-AppStream

RHEL 8.4

glibc-doc

rhel8-BaseOS

RHEL 8.7

glibc-gconv-extra

rhel8-AppStream

RHEL 8.6

gnome-session-kiosk-session

rhel8-AppStream

RHEL 8.5

gnome-shell-extension-classification-banner

rhel8-AppStream

RHEL 8.6

gnome-shell-extension-custom-menu

rhel8-AppStream

RHEL 8.9

gnome-shell-extension-dash-to-panel

rhel8-AppStream

RHEL 8.6

gnome-shell-extension-gesture-inhibitor

rhel8-AppStream

RHEL 8.5

gnome-shell-extension-heads-up-display

rhel8-AppStream

RHEL 8.6

gnome-software-devel

rhel8-CRB

RHEL 8.5

google-gson

rhel8-AppStream

RHEL 8.4

grafana-pcp

rhel8-AppStream

RHEL 8.2

grafana-selinux

rhel8-AppStream

RHEL 8.10

graphviz-python3

rhel8-CRB

RHEL 8.2

graphviz-ruby

rhel8-AppStream

RHEL 8.10

greenboot

rhel8-AppStream

RHEL 8.3

greenboot-default-health-checks

rhel8-AppStream

RHEL 8.6

greenboot-grub2

rhel8-AppStream

RHEL 8.3

greenboot-reboot

rhel8-AppStream

RHEL 8.3

greenboot-rpm-ostree-grub2

rhel8-AppStream

RHEL 8.3

greenboot-status

rhel8-AppStream

RHEL 8.3

gtk-vnc2-devel

rhel8-CRB

RHEL 8.9

gtk3-devel-docs

rhel8-CRB

RHEL 8.7

guava

rhel8-AppStream

RHEL 8.2

gvnc-devel

rhel8-CRB

RHEL 8.9

HdrHistogram

rhel8-AppStream

RHEL 8.3

HdrHistogram_c

rhel8-AppStream

RHEL 8.3

HdrHistogram-javadoc

rhel8-AppStream

RHEL 8.3

hostapd

rhel8-AppStream

RHEL 8.6

http-parser-devel

rhel8-CRB

RHEL 8.2

ibus-table-devel

rhel8-CRB

RHEL 8.4

ibus-table-tests

rhel8-CRB

RHEL 8.4

ibus-typing-booster-tests

rhel8-CRB

RHEL 8.4

icu4j

rhel8-AppStream

RHEL 8.4

idm-jss

rhel8-AppStream

RHEL 8.10

idm-jss-javadoc

rhel8-AppStream

RHEL 8.10

idm-ldapjdk

rhel8-AppStream

RHEL 8.10

idm-ldapjdk-javadoc

rhel8-AppStream

RHEL 8.10

idm-pki-acme

rhel8-AppStream

RHEL 8.7

idm-pki-base

rhel8-AppStream

RHEL 8.7

idm-pki-base-java

rhel8-AppStream

RHEL 8.7

idm-pki-ca

rhel8-AppStream

RHEL 8.7

idm-pki-kra

rhel8-AppStream

RHEL 8.7

idm-pki-server

rhel8-AppStream

RHEL 8.7

idm-pki-symkey

rhel8-AppStream

RHEL 8.7

idm-pki-tools

rhel8-AppStream

RHEL 8.7

idm-tomcatjss

rhel8-AppStream

RHEL 8.10

idn2

rhel8-AppStream

RHEL 8.1

ima-evm-utils0

rhel8-BaseOS

RHEL 8.4

inkscape1

rhel8-AppStream

RHEL 8.8

inkscape1-docs

rhel8-AppStream

RHEL 8.8

inkscape1-view

rhel8-AppStream

RHEL 8.8

intel-cmt-cat-devel

rhel8-CRB

RHEL 8.4

ipa-client-epn

rhel8-AppStream

RHEL 8.3

ipa-client-samba

rhel8-AppStream

RHEL 8.1

ipa-healthcheck

rhel8-AppStream

RHEL 8.1

ipa-healthcheck-core

rhel8-AppStream

RHEL 8.2

ipa-selinux

rhel8-AppStream

RHEL 8.3

ipxe-bootimgs-aarch64

rhel8-AppStream

RHEL 8.6

ipxe-bootimgs-x86

rhel8-AppStream

RHEL 8.6

iscsi-initiator-utils-devel

rhel8-CRB

RHEL 8.3

jackson-bom

rhel8-AppStream

RHEL 8.10

jackson-modules-base

rhel8-AppStream

RHEL 8.10

jackson-parent

rhel8-AppStream

RHEL 8.10

jaf-javadoc

rhel8-AppStream

RHEL 8.2

jaf

rhel8-AppStream

RHEL 8.2

jakarta-activation2

rhel8-AppStream

RHEL 8.8

jakarta-annotations

rhel8-AppStream

RHEL 8.7

java-1.8.0-openjdk-accessibility-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-accessibility-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-demo-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-demo-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-devel-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-devel-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-headless-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-headless-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-src-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-src-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-demo-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-demo-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-devel-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-devel-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-headless-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-headless-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-jmods-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-jmods-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-src-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-src-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-static-libs

rhel8-AppStream

RHEL 8.3

java-11-openjdk-static-libs-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-static-libs-slowdebug

rhel8-CRB

RHEL 8.4

java-17-openjdk

rhel8-AppStream

RHEL 8.5

java-17-openjdk-demo

rhel8-AppStream

RHEL 8.5

java-17-openjdk-demo-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-demo-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-devel

rhel8-AppStream

RHEL 8.5

java-17-openjdk-devel-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-devel-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-headless

rhel8-AppStream

RHEL 8.5

java-17-openjdk-headless-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-headless-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-javadoc

rhel8-AppStream

RHEL 8.5

java-17-openjdk-javadoc-zip

rhel8-AppStream

RHEL 8.5

java-17-openjdk-jmods

rhel8-AppStream

RHEL 8.5

java-17-openjdk-jmods-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-jmods-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-src

rhel8-AppStream

RHEL 8.5

java-17-openjdk-src-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-src-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-static-libs

rhel8-AppStream

RHEL 8.5

java-17-openjdk-static-libs-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-static-libs-slowdebug

rhel8-CRB

RHEL 8.5

java-21-openjdk

rhel8-AppStream

RHEL 8.9

java-21-openjdk-demo

rhel8-AppStream

RHEL 8.9

java-21-openjdk-demo-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-demo-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-devel

rhel8-AppStream

RHEL 8.9

java-21-openjdk-devel-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-devel-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-headless

rhel8-AppStream

RHEL 8.9

java-21-openjdk-headless-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-headless-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-javadoc

rhel8-AppStream

RHEL 8.9

java-21-openjdk-javadoc-zip

rhel8-AppStream

RHEL 8.9

java-21-openjdk-jmods

rhel8-AppStream

RHEL 8.9

java-21-openjdk-jmods-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-jmods-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-src

rhel8-AppStream

RHEL 8.9

java-21-openjdk-src-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-src-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-static-libs

rhel8-AppStream

RHEL 8.9

java-21-openjdk-static-libs-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-static-libs-slowdebug

rhel8-CRB

RHEL 8.9

jaxb-api4

rhel8-AppStream

RHEL 8.8

jaxb-codemodel

rhel8-AppStream

RHEL 8.8

jaxb-core

rhel8-AppStream

RHEL 8.8

jaxb-dtd-parser

rhel8-AppStream

RHEL 8.8

jaxb-istack-commons-runtime

rhel8-AppStream

RHEL 8.8

jaxb-istack-commons-tools

rhel8-AppStream

RHEL 8.8

jaxb-relaxng-datatype

rhel8-AppStream

RHEL 8.8

jaxb-rngom

rhel8-AppStream

RHEL 8.8

jaxb-runtime

rhel8-AppStream

RHEL 8.8

jaxb-txw2

rhel8-AppStream

RHEL 8.8

jaxb-xjc

rhel8-AppStream

RHEL 8.8

jaxb-xsom

rhel8-AppStream

RHEL 8.8

jctools

rhel8-AppStream

RHEL 8.6

jetty-continuation

rhel8-AppStream

RHEL 8.4

jetty-http

rhel8-AppStream

RHEL 8.4

jetty-io

rhel8-AppStream

RHEL 8.4

jetty-security

rhel8-AppStream

RHEL 8.4

jetty-server

rhel8-AppStream

RHEL 8.4

jetty-servlet

rhel8-AppStream

RHEL 8.4

jetty-util

rhel8-AppStream

RHEL 8.4

jigawatts

rhel8-AppStream

RHEL 8.5

jigawatts-javadoc

rhel8-AppStream

RHEL 8.5

jigawatts-javadoc

rhel8-AppStream

RHEL 8.8

jmc-core-javadoc

rhel8-AppStream

RHEL 8.2

jmc-core

rhel8-AppStream

RHEL 8.2

jmc

rhel8-AppStream

RHEL 8.2

jolokia-jvm-agent

rhel8-AppStream

RHEL 8.2

jq-devel

rhel8-CRB

RHEL 8.5

js-d3-flame-graph

rhel8-AppStream

RHEL 8.3

Judy-devel

rhel8-BaseOS

RHEL 8.1

Judy-devel

rhel8-CRB

RHEL 8.3

junit5

rhel8-AppStream

RHEL 8.4

kernel-abi-stablelists

rhel8-BaseOS

RHEL 8.4

kmod-redhat-oracleasm

rhel8-BaseOS

RHEL 8.4

kpatch-dnf

rhel8-BaseOS

RHEL 8.4

lasso-devel

rhel8-CRB

RHEL 8.5

ldns-doc

rhel8-CRB

RHEL 8.10

ldns-utils

rhel8-CRB

RHEL 8.10

leapp

rhel8-AppStream

RHEL 8.7

leapp-deps

rhel8-AppStream

RHEL 8.7

leapp-upgrade-el8toel9

rhel8-AppStream

RHEL 8.7

leapp-upgrade-el8toel9-deps

rhel8-AppStream

RHEL 8.7

libadwaita-qt5

rhel8-AppStream

RHEL 8.5

libasan6

rhel8-AppStream

RHEL 8.4

libasan8

rhel8-AppStream

RHEL 8.7

libbabeltrace-devel

rhel8-CRB

RHEL 8.3

libblockdev-crypto-devel

rhel8-CRB

RHEL 8.3

libblockdev-devel

rhel8-CRB

RHEL 8.3

libblockdev-fs-devel

rhel8-CRB

RHEL 8.3

libblockdev-loop-devel

rhel8-CRB

RHEL 8.3

libblockdev-lvm-devel

rhel8-CRB

RHEL 8.3

libblockdev-mdraid-devel

rhel8-CRB

RHEL 8.3

libblockdev-part-devel

rhel8-CRB

RHEL 8.3

libblockdev-swap-devel

rhel8-CRB

RHEL 8.3

libblockdev-utils-devel

rhel8-CRB

RHEL 8.3

libblockdev-vdo-devel

rhel8-CRB

RHEL 8.3

libbpf-devel

rhel8-CRB

RHEL 8.2

libbpf-static

rhel8-CRB

RHEL 8.2

libbpf

rhel8-BaseOS

RHEL 8.2

libbytesize-devel

rhel8-CRB

RHEL 8.3

libcap-ng-python3

rhel8-BaseOS

RHEL 8.5

libdazzle-devel

rhel8-CRB

RHEL 8.4

libdhash-devel

rhel8-CRB

RHEL 8.7

libdnf-devel

rhel8-CRB

RHEL 8.4

libdwarves1

rhel8-CRB

RHEL 8.2

libecpg

rhel8-AppStream

RHEL 8.4

libecpg-devel

rhel8-CRB

RHEL 8.4

libepubgen-devel

rhel8-CRB

RHEL 8.4

libestr-devel

rhel8-CRB

RHEL 8.7

libgcab1-devel

rhel8-CRB

RHEL 8.6

libguestfs-appliance

rhel8-AppStream

RHEL 8.6

libnbd

rhel8-AppStream

RHEL 8.3

libnbd-bash-completion

rhel8-AppStream

RHEL 8.6

libnbd-devel

rhel8-AppStream

RHEL 8.3

libnetapi

rhel8-BaseOS

RHEL 8.8

libnetapi-devel

rhel8-CRB

RHEL 8.8

libnftnl-devel

rhel8-CRB

RHEL 8.2

libnumbertext

rhel8-AppStream

RHEL 8.4

libpgtypes

rhel8-AppStream

RHEL 8.4

libpinyin-devel

rhel8-CRB

RHEL 8.6

libpsl-devel

rhel8-CRB

RHEL 8.3

librabbitmq-tools

rhel8-AppStream

RHEL 8.10

libreoffice

rhel8-AppStream

RHEL 8.8

librepo-devel

rhel8-CRB

RHEL 8.4

librhsm-devel

rhel8-CRB

RHEL 8.4

libselinux-static

rhel8-CRB

RHEL 8.6

libsemanage-devel

rhel8-CRB

RHEL 8.3

libserf-devel

rhel8-CRB

RHEL 8.7

libslirp

rhel8-AppStream

RHEL 8.3

libslirp-devel

rhel8-AppStream

RHEL 8.3

libsmi-devel

rhel8-CRB

RHEL 8.4

libsndfile-utils

rhel8-AppStream

RHEL 8.8

libsolv-devel

rhel8-CRB

RHEL 8.4

libsolv-tools

rhel8-CRB

RHEL 8.4

libss-devel

rhel8-CRB

RHEL 8.6

libssh-config

rhel8-BaseOS

RHEL 8.1

libstoragemgmt-devel

rhel8-BaseOS

RHEL 8.3

libstoragemgmt-devel

rhel8-CRB

RHEL 8.3

libstoragemgmt-nfs-plugin

rhel8-AppStream

RHEL 8.7

libtimezonemap-devel

rhel8-CRB

RHEL 8.10

libtpms

rhel8-AppStream

RHEL 8.6

libtpms-devel

rhel8-AppStream

RHEL 8.6

libtraceevent

rhel8-BaseOS

RHEL 8.8

libtraceevent-devel

rhel8-CRB

RHEL 8.8

libtracefs

rhel8-BaseOS

RHEL 8.8

libtracefs-devel

rhel8-CRB

RHEL 8.8

libtsan2

rhel8-AppStream

RHEL 8.7

libudisks2-devel

rhel8-CRB

RHEL 8.3

liburing-devel

rhel8-CRB

RHEL 8.3

liburing

rhel8-AppStream

RHEL 8.2

libuser-devel

rhel8-CRB

RHEL 8.6

libuv-devel

rhel8-CRB

RHEL 8.4

libverto-libev

rhel8-AppStream

RHEL 8.7

libvirt-daemon-driver-storage-iscsi-direct

rhel8-AppStream

RHEL 8.3

libvirt-wireshark

rhel8-AppStream

RHEL 8.6

libvma-utils

rhel8-AppStream

RHEL 8.9

libvoikko-devel

rhel8-CRB

RHEL 8.5

libwpe

rhel8-AppStream

RHEL 8.8

libwpe-devel

rhel8-CRB

RHEL 8.8

libxdp

rhel8-AppStream

RHEL 8.3

libxdp-devel

rhel8-CRB

RHEL 8.8

libxdp-static

rhel8-CRB

RHEL 8.8

libxkbfile-1.1.0-1.el8

rhel8-AppStream