3.7 リリースノート

Red Hat Software Collections 3.7

Red Hat Software Collections 3.7 リリースノート

Lenka Špačková

Red Hat Customer Content Services

Jaromír Hradílek

Red Hat Customer Content Services

Eliška Slobodová

Red Hat Customer Content Services

概要

Red Hat Software Collections 3.7 リリースノートでは、主な機能と、Red Hat Software Collections 3.7 の既知の問題に関する重要な情報が記載されています。
Red Hat Developer Toolset コレクションは、Red Hat Developer Toolset リリースノートおよびRed Hat Developer Toolset ユーザーガイドに記載されています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、弊社の CTO、 Chris Wright のメッセージ を参照してください。

第1章 Red Hat Software Collections 3.7

本章では、Red Hat Software Collections 3.7 コンテンツセットの概要を提供します。これは、コンポーネントとその説明、このバージョンの変更の概要、関連互換性情報のドキュメント、および既知の問題をリスト表示します。

1.1. Red Hat Software Collections について

アプリケーションによっては、最新の新機能を使用するために、より新しいバージョンのソフトウェアコンポーネントが必要になることがあります。Red Hat Software Collections は、基本的な Red Hat Enterprise Linux システムに含まれる同等のバージョンよりも新しい、またはこのシステムで最初に利用可能になった動的プログラミング言語、データベースサーバー、およびさまざまな関連パッケージのセットを提供する Red Hat 製品です。
Red Hat Software Collections 3.7 は、Red Hat Enterprise Linux 7 で利用できます。Red Hat Software Collections の一部として配布されるコンポーネントの一覧と、その機能の概要は 「主な特長」 を参照してください。
Red Hat Software Collections では、Red Hat Enterprise Linux 7 で提供されるデフォルトのシステムツールは置き換えられません。その代わりに、並列のツールセットが /opt/ ディレクトリーにインストールされ、提供された scl ユーティリティーを使用してユーザーがアプリケーションごとにオプションで有効にできます。たとえば、Perl または PostgreSQL のデフォルトのバージョンは、ベース Red Hat Enterprise Linux システムが提供するバージョンのままになります。
注記
Red Hat Enterprise Linux 8 では、同様のコンポーネントは Application Streams として提供されます。
すべての Red Hat Software Collections コンポーネントは、Red Hat Enterprise Linux サブスクリプション契約で完全にサポートされ、機能的に完全で、実稼働環境での使用を目的としています。重要なバグ修正とセキュリティーエラータは、Red Hat Enterprise Linux と同様に、各メジャーバージョンのリリースから少なくとも 2 年間は Red Hat Software Collections サブスクライバーに発行されます。各メジャーリリースストリームでは、選択したコンポーネントの各バージョンは後方互換性を維持します。個別コンポーネントのサポート期間の詳細は、Red Hat Software Collections Product Life Cycle を参照してください。

1.1.1. Red Hat Developer Toolset

Red Hat Developer Toolset は、個別の Software Collection として同梱される Red Hat Software Collections の一部です。Red Hat Developer Toolset の詳細は、Red Hat Developer Toolset リリースノート および Red Hat Developer Toolset ユーザーガイド を参照してください。

1.2. 主な特長

表1.1「Red Hat Software Collections のコンポーネント」 は、Red Hat Software Collections 3.7 のリリース時点でサポートされるコンポーネントをリスト表示します。すべての Software Collections は、Red Hat Enterprise Linux 7 でのみサポートされています。

表1.1 Red Hat Software Collections のコンポーネント

コンポーネント Software Collection 詳細
Red Hat Developer Toolset 10.1 devtoolset-10 Red Hat Developer Toolset は、Red Hat Enterprise Linux プラットフォームで作業する開発者向けに設計されています。GNU Compiler CollectionGNU Debugger、その他の開発用ツールやデバッグ用ツール、およびパフォーマンス監視ツールの現行バージョンを提供します。コンポーネントの完全なリストは、Red Hat Developer Toolset User Guideの『Red Hat Developer Toolset Components』の表を参照してください。
Perl 5.30.1 rh-perl530 Perl のリリース。これは、システム管理ユーティリティーと Web プログラミングに一般的に使用される高レベルのプログラミング言語です。rh-perl530 Software Collection は、MySQLPostgreSQL、および SQLite 用の追加のユーティリティー、スクリプト、およびデータベースコネクターを提供します。これには、httpd24 Software Collection でのみサポートされる Perl モジュール DateTime と Apache httpd モジュール mod_perl が含まれます。さらに、CPAN モジュールを簡単にインストールできる cpanm ユーティリティー、HTTP サーバーと通信するための LWP::UserAgent モジュール、通信のセキュリティーを保護する LWP::Protocol::https モジュールが提供されます。パッケージは rh-perl530 アップストリームに合わせて調整されます。インタープリターは perl530-perl パッケージにより提供されますが、perl-interpreter パッケージはコアモジュールもインストールします。
PHP 7.3.20 rh-php73 PEAR 1.10.9、APCu 5.1.17、および Xdebug 拡張が含まれる PHP 7.3 のリリース
Python 2.7.18 python27 多くの追加ユーティリティーを備えた Python 2.7 のリリース。この Python バージョンでは、順序付けされたディクショナリータイプ、高速な I/O 操作、Python 3 との前方互換性など、さまざまな機能および機能拡張が提供されます。python27 Software Collections には Python 2.7.13 インタープリター が含まれています。これは、Web アプリケーションおよび mod_wsgi (httpd24 Software Collection でのみサポート)、MySQL データベースコネクターおよび PostgreSQL データベースコネクター、ならびに numpy および scipy のプログラミングに役立つ拡張ライブラリーセットです。
Python 3.8.6 rh-python38 rh-python38 Software Collection には Python 3.8 が含まれ、新しい Python モジュール (contextvarsdataclasses、または importlib.resources、新しい言語機能、開発者エクスペリエンスの向上、パフォーマンスの向上) が導入されています。さらに、mod_wsgi (httpd24 Software Collection とのみサポート)、numpyscipypsycopg2 PostgreSQL データベースコネクターなど、一般的な拡張ライブラリーのセットが提供されます。
Ruby 2.6.7 rh-ruby26 Ruby 2.6 のリリース。このバージョンでは、複数のパフォーマンスの向上と新機能が提供されます。これには、エンドレス範囲、Binding#source_location メソッド、$SAFE プロセスのグローバルステータス などが含まれます。Ruby 2.6.0 は、Ruby 2.5 とソースレベルの後方互換性を維持しています。
Ruby 2.7.3 rh-ruby27 Ruby 2.7 のリリースこのバージョンでは、複数のパフォーマンスの向上と新機能が提供されます。これには、Compaction GC または LALR(1) パーサージェネレーターのコマンドラインインターフェイス、REPL の機能などが含まれます。Ruby 2.7 は、Ruby 2.6 とソースレベルの後方互換性を維持しています。
Ruby 3.0.1 rh-ruby30 Ruby 3.0. のリリースこのバージョンでは、複数のパフォーマンスの向上と新機能が提供されます ( 例: Ractor、Fiber Scheduler、および RBS 言語)。Ruby 3.0 は、Ruby 2.7 とソースレベルの後方互換性を維持しています。
MariaDB 10.3.27 rh-mariadb103 Red Hat Enterprise Linux ユーザー向けの MySQL の代替となる MariaDB のリリース。あらゆる実用的な目的で、MySQL は MariaDB とバイナリー互換性があり、データ変換なしで MySQL と置き換えることができます。このバージョンでは、 システムバージョンのテーブル、非表示の列、InnoDB の に対する新しいインスタント ADD COLUMN 操作、および MariaDB と MySQL の JDBC コネクター 導入されています。
MariaDB 10.5.9 rh-mariadb105 Red Hat Enterprise Linux ユーザー向けの MySQL の代替となる MariaDB のリリース。あらゆる実用的な目的で、MySQL は MariaDB とバイナリー互換性があり、データ変換なしで MySQL と置き換えることができます。このバージョンには、さまざまな新機能が含まれ、バージョン 4 にアップグレードされた MariaDB Galera Cluster、および PAM プラグインバージョン 2.0 が含まれます。
MySQL 8.0.21 rh-mysql80 MySQL サーバーのリリース。セキュリティーおよびアカウント管理機能および新規機能 および機能強化が数多く追加されました。
PostgreSQL 10.15 rh-postgresql10 PostgreSQL のリリースには、パフォーマンスが大幅に向上し、 publish および subscribe キーワードを使用した論理レプリケーション、SCRAM-SHA-256 メカニズムに基づく強力なパスワード認証 などの新機能が多数含まれています。
PostgreSQL 12.5 rh-postgresql12 PostgreSQL のリリースは、 pgaudit 拡張、パーティションおよび並列処理のさまざまな機能強化、SQL/JSON パス言語のサポート、 およびパフォーマンスの向上を提供します。
PostgreSQL 13.2 rh-postgresql13 PostgreSQL のリリースにより、クエリー計画が向上し、さまざまなパフォーマンス改善 と、pg_repack および plpython3 の 2 つの新しいパッケージ が導入されました。
Node.js 12.21.0 rh-nodejs12 V8 エンジンバージョン 7.6 が含まれる Node.js のリリース、ES6 モジュールのサポート、およびネイティブモジュールのサポートが改善されました。
Node.js 14.16.0 rh-nodejs14 Node.js の Node.js リリース (V8 バージョン 8.3、 実験的な新しい WebAssembly System Interface(WASI)、および実験的な新しい Async Local Storage API)。
nginx 1.16.1 rh-nginx116 nginx のリリース、Web サーバーおよびプロキシーサーバーは、高い同時実行性、パフォーマンス、およびメモリー使用量の少ない部分に重点を置いています。このバージョンには、SSL に関連する多くの更新、新しいディレクティブおよびパラメーター、さまざまな機能強化が含まれています。
nginx 1.18.0 rh-nginx118 nginx のリリース、Web サーバーおよびプロキシーサーバーは、高い同時実行性、パフォーマンス、およびメモリー使用量の少ない部分に重点を置いています。このバージョンでは、HTTP リクエストレートと接続制限の機能強化、および新しい auth_delay ディレクティブ が導入されています。さらに、新しい変数のサポートが複数のディレクティブに追加されました。
Apache httpd 2.4.34 httpd24 Apache HTTP Server (httpd) のリリース。これには、高パフォーマンスの イベントベースの処理モデル、強化された SSL モジュール、および FastCGI サポート が含まれます。mod_auth_kerbmod_auth_mellon、および ModSecurity モジュールも含まれています。
Varnish Cache 6.0.6 rh-varnish6 高パフォーマンスの HTTP リバースプロキシーである Varnish Cache のリリース。このバージョンには、Unix ドメインソケットのサポート (クライアントおよびバックエンドサーバーの両方)、VCL 言語の新規レベル (vcl4.1) 、および改善した HTTP/2 サポート が含まれます。
Maven 3.6.1 rh-maven36 Maven のリリース (ソフトウェアプロジェクト管理および内包表記ツール)。本リリースでは、さまざまな機能強化およびバグ修正が提供されます。
Git 2.27.0 rh-git227 分散アーキテクチャーを備えた分散リビジョン管理システムである Git のリリース。クライアントサーバーモデルを使用する集中型バージョン管理システムとは対照的に、Git は Git リポジトリーの各作業コピーが完全なリビジョン履歴で正確なコピーになるようにします。このバージョンでは、git checkout コマンドを git switchgit restore に分割し、 git rebase コマンドの挙動を変更するなど、多くの機能拡張が追加されました。さらに、Git Large File Storage (LFS) がバージョン 2.11.0 に更新されました。
Redis 5.0.5 rh-redis5 Redis 5.0 のリリース (永続キーと値のデータベース) です。Redis が、クラスター管理ツールである redis-trib を提供するようになりました。
HAProxy 1.8.24 rh-haproxy18 HAProxy 1.8 のリリース (TCP および HTTP ベースのアプリケーションの信頼できる高パフォーマンスな ネットワークロードバランサー) です。
JDK Mission Control 8.0.0 rh-jmc この Software Collection には、HotSpot JVM の強力なプロファイラーである JDK Mission Control(JMC) が含まれています。JMC では、JDK Flight Recorder が収集した豊富なデータを効率的かつ詳細に分析するための高度なツールセットを利用できます。JMC を実行するには、JDK バージョン 11 以降が必要であることに注意してください。ターゲット Java アプリケーションは、最低でも OpenJDK バージョン 8 で実行する必要があります。これにより、JMC が JDK Flight Recorder 機能にアクセスできるようになります。rh-jmc Software Collection には、rh-maven36 Software Collection が必要です。
これまでリリースされた Software Collections は同じディストリビューションチャンネルで引き続き利用できます。終了したコンポーネントを含む Software Collections はすべて、表1.2「利用可能なすべての Software Collections」 に記載されています。サポートされなくなった Software Collections にはアスタリスク (*) が付いています。
個々のコンポーネントのサポート期間の詳細は、Red Hat Software Collections Product Life Cycleを参照してください。以前にリリースされたコンポーネントの詳細は、Red Hat Software Collections の以前のバージョンの Release Notesを参照してください。

表1.2 利用可能なすべての Software Collections

コンポーネント Software Collection 可用性 RHEL7 でサポートされるアーキテクチャー
Red Hat Software Collections 3.7 の新規コンポーネント
MariaDB 10.5.9rh-mariadb105RHEL7x86_64、s390x、ppc64le
PostgreSQL 13.2rh-postgresql13RHEL7x86_64、s390x、ppc64le
Ruby 3.0.1rh-ruby30RHEL7x86_64、s390x、ppc64le
Red Hat Software Collections 3.7 で更新されたコンポーネント
Red Hat Developer Toolset 10.1devtoolset-10RHEL7x86_64、s390x、ppc64、ppc64le
JDK Mission Control 8.0.0rh-jmcRHEL7x86_64
Ruby 2.7.3rh-ruby27RHEL7x86_64、s390x、aarch64、ppc64le
Ruby 2.6.7rh-ruby26RHEL7x86_64、s390x、aarch64、ppc64le
Red Hat Software Collections 3.6 で最後に更新されたコンポーネント
Git 2.27.0rh-git227RHEL7x86_64、s390x、ppc64le
nginx 1.18.0rh-nginx118RHEL7x86_64、s390x、ppc64le
Node.js 14.16.0rh-nodejs14RHEL7x86_64、s390x、ppc64le
Apache httpd 2.4.34httpd24RHEL7x86_64、s390x、aarch64、ppc64le
PHP 7.3.20rh-php73RHEL7x86_64、s390x、aarch64、ppc64le
HAProxy 1.8.24rh-haproxy18RHEL7x86_64
Perl 5.30.1rh-perl530RHEL7x86_64、s390x、aarch64、ppc64le
Ruby 2.5.9rh-ruby25*RHEL7x86_64、s390x、aarch64、ppc64le
Red Hat Software Collections 3.5 で最後に更新されたコンポーネント
Red Hat Developer Toolset 9.1devtoolset-9RHEL7x86_64、s390x、aarch64、ppc64、ppc64le
Python 3.8.6rh-python38RHEL7x86_64、s390x、aarch64、ppc64le
Varnish Cache 6.0.6rh-varnish6RHEL7x86_64、s390x、aarch64、ppc64le
Apache httpd 2.4.34 (RHEL6 の最終更新)httpd24 (RHEL6)*RHEL6x86_64
Red Hat Software Collections 3.4 で最後に更新されたコンポーネント
Node.js 12.21.0rh-nodejs12RHEL7x86_64、s390x、aarch64、ppc64le
nginx 1.16.1rh-nginx116RHEL7x86_64、s390x、aarch64、ppc64le
PostgreSQL 12.5rh-postgresql12RHEL7x86_64、s390x、aarch64、ppc64le
Maven 3.6.1rh-maven36RHEL7x86_64、s390x、aarch64、ppc64le
Red Hat Software Collections 3.3 で最後に更新されたコンポーネント
Red Hat Developer Toolset 8.1devtoolset-8*RHEL6、RHEL7x86_64、s390x、aarch64、ppc64、ppc64le
MariaDB 10.3.27rh-mariadb103RHEL7x86_64、s390x、aarch64、ppc64le
Redis 5.0.5rh-redis5RHEL7x86_64、s390x、aarch64、ppc64le
Red Hat Software Collections 3.2 で最後に更新されたコンポーネント
PHP 7.2.24rh-php72*RHEL7x86_64、s390x、aarch64、ppc64le
MySQL 8.0.21rh-mysql80RHEL7x86_64、s390x、aarch64、ppc64le
Node.js 10.21.0rh-nodejs10*RHEL7x86_64、s390x、aarch64、ppc64le
nginx 1.14.1rh-nginx114*RHEL7x86_64、s390x、aarch64、ppc64le
Git 2.18.4rh-git218*RHEL7x86_64、s390x、aarch64、ppc64le
Red Hat Software Collections 3.1 で最後に更新されたコンポーネント
Red Hat Developer Toolset 7.1devtoolset-7*RHEL6、RHEL7x86_64、s390x、aarch64、ppc64、ppc64le
Perl 5.26.3rh-perl526*RHEL7x86_64、s390x、aarch64、ppc64le
MongoDB 3.6.3rh-mongodb36*RHEL7x86_64、s390x、aarch64、ppc64le
Varnish Cache 5.2.1rh-varnish5*RHEL7x86_64、s390x、aarch64、ppc64le
PostgreSQL 10.15rh-postgresql10RHEL7x86_64、s390x、aarch64、ppc64le
PHP 7.0.27rh-php70*RHEL6、RHEL7x86_64
MySQL 5.7.24rh-mysql57*RHEL6、RHEL7x86_64、s390x、aarch64、ppc64le
Red Hat Software Collections 3.0 で最後に更新されたコンポーネント
PHP 7.1.8rh-php71*RHEL7x86_64、s390x、aarch64、ppc64le
nginx 1.12.1rh-nginx112*RHEL7x86_64、s390x、aarch64、ppc64le
Python 3.6.12rh-python36*RHEL6、RHEL7x86_64、s390x、aarch64、ppc64le
Maven 3.5.0rh-maven35*RHEL7x86_64、s390x、aarch64、ppc64le
MariaDB 10.2.22rh-mariadb102*RHEL6、RHEL7x86_64、s390x、aarch64、ppc64le
PostgreSQL 9.6.19rh-postgresql96*RHEL6、RHEL7x86_64、s390x、aarch64、ppc64le
MongoDB 3.4.9rh-mongodb34*RHEL6、RHEL7x86_64、s390x、aarch64、ppc64le
Node.js 8.11.4rh-nodejs8*RHEL7x86_64、s390x、aarch64、ppc64le
Red Hat Software Collections 2.4 で最後に更新されたコンポーネント
Red Hat Developer Toolset 6.1devtoolset-6*RHEL6、RHEL7x86_64、s390x、aarch64、ppc64、ppc64le
Scala 2.10.6rh-scala210*RHEL7x86_64
nginx 1.10.2rh-nginx110*RHEL6、RHEL7x86_64
Node.js 6.11.3rh-nodejs6*RHEL6、RHEL7x86_64、s390x、aarch64、ppc64le
Ruby 2.4.6rh-ruby24*RHEL6、RHEL7x86_64
Ruby on Rails 5.0.1rh-ror50*RHEL6、RHEL7x86_64
Eclipse 4.6.3rh-eclipse46*RHEL7x86_64
Python 2.7.18python27RHEL6*、RHEL7x86_64、s390x、aarch64、ppc64le
Thermostat 1.6.6rh-thermostat16*RHEL6、RHEL7x86_64
Maven 3.3.9rh-maven33*RHEL6、RHEL7x86_64
一般的な Java パッケージrh-java-common*RHEL6、RHEL7x86_64
Red Hat Software Collections 2.3 で最後に更新されたコンポーネント
Git 2.9.3rh-git29*RHEL6、RHEL7x86_64、s390x、aarch64、ppc64le
Redis 3.2.4rh-redis32*RHEL6、RHEL7x86_64
Perl 5.24.0rh-perl524*RHEL6、RHEL7x86_64
Python 3.5.1rh-python35*RHEL6、RHEL7x86_64
MongoDB 3.2.10rh-mongodb32*RHEL6、RHEL7x86_64
Ruby 2.3.8rh-ruby23*RHEL6、RHEL7x86_64
PHP 5.6.25rh-php56*RHEL6、RHEL7x86_64
Red Hat Software Collections 2.2 で最後に更新されたコンポーネント
Red Hat Developer Toolset 4.1devtoolset-4*RHEL6、RHEL7x86_64
MariaDB 10.1.29rh-mariadb101*RHEL6、RHEL7x86_64
MongoDB 3.0.11 アップグレードコレクション rh-mongodb30upg*RHEL6、RHEL7x86_64
Node.js 4.6.2rh-nodejs4*RHEL6、RHEL7x86_64
PostgreSQL 9.5.14rh-postgresql95*RHEL6、RHEL7x86_64
Ruby on Rails 4.2.6rh-ror42*RHEL6、RHEL7x86_64
MongoDB 2.6.9rh-mongodb26*RHEL6、RHEL7x86_64
Thermostat 1.4.4thermostat1*RHEL6、RHEL7x86_64
Red Hat Software Collections 2.1 で最後に更新されたコンポーネント
Varnish Cache 4.0.3rh-varnish4*RHEL6、RHEL7x86_64
nginx 1.8.1rh-nginx18*RHEL6、RHEL7x86_64
Node.js 0.10nodejs010*RHEL6、RHEL7x86_64
Maven 3.0.5maven30*RHEL6、RHEL7x86_64
V8 3.14.5.10v8314*RHEL6、RHEL7x86_64
Red Hat Software Collections 2.0 で最後に更新されたコンポーネント
Red Hat Developer Toolset 3.1devtoolset-3*RHEL6、RHEL7x86_64
Perl 5.20.1rh-perl520*RHEL6、RHEL7x86_64
Python 3.4.2rh-python34*RHEL6、RHEL7x86_64
Ruby 2.2.9rh-ruby22*RHEL6、RHEL7x86_64
Ruby on Rails 4.1.5rh-ror41*RHEL6、RHEL7x86_64
MariaDB 10.0.33rh-mariadb100*RHEL6、RHEL7x86_64
MySQL 5.6.40rh-mysql56*RHEL6、RHEL7x86_64
PostgreSQL 9.4.14rh-postgresql94*RHEL6、RHEL7x86_64
Passenger 4.0.50rh-passenger40*RHEL6、RHEL7x86_64
PHP 5.4.40php54*RHEL6、RHEL7x86_64
PHP 5.5.21php55*RHEL6、RHEL7x86_64
nginx 1.6.2nginx16*RHEL6、RHEL7x86_64
DevAssistant 0.9.3devassist09*RHEL6、RHEL7x86_64
Red Hat Software Collections 1 で最後に更新されたコンポーネント
Git 1.9.4git19*RHEL6、RHEL7x86_64
Perl 5.16.3perl516*RHEL6、RHEL7x86_64
Python 3.3.2python33*RHEL6、RHEL7x86_64
Ruby 1.9.3ruby193*RHEL6、RHEL7x86_64
Ruby 2.0.0ruby200*RHEL6、RHEL7x86_64
Ruby on Rails 4.0.2ror40*RHEL6、RHEL7x86_64
MariaDB 5.5.53mariadb55*RHEL6、RHEL7x86_64
MongoDB 2.4.9mongodb24*RHEL6、RHEL7x86_64
MySQL 5.5.52mysql55*RHEL6、RHEL7x86_64
PostgreSQL 9.2.18postgresql92*RHEL6、RHEL7x86_64
説明:
  • RHEL6 – Red Hat Enterprise Linux 6
  • RHEL7 – Red Hat Enterprise Linux 7
  • x86_64: AMD および Intel 64 ビットアーキテクチャー
  • s390x: 64 ビット IBM Z アーキテクチャー
  • aarch64 - 64 ビット ARM アーキテクチャー
  • ppc64 – IBM POWER、ビックエンディアン
  • ppc64le - IBM POWER、リトルエンディアン
  • * - 終了したコンポーネント (この Software Collection はサポート対象外になりました)
上記の表には、非同期更新で利用できる最新バージョンがリスト表示されます。
Red Hat Software Collections 2.0 以降でリリースされた Software Collections には、その名前に rh- 接頭辞が含まれていることに注意してください。
Eclipse は、Red Hat Developer Tools 製品から入手できます。

1.3. Red Hat Software Collections 3.7 の変更点

1.3.1. 概要

アーキテクチャー

Red Hat Software Collections 製品には、以下のアーキテクチャーで実行している Red Hat Enterprise Linux 7 のパッケージが含まれます。
  • AMD アーキテクチャーおよび Intel 64 ビットアーキテクチャー
  • 64 ビット IBM Z
  • IBM POWER、リトルエンディアン
コンポーネントの完全なリストとそれらの可用性は、表1.2「利用可能なすべての Software Collections」 を参照してください。

新しい Software Collections

Red Hat Software Collections 3.7 は、以下の新しい Software Collections を追加します。
すべての新しい Software Collections は、Red Hat Enterprise Linux 7 でのみ利用できます。

Software Collections の更新

Red Hat Software Collections 3.7 では、以下のコンポーネントが更新されました。
さらに、PostgreSQL 12 で新しいパッケージ rh-postgresql12-pg_repack が利用できるようになりました。

Red Hat Software Collections コンテナーイメージ

以下のコンテナーイメージは、Red Hat Software Collections 3.7 に新たに追加されました。
  • rhscl/mariadb-105-rhel7
  • rhscl/postgresql-13-rhel7
  • rhscl/ruby-30-rhel7
Red Hat Software Collections 3.7 で以下のコンテナーイメージが更新されました。
  • rhscl/devtoolset-10-toolchain-rhel7
  • rhscl/devtoolset-10-perftools-rhel7
  • rhscl/ruby-27-rhel7
  • rhscl/ruby-26-rhel7
Red Hat Software Collections コンテナーイメージの詳細は、「Red Hat Software Collections コンテナーイメージ」 を参照してください。

1.3.2. Red Hat Developer Toolset の変更点

以前のリリースと比較すると、以下のコンポーネントが Red Hat Developer Toolset 10.1 でアップグレードされました。
  • SystemTap: バージョンを 4.4 へ
  • Dyninst: バージョンを 10.2.1 へ
  • elfutils: バージョンを 0.182 へ
さらに、以下のコンポーネントに対するバグ修正の更新を利用できます。
  • GCC
  • GDB
  • binutils
  • annobin
10.1 の変更に関する詳細は、Red Hat Developer Toolset ユーザーガイドを参照してください。

1.3.3. MariaDB の変更点

新しい rh-mariadb105 Software Collection は MariaDB 10.5.9 を提供します。
以前利用できたバージョン 10.3 への主な機能強化は、以下のとおりです。
  • MariaDB がデフォルトで unix_socket 認証プラグインを使用するようになりました。このプラグインを使用すると、ローカルの UNIX ソケットファイルを介して MariaDB に接続する際に、オペレーティングシステムの資格情報を使用できます。
  • MariaDB が、サーバーを再起動せずに SSL 証明書をリロードする新しい FLUSH SSL コマンドをサポートするようになりました。
  • MariaDB に、mariadb-* という名前のバイナリーと、mariadb-* バイナリーを参照する mysql* シンボリックリンクが追加されました。たとえば、mysqladminmysqlaccess、および mysqlshow のシンボリックリンクは、それぞれ mariadb-adminmariadb-access、および mariadb-show バイナリーを参照します。
  • MariaDB が IPv6 アドレスを格納するための新しい INET6 データ型をサポートするようになりました。
  • MariaDB が Perl Compatible Regular Expressions (PCRE) ライブラリーバージョン 2 を使用するようになりました。
  • 各ユーザーロールに合わせて、SUPER 特権が複数の特権に分割されました。その結果、一部のステートメントが必要な特権が変更されました。
  • MariaDB に、新しいグローバル変数 binlog_row_metadata と、ログに記録されるメタデータの量を制御するためのシステム変数およびステータス変数が追加されました。
  • eq_range_index_dive_limit 変数のデフォルト値が 0 から 200 に変更されました。
  • 最後の binlog イベントが接続されたレプリカに送信された後にのみシャットダウンするように、新しい SHUTDOWN WAIT FOR ALL SLAVES サーバーコマンドと新しい mysqladmin shutdown --wait-for-all-slaves オプションが追加されました。
  • 並列レプリケーションで、slave_parallel_mode 変数のデフォルトが optimistic になりました。
InnoDB ストレージエンジンでは、以下の変更が追加されました。
  • InnoDBDROP COLUMN の即時操作をサポートするようになり、ユーザーが列の順序を変更できるようになりました。
  • 変数のデフォルトが変更され、innodb_adaptive_hash_indexOFF に、innodb_checksum_algorithmfull_crc32 になりました。
  • いくつかの InnoDB 変数が削除または非推奨になりました。
MariaDB Galera クラスター がバージョン 4 にアップグレードされ、以下の主な変更点が加えられました。
  • Galera は、サイズ制限なしのトランザクションの複製をサポートする、新しいストリーミングレプリケーション機能を追加します。ストリーミングレプリケーションの実行時に、クラスターは小さなフラグメントでトランザクションを複製します。
  • Galera がグローバルトランザクション ID (GTID) に完全に対応するようになりました。
  • /etc/my.cnf.d/galera.cnf ファイルの wsrep_on オプションのデフォルト値が 1 から 0 に変更され、エンドユーザーが必要な追加オプションを設定せずに wsrep レプリケーションを開始できないようにします。
MariaDB 10.5 の PAM プラグインへの変更には、以下が含まれます。
  • MariaDB 10.5 は、PAM (Pluggable Authentication Modules) プラグインの新バージョンを追加します。PAM プラグインバージョン 2.0 は、個別の setuid root ヘルパーバイナリーを使用して PAM 認証を実行します。これにより MariaDB が追加の PAM モジュールを使用できるようになります。
  • MariaDB 10.5 では、PAM (Pluggable Authentication Modules) プラグインとその関連ファイルが新しいサブパッケージ mariadb-pam に移動しました。このサブパッケージには両方の PAM プラグインバージョンが含まれています。バージョン 2.0 はデフォルトで、バージョン 1.0 は auth_pam_v1 共有オブジェクトライブラリーとして使用できます。
  • MariaDB サーバーでは、デフォルトで rh-mariadb105-mariadb-pam パッケージがインストールされないことに注意してください。MariaDB 10.5 で PAM 認証プラグインを利用できるようにするには、rh-mariadb105-mariadb-pam パッケージを手動でインストールします。
rh-mariadb105 Software Collection には、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージをインストールする rh-mariadb105-syspaths パッケージが含まれます。rh-mariadb105*-syspaths パッケージのインストール後に、rh-mariadb105* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと対応するパッケージと競合することに注意してください。syspaths の詳細は、Red Hat Software Collections Packaging Guideを参照してください。
互換性と移行の手順は、「MariaDB 10.5 への移行」 を参照してください。
MariaDB 10.5 の詳細は、アップストリームのドキュメント を参照してください。

1.3.4. PostgreSQL の変更点

新しい rh-postgresql13 Software Collection には PostgreSQL 13.2 が含まれています。本リリースでは、バージョン 12 に対するさまざまな機能強化が追加されました。以下に例を示します。
  • B-tree インデックスエントリーの重複排除から生じるパフォーマンスの向上
  • 集約またはパーティション化されたテーブルを使用するクエリーのパフォーマンス向上
  • 拡張された統計使用時のクエリー計画の改善
  • インデックスの並列化された退避
  • インクリメンタルソート
詳細な変更は、PostgreSQL 13 のアップストリームのリリースノートを参照してください。
以下の新しいサブパッケージは、rh-postgresql13 Software Collection で利用できます。
  • pg_repack パッケージは、テーブルおよびインデックスから ブロートを取り除き、必要に応じてクラスターインデックスの物理順序を復元できる PostgreSQL 機能拡張を提供します。詳細は、使用に関するアップストリームドキュメントを参照してください。
    pg_repack サブパッケージは、rh-postgresql12 Software Collection でも利用できるようになりました。
  • plpython3 パッケージは、Python 3 をベースとした PL/Python の手続き型言語拡張を提供します。PL/Python を使用すると、Python プログラミング言語で PostgreSQL 関数を作成できます。詳細は、アップストリームのカーネルドキュメント を参照してください。
    以前にリリースされた PostgreSQL Software Collections には、Python 2 をベースとした plpython パッケージのみが含まれています。Red Hat Enterprise Linux 8 は、plpython3 のみを提供します。rh-postgresql13 Software Collection には plpython および plpython3 の両方が含まれるため、Red Hat Enterprise Linux 8 にアップグレードする前に plpython3 に移行できます。
また、この rh-postgresql13 Software Collection には rh-postgresql13-syspaths パッケージが含まれており、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージがインストールされます。rh-postgresql13*-syspaths パッケージのインストール後に、rh-postgresql13* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと対応するパッケージと競合することに注意してください。syspaths の詳細は、Red Hat Software Collections Packaging Guideを参照してください。
PostgreSQL 11 以降のアップストリームで利用できる Just-In-Time (JIT) コンパイルのサポートは、rh-postgresql13 Software Collection では提供されていないことに注意してください。
移行の情報は、「PostgreSQL 13 への移行」 を参照してください。

1.3.5. Ruby の変更点

新しい rh-ruby30 Software Collection は、多数のパフォーマンス向上、バグ修正、および新機能を導入する Ruby 3.0.1 を提供します。
主な機能強化は、次のとおりです。
  • 同時実行機能および並列処理機能:
    • Ractor が実験的な機能として提供されています。この機能はスレッドセーフな並列実行を提供するアクターモデルの抽象化です。
    • Fiber Scheduler が実験的な機能として導入されました。Fiber Scheduler はブロッキング操作をインターセプトし、既存のコードを変更せずに軽量の同時実行を可能にします。
  • 静的な分析機能:
    • Ruby プログラムの構造を記述する RBS 言語が導入されました。RBS で書かれた型定義を解析するために rbs gem が追加されました。
    • Ruby コードの型分析ツールである TypeProf ユーティリティーが導入されました。
  • case/in 式を使用したパターンの照合が実験的な機能ではなくなりました。
  • 1 行パターンの一致が実験的な機能として再設計されました。
  • 検索パターンが実験的な機能として追加されました。
以下のパフォーマンスの向上が実装されています。
  • Interactive Ruby Shell (IRB) への長いコードの貼り付けが大幅に高速になりました。
  • IRB に時間計測用の measure コマンドが追加されました。
その他の主な変更点は次の通りです。
  • キーワード引数は他の引数から分離されています。詳細は、アップストリームのドキュメント を参照してください。
  • $HOME/.gem/ ディレクトリーがすでに存在しない限り、ユーザーがインストールした gems のデフォルトディレクトリーが $HOME/.local/share /gem/ になります。
Ruby 3.0 の変更に関する詳細は、バージョン 3.0.0 および 3.0.1 のアップストリームの発表を参照してください。
rh-ruby27 および rh-ruby26 Software Collections が、セキュリティーおよびバグ修正で更新されました。

1.3.6. JDK Mission Control の変更点

rh-jmc Software Collection で提供される JDK Mission Control (JMC) は、バージョン 7.1.1 からバージョン 8.0.0 にアップグレードされました。主な機能強化は、次のとおりです。
  • クラスごとのメモリー使用量を視覚化するために、Treemap ビューアーが JOverflow プラグインに追加されました。
  • Threads グラフが強化され、フィルタリングとズームのオプションが追加されました。
  • JDK Mission Control は、LZ4 アルゴリズムを使用して圧縮した JDK Flight Recorder を開くためのサポートが追加されました。
  • 新しい列が Memory ビューと TLAB ビューに追加され、割り当て不足の領域を特定しやすくなりました。
  • スタックトレースの視覚化を改善するために、Graph ビューが追加されました。
  • Percentage 列がヒストグラムテーブルに追加されました。
詳細は、アップストリームのリリースノート を参照してください。

1.4. 互換性情報

Red Hat Software Collections 3.7 は、AMD および Intel 64 ビットアーキテクチャー、64 ビット IBM Z および IBM POWER (リトルエンディアン) 上の Red Hat Enterprise Linux 7 のサポートされるすべてのリリースで利用できます。
64 ビット ARM アーキテクチャーで、以前にリリースされた一部のコンポーネントも利用できます。
利用可能なコンポーネントのリストは、表1.2「利用可能なすべての Software Collections」 を参照してください。

1.5. 既知の問題

rh-mariadb105 コンポーネント、BZ# 1942526
OQGraph ストレージエンジンプラグインが MariaDB 10.5 サーバーにロードされたときに、MariaDB が存在しないテーブルの削除について警告しません。特に、ユーザーが DROP TABLE または DROP TABLE IF EXISTS SQL コマンドを使用して存在しないテーブルを削除しようしても、MariaDB はエラーメッセージを返したり、警告を記録したりしません。
OQGraph プラグインは mariadb-oqgraph-engine パッケージにより提供されることに注意してください。デフォルトではインストールされません。
rh-mariadb component
rh-mariadb103 Software Collection は、PAM (Pluggable Authentication Modules) プラグインバージョン 1.0 を提供します。rh-mariadb105 Software Collection は、プラグインバージョン 1.0 および 2.0 を提供します。バージョン 2.0 がデフォルトです。MariaDB の PAM プラグインバージョン 1.0 は機能しません。この問題を回避するには、rh-mariadb105 が提供する PAM プラグインバージョン 2.0 を使用します。
rh-ruby27 コンポーネント (BZ#1836201)
カスタムスクリプトに Psych YAML パーサーを必要とし、その後に Gem.load_yaml メソッドを使用すると、スクリプトの実行に失敗し、以下のエラーメッセージが表示されます。
superclass mismatch for class Mark (TypeError)
この問題を回避するには、スクリプトの require 'psych' 行の上のどこかに、gem 'psych' 行を追加します。
...
gem 'psych'
...
require 'psych'
Gem.load_yaml
複数のコンポーネント (BZ#1716378 )
debuginfo Software Collections パッケージが提供する特定のファイルは、ベースの Red Hat Enterprise Linux システムまたはその他のバージョンの Red Hat Software Collections コンポーネントに対応する debuginfo パッケージファイルと競合する可能性があります。たとえば、python27-python-debuginfo パッケージファイルは、コアシステムにインストールされている python-debuginfo パッケージの対応するファイルと競合する可能性があります。同様に、httpd24-mod_auth_mellon-debuginfo パッケージのファイルは、ベースシステム mod_auth_mellon-debuginfo パッケージが提供する同様のファイルと競合する可能性があります。この問題を回避するには、Software Collection debuginfo パッケージをインストールする前に、ベースシステムの debuginfo パッケージをアンインストールします。
rh-mysql80 コンポーネント (BZ#1646363)
mysql-connector-java データベースコネクターは MySQL 8.0 サーバーと動作しません。この問題を回避するには、rh-mariadb103 Software Collection からの mariadb-java-client データベースコネクターを使用します。
rh-mysql80 コンポーネント (BZ#1646158 )
MySQL 8.0 ではデフォルトの文字セットが utf8mb4 に変更になりましたが、この文字セットは php-mysqlnd データベースコネクターではサポートされません。これにより、php-mysqlnd がデフォルト設定で接続できません。この問題を回避するには、既知の文字セットを MySQL サーバー設定のパラメーターとして指定します。たとえば、/etc/opt/rh/rh-mysql80/my.cnf.d/mysql-server.cnf ファイルを read に変更します。
[mysqld]
character-set-server=utf8
httpd24 コンポーネント (BZ#1429006)
httpd 2.4.27 以降、mod_http2 モジュールはデフォルトの prefork Multi-Processing Module (MPM) でサポートされなくなりました。HTTP/2 サポートを有効にするには、/opt/rh/httpd24/root/etc/httpd/conf.modules.d/00-mpm.conf で設定ファイルを編集し、event または worker MPM に切り替えます。
HTTP/2 の server-push 機能は、64 ビット ARM アーキテクチャー、64 ビット IBM Z、および IBM POWER (リトルエンディアン) では機能しないことに注意してください。
httpd24 コンポーネント、BZ# 1224763
FastCGI Process Manager (PHP-FPM) で mod_proxy_fcgi モジュールを使用する場合は、httpd は正しいポート 9000 ではなく、デフォルトで FastCGI プロトコルのポート 8000 を使用します。この問題を回避するには、正しいポートを明示的に指定します。
httpd24 コンポーネント、BZ#1382706
SELinux が有効になっている場合、LD_LIBRARY_PATH 環境変数は、httpd によって呼び出される CGI スクリプトには渡されません。そのため、httpd が実行する CGI スクリプトの /opt/rh/httpd24/service-environment ファイルで有効にした Software Collections から実行ファイルを呼び出すことができない場合があります。この問題を回避するには、CGI スクリプト内から希望どおりに LD_LIBRARY_PATH 設定します。
httpd24 コンポーネント
httpd24 Software Collection からの Apache Portable Runtime (APR) および APR-util ライブラリーに対する外部アプリケーションのコンパイルはサポートされていません。LD_LIBRARY_PATH 環境変数は、この Software Collection のいずれのアプリケーションでも不要であるため、httpd24 に設定されていません。
scl-utils コンポーネント (
Red Hat Enterprise Linux 7.5 以前では、scl-utils パッケージのアーキテクチャー固有のマクロバグにより、<collection>/root/usr/lib64/ ディレクトリーには 64 ビット ARM アーキテクチャーおよび IBM POWER (リトルエンディアン) のパッケージの所有権が正しくありません。したがって、Software Collection がアンインストールされると、このディレクトリーは削除されません。この問題を回避するには、Software Collection を削除する際に <collection>/root/usr/lib64/ を手動で削除します。
maven コンポーネント )
ユーザーが Red Hat Enterprise Linux システムバージョンの maven-local パッケージおよび rh-maven*-maven-local パッケージの両方をインストールすると、Java RPM パッケージを構築するツールである XMvn を Maven Software Collection から実行すると、ベースシステムから設定ファイルを読み取ろうとし、失敗します。この問題を回避するには、ベースの Red Hat Enterprise Linux システムから maven-local パッケージをアンインストールします。
perl コンポーネント
複数の mod_perl.so ライブラリーをインストール することはできません。したがって、複数の Perl Software Collection から mod_perl モジュールを使用することはできません。
httpd, mariadb, mysql, nodejs, perl, php, python, and ruby components, BZ#1072319
httpd24rh-mariadb*rh-mysql*rh-nodejs*rh-perl*rh-php*python27rh-python* または rh-ruby* パッケージをアンインストールする際は、依存パッケージの所有権により、アンインストールの順序には関連性があります。そのため、一部のディレクトリーおよびファイルはシステム上に残される可能性があるため、削除されない可能性があります。
mariadbmysql コンポーネント (BZ#1194611)
MariaDB 10 および MySQL 5.6 以降、rh-mariadb*-mariadb-server および rh-mysql*-mysql-server パッケージでは、デフォルトで test データベースが提供されなくなりました。このデータベースは初期化中には作成されませんが、付与テーブルは、test がデフォルトで作成されたものと同じ値で事前に入力されます。その結果、test または test_* データベースが後で作成されると、これらのデータベースへのアクセス権限は、新規データベースのデフォルトよりも制限されません。
また、ベンチマークを実行している場合、run-all-tests スクリプトは、サンプルパラメーターを使用してもそのままでは機能しません。テストを実行する前にテストデータベースを作成し、--database パラメーターにデータベース名を指定する必要があります。パラメーターが指定されていない場合、デフォルトで test が取得されますが、test データベースが存在することを確認する必要があります。
mariadb, mysql, postgresql コンポーネント
Red Hat Software Collections には、MySQL 8.0MariaDB 10.3MariaDB 10.5PostgreSQL 10PostgreSQL 12 および PostgreSQL 13 のデータベースサーバーが含まれます。コア Red Hat Enterprise Linux 7 は、MariaDB および PostgreSQL データベース (クライアントライブラリーおよびデーモン) の以前のバージョンを提供します。クライアントライブラリーは、動的言語、ライブラリーなどのデータベースコネクターにも使用されます。
PostgreSQL コンポーネントの Red Hat Software Collections データベースパッケージにパッケージ化されたクライアントライブラリーは、サーバーユーティリティーおよびデーモンの目的にのみ含まれているため、使用する予定はありません。代わりに、ユーザーはコアシステムで提供されるシステムライブラリーとデータベースコネクターを使用することが想定されます。
クライアントライブラリーとデーモンの間で使用されるプロトコルは、データベースのバージョンが変わっても安定しているため、たとえば、PostgreSQL 12 または 13 デーモンで PostgreSQL 10 クライアントライブラリーを使用すると、期待どおりに動作します。
mariadb, mysql コンポーネント
MariaDB および MySQL は、ログファイルの作成時に /opt/provider/collection/root 接頭辞を利用しません。ログファイルは、/opt/provider/collection/root/var/log/ ではなく、/var/opt/provider/collection/log/ ディレクトリーに保存されることに注意してください。

1.6. その他の注意事項

rh-ruby*rh-python*rh-php* コンポーネント ( )
読み取り専用 NFS で Software Collections を使用すると、いくつかの制限があります。
  • rh-ruby* Software Collection が読み取り専用 NFS にある間は、Ruby gems をインストールできません。したがって、たとえば、gem install ab コマンドを使用して ab gem をインストールしようとすると、以下のようなエラーメッセージが表示されます。
    ERROR:  While executing gem ... (Errno::EROFS)
        Read-only file system @ dir_s_mkdir - /opt/rh/rh-ruby22/root/usr/local/share/gems
    
    または bundle update または bundle install コマンドを実行して、ユーザーが外部ソースから gem を更新またはインストールしようとすると、同じ問題が発生します。
  • Python Package Index (PyPI) を使用して読み取り専用 NFS に Python パッケージをインストールすると、この pip コマンドが失敗し、以下のようなエラーメッセージが表示されます。
    Read-only file system: '/opt/rh/rh-python34/root/usr/lib/python3.4/site-packages/ipython-3.1.0.dist-info'
  • pear コマンドを使用した読み取り専用 NFS への PEAR (PHP Extension and Application Repository) からパッケージのインストールに失敗し、エラーメッセージが表示されます。
    Cannot install, php_dir for channel "pear.php.net" is not writeable by the current user
これは想定される動作です。
httpd コンポーネント
Apache の言語モジュールは、Apache httpd の Red Hat Software Collections バージョンでのみサポートされ、Red Hat Enterprise Linux のシステムバージョン httpd では対応していません。たとえば、rh-python35 コレクションの mod_wsgi モジュールは httpd24 コレクションでのみ使用できます。
すべてのコンポーネント
Red Hat Software Collections 2.0 以降、設定ファイル、変数データ、および各 Collections のランタイムデータは、以前のバージョンの Red Hat Software Collections とは異なるディレクトリーに保存されます。
coreutilsutil-linuxscreen コンポーネント
suloginscreen などの一部のユーティリティーは、すべてのケースで環境設定をエクスポートせず、予期せぬ結果になる可能性があります。そのため、su の代わりにsudo を使用し、/etc/sudoers ファイルに env_keep 環境変数を設定することを推奨します。下の順序でコマンドを実行できます。例を以下に示します。
su -l postgres -c "scl enable rh-postgresql94 psql"
以下の代わりとなります。
scl enable rh-postgresql94 bash
su -l postgres -c psql
screenlogin などのツールを使用する場合は、以下のコマンドを使用して環境設定を保存できます。
source /opt/rh/<collection_name>/enable
python コンポーネント
ユーザーが python27 および rh-python* Software Collections から複数の scldevel パッケージをインストールしようとすると、トランザクションチェックのエラーメッセージが返されます。パッケージ (%scl_python, %scl_prefix_python) が提供するマクロファイルのセットをユーザーが 1 つだけインストールできるため、これは想定される動作です。
PHP コンポーネント )
ユーザーが rh-php* Software Collections から複数の scldevel パッケージをインストールしようとすると、トランザクションチェックのエラーメッセージが返されます。パッケージ (%scl_php, %scl_prefix_php) が提供するマクロファイルのセットをユーザーが 1 つしかインストールできないため、これは想定される動作です。
ruby コンポーネント
ユーザーが rh-ruby* Software Collections から複数の scldevel パッケージをインストールしようとすると、トランザクションチェックのエラーメッセージが返されます。パッケージ (%scl_ruby, %scl_prefix_ruby) が提供するマクロファイルのセットをユーザーが 1 つだけインストールできるため、これは想定される動作です。
perl コンポーネント
ユーザーが rh-perl* Software Collections から複数の scldevel パッケージをインストールしようとすると、トランザクションチェックのエラーメッセージが返されます。パッケージ (%scl_perl, %scl_prefix_perl) が提供するマクロファイルのセットをユーザーが 1 つだけインストールできるため、これは想定される動作です。
nginx コンポーネント
ユーザーが rh-nginx* Software Collections から複数の scldevel パッケージをインストールしようとすると、トランザクションチェックのエラーメッセージが返されます。パッケージ (%scl_nginx, %scl_prefix_nginx) が提供するマクロファイルのセットをユーザーが 1 つだけインストールできるため、これは想定される動作です。
python コンポーネント
Python urllib ライブラリーの Web Cache Poisoning CVE-2021-23336 を緩和するため、urllib.parse.parse_qsl および urllib.parse.parse_qs 関数のデフォルト区切り文字が、アンパサンド (&) とセミコロン (;) の両方が単一のアンパサンドに変更されます。
この変更は、python27 および rh-python38 Software Collections に、RHSA -2021:3252 および RHSA-2021: 3254 アドバイザリーのリリースで実装されています。
デフォルトの区切り文字の変更は後方互換性がない可能性があるため、Red Hat はデフォルトの区切り文字が変更された Python パッケージの動作を設定する手段を提供します。さらに、影響を受ける urllib 解析関数は、お客様のアプリケーションが変更の影響を受けることを検知すると警告を発行します。
詳細は、Mitigation of Web Cache Poisoning in the Python urllib library (CVE-2021-23336)ナレッジ記事を参照してください。
python コンポーネント
RHSA-2021:3254 アドバイザリーのリリースでは、rh-python38 Software Collection で以下の変更が導入されています。
CVE-2021-29921 を緩和するために、Python ipaddress モジュールが、AddressValueError: Leading zeros の先頭のゼロを持つ IPv4 アドレスを拒否するようになりました。
以前の動作に依存するお客様は、IPv4 アドレス入力を事前に処理して、先頭のゼロオフを削除します。以下に例を示します。
>>> def reformat_ip(address): return '.'.join(part.lstrip('0') if part != '0' else part for part in address.split('.'))
>>> reformat_ip('0127.0.0.1')
'127.0.0.1'
読みやすために明示的なループで先頭のゼロを取り除くには、以下を使用します。
def reformat_ip(address):
    parts = []
    for part in address.split('.'):
        if part != "0":
            part = part.lstrip('0')
        parts.append(part)
    return '.'.join(parts)

1.7. 非推奨の機能

httpd24 コンポーネント (BZ#1434053)
以前では、名前ベースの SSL 仮想ホスト選択が必要な SSL/TLS 設定で、Host: ヘッダーで提供されるホスト名が Server Name Indication (SNI) ヘッダーで提供されるホスト名と一致していなければ、mod_ssl モジュールは 400 Bad Request エラーのあるリクエストを拒否していました。選択されたバーチャルホスト間で設定された SSL/TLS セキュリティーパラメーターが同じであれば、アップストリーム mod_ssl の動作に合わせて、そのようなリクエストは拒否されなくなりました。

第2章 インストール

本章では、コンテンツセットへのアクセスし、システムに Red Hat Software Collections 3.7 をインストールし、Red Hat Software Collections を再ビルドする方法を説明します。

2.1. Red Hat Software Collections へのアクセス

Red Hat Software Collections コンテンツセットは、ナレッジベースの記事How to use Red Hat Software Collections (RHSCL) or Red Hat Developer Toolset (DTS)?に記載されている Red Hat Enterprise Linux サブスクリプションを利用することが可能です。Red Hat Subscription Management (RHSM) でシステムを登録する方法は、Subscription Manager の使用および設定を参照してください。RHSM を使用して Red Hat Software Collections を有効にする方法は、「Red Hat Subscription Management の使用」 を参照してください。
Red Hat Software Collections 2.2 以降、Red Hat Software Collections および Red Hat Developer Toolset のコンテンツは、(特に Server および Workstation 向けに) https://access.redhat.com/downloads にて ISO 形式でも提供されています。「Optional リポジトリーからのパッケージ」 に記載されている Optional リポジトリーを必要とするパッケージは、ISO イメージからインストールできないことに注意してください。
注記
Optional リポジトリーを必要とするパッケージを ISO イメージからインストールすることはできません。Optional リポジトリーの有効化が必要なパッケージの一覧は、「Optional リポジトリーからのパッケージ」 で提供されています。
ベータコンテンツは ISO 形式では使用できません。

2.1.1. Red Hat Subscription Management の使用

システムが Red Hat Subscription Management に登録されている場合は、以下の手順を実施して、Red Hat Software Collections のリポジトリーへのアクセスを提供するサブスクリプションを割り当て、リポジトリーを有効にします。
  1. システムで利用可能なサブスクリプションのリストを表示し、Red Hat Software Collections を提供するサブスクリプションのプール ID を判別します。これを行うには、root で次のコマンドを実行します。
    subscription-manager list --available
    このコマンドは、使用可能なサブスクリプションごとに、その名前、一意の識別子、有効期限、およびそれに関連するその他の詳細を表示します。プール ID は、Pool Id で始まる行にリスト表示されます。
  2. root で以下のコマンドを実行して、適切なサブスクリプションをシステムに割り当てます。
    subscription-manager attach --pool=pool_id
    pool_id を、直前のステップで確認したプール ID に置き換えます。システムに割り当てているサブスクリプションのリストを随時確認するには、root で以下を入力します。
    subscription-manager list --consumed
  3. 利用可能な Yum list リポジトリーのリストを表示して、リポジトリーメタデータを取得し、Red Hat Software Collections リポジトリーの正確な名前を決定します。root で以下のコマンドを実行します。
    subscription-manager repos --list
    または、yum repolist all を簡単なリストに対して実行します。
    リポジトリー名は、使用している Red Hat Enterprise Linux のバージョンによって異なり、以下のフォーマットに基づいています。
    rhel-variant-rhscl-6-rpms
    rhel-variant-rhscl-6-debug-rpms
    rhel-variant-rhscl-6-source-rpms
    
    rhel-server-rhscl-6-eus-rpms
    rhel-server-rhscl-6-eus-source-rpms
    rhel-server-rhscl-6-eus-debug-rpms
    
    rhel-variant-rhscl-7-rpms
    rhel-variant-rhscl-7-debug-rpms
    rhel-variant-rhscl-7-source-rpms
    
    rhel-server-rhscl-7-eus-rpms
    rhel-server-rhscl-7-eus-source-rpms
    rhel-server-rhscl-7-eus-debug-rpms
    variant を、Red Hat Enterprise Linux システムのバリアント (つまり server または workstation に置き換えます。Red Hat Software Collections は、Client または ComputeNode バリアントではサポートされないことに注意してください。
  4. root で以下のコマンドを実行して、適切なリポジトリーを有効にします。
    subscription-manager repos --enable repository
サブスクリプションがシステムに割り当てられたら、「Red Hat Software Collections のインストール」の説明に従って Red Hat Software Collections をインストールできます。Red Hat Subscription Management を使用してシステムを登録し、サブスクリプションに関連付ける方法は、Using and Configuring Red Hat Subscription Manager を参照してください。
注記
RHN によるサブスクリプションは利用できなくなりました。

2.1.2. Optional リポジトリーからのパッケージ

Red Hat Software Collections パッケージの一部では、このパッケージの完全なインストールを完了するために、Optional リポジトリーを有効にする必要があります。このリポジトリーにシステムをサブスクライブする方法の詳細は、ナレッジベースの記事How to access Optional and Supplementary channels, and -devel packages using Red Hat Subscription Management (RHSM)?を参照してください。
Optional リポジトリーを有効にする必要がある Red Hat Enterprise Linux の Software Collections パッケージを以下の表に示します。Optional リポジトリーのパッケージはサポートされないことに注意してください。詳細は、ナレッジベースアーティクルのSupport policy of the optional and supplementary channels in Red Hat Enterprise Linuxを参照してください。

表2.1 Red Hat Enterprise Linux 7 で Optional リポジトリーを有効にする必要があるパッケージ

Software Collection からのパッケージOptional リポジトリーから必要なパッケージ
devtoolset-10-buildscl-utils-build
devtoolset-10-dyninst-testsuiteglibc-static
devtoolset-10-elfutils-debuginfodbsdtar
devtoolset-10-gcc-plugin-devellibmpc-devel
devtoolset-10-gdbsource-highlight
devtoolset-9-buildscl-utils-build
devtoolset-9-dyninst-testsuiteglibc-static
devtoolset-9-gcc-plugin-devellibmpc-devel
devtoolset-9-gdbsource-highlight
httpd24-mod_ldapapr-util-ldap
httpd24-mod_sessionapr-util-openssl
python27-python-debugtix
python27-python-develscl-utils-build
python27-tkintertix
rh-git227-git-cvscvsps
rh-git227-git-svnperl-Git-SVN, subversion
rh-git227-perl-Git-SVNsubversion-perl
rh-java-common-ant-apache-bsfrhino
rh-java-common-batikrhino
rh-maven35-buildscl-utils-build
rh-maven35-xpp3-javadocjava-1.8.0-openjdk-javadoc-zip, java-11-openjdk-javadoc, java-1.7.0-openjdk-javadoc, java-11-openjdk-javadoc-zip, java-1.8.0-openjdk-javadoc
rh-php73-php-develpcre2-devel
rh-php73-php-pspellaspell
rh-python38-python-develscl-utils-build

2.2. Red Hat Software Collections のインストール

Red Hat Software Collections は、Red Hat Enterprise Linux に含まれる標準のパッケージ管理ツールを使用して、インストール、更新、アンインストールが可能な RPM パッケージのコレクションとして配布されます。Red Hat Software Collections をシステムにインストールするには、有効なサブスクリプションが必要です。システムを適切なサブスクリプションに関連付け、Red Hat Software Collections にアクセスする方法は、「Red Hat Software Collections へのアクセス」 を参照してください。
Red Hat Software Collections 3.7 を使用するには、以前のリリース前のバージョンを削除する必要があります。以前のバージョンの Red Hat Software Collections 2.1 コンポーネントをインストールしている場合は、システムからアンインストールし、および 「Red Hat Software Collections のアンインストール」 セクションおよび 「Software Collection の個別インストール」 セクションで説明されているように新しいバージョンをインストールします。
Red Hat Enterprise Linux 6 から Red Hat Enterprise Linux 7 へのインプレースアップグレードは、Red Hat Software Collections ではサポートされていません。したがって、アップグレード後にインストールされた Software Collections が正しく動作しない可能性があります。Red Hat Enterprise Linux 6 から Red Hat Enterprise Linux 7 にアップグレードする場合は、すべての Red Hat Software Collections パッケージを削除し、インプレースアップグレードを実行し、Red Hat Software Collections リポジトリーを更新し、再度 Software Collections パッケージをインストールすることが強く推奨されます。アップグレードする前に、すべてのデータのバックアップを作成することが推奨されます。

2.2.1. Software Collection の個別インストール

表1.1「Red Hat Software Collections のコンポーネント」 に記載されている Software Collection をインストールするには、シェルプロンプトで root として次のように入力して、対応するメタパッケージをインストールします。
yum install software_collection...
software_collection を、インストールする Software Collections のスペース区切りリストに置き換えます。たとえば、 rh-php73 および rh-mariadb105 をインストールし、root として以下を入力します。
~]# yum install rh-php73 rh-mariadb105
これにより、選択した Software Collection のメインメタパッケージと、必要なパッケージの依存関係がインストールされます。追加モジュールなどの追加パッケージをインストールする方法は、「オプションパッケージのインストール」 を参照してください。

2.2.2. オプションパッケージのインストール

Red Hat Software Collections の各コンポーネントは、デフォルトでインストールされていない複数のオプションパッケージとともに配布されます。特定の Software Collection に含まれていて、システムにインストールされていないパッケージのリストを表示するには、シェルプロンプトで次のコマンドを実行します。
yum list available software_collection-\*
これらのオプションのパッケージのいずれかをインストールするには、root で以下を入力します。
yum install package_name...
package_name を、インストールするパッケージのリストに置き換えます。たとえば、rh-perl530-perl-CPAN および rh-perl530-perl-Archive-Tar をインストールするには、以下を入力します。
~]# yum install rh-perl530-perl-CPAN rh-perl530-perl-Archive-Tar

2.2.3. デバッグ情報のインストール

Red Hat Software Collections パッケージのデバッグ情報をインストールするには、yum-utils パッケージがインストールされていることを確認し、root で以下のコマンドを入力します。
debuginfo-install package_name
たとえば、rh-ruby27-ruby パッケージのデバッグ情報をインストールするには、以下を入力します。
~]# debuginfo-install rh-ruby27-ruby
これらのパッケージを含むリポジトリーにアクセスできる必要があることに注意してください。システムが Red Hat Subscription Management に登録されている場合は、「Red Hat Subscription Management の使用」 で説明しているように、rhel-variant-rhscl-6-debug-rpms または rhel-variant-rhscl-7-debug-rpms リポジトリーを有効化します。debuginfo パッケージにアクセスする方法は、RHEL システムで debuginfo パッケージをダウンロードまたはインストールするを参照してください。

2.3. Red Hat Software Collections のアンインストール

Software Collections コンポーネントをアンインストールするには、root で次のコマンドを実行します。
yum remove software_collection\*
software_collection を、アンインストールする Software Collection コンポーネントに置き換えます。
Red Hat Software Collections が提供するパッケージをアンインストールしても、これらのツールの Red Hat Enterprise Linux システムバージョンには影響がないことに注意してください。

2.4. Red Hat Software Collections の再構築

<collection>-build パッケージはデフォルトでは提供されません。コレクションを再構築して、rpmbuild --define 'scl foo' コマンドを使用しない場合には、最初にメタパッケージを再構築する必要があります。これにより、<collection>-build パッケージが提供されます。
既存のコレクションは、異なる内容で再構築しないでください。既存のコレクションに新しいパッケージを追加するには、新しいパッケージを含む新しいコレクションを作成し、元のコレクションからのパッケージに依存する必要があります。元のコレクションは、変更せずに使用する必要があります。
Software Collections の構築に関する詳細は、Red Hat Software Collections Packaging Guide を参照してください。

第3章 用途

本章では、Red Hat Software Collections 3.7 の使用および Red Hat Software Collections を使用するアプリケーションのデプロイに必要な手順を説明します。

3.1. Red Hat Software Collections の使用

3.1.1. Software Collection からの実行可能ファイルの実行

特定の Software Collection から実行ファイルを実行するには、シェルプロンプトで以下のコマンドを入力します。
scl enable software_collection... 'command...'
または、以下のコマンドを使用します。
scl enable software_collection... -- command...
software_collection を、使用する Software Collections のスペース区切りのリストに置き換え、command を、実行するコマンドに置き換えます。たとえば、perl526 Software Collection から Perl インタープリターで hello.pl という名前が付けられたファイルに保存されている Perl プログラムを実行するには、以下を入力します。
~]$ scl enable rh-perl526 'perl hello.pl'
Hello, World!
この scl ユーティリティーを使用してコマンドを実行すると、同等の Red Hat Enterprise Linux システムの代わりに、選択した Software Collection から実行可能なものを使用して実行できます。Red Hat Software Collections で配布される Software Collections の完全リストは、表1.1「Red Hat Software Collections のコンポーネント」を参照してください。

3.1.2. デフォルトで Software Collection を使用したシェルセッションの実行

Red Hat Enterprise Linux の同等のものよりも選択した Software Collection の実行可能ファイルで新しいシェルセッションを開始するには、シェルプロンプトで次のように入力します。
scl enable software_collection... bash
software_collection を、使用する Software Collections のスペース区切りリストに置き換えます。たとえば、デフォルトとして python27およびrh-postgresql12 Software Collections で新しいシェルセッションを開始するには、以下を入力します。
~]$ scl enable python27 rh-postgresql12 bash
現行セッションで有効になっている Software Collections のリストは、$X_SCLS 環境変数に保存されます。以下に例を示します。
~]$ echo $X_SCLS
python27 rh-postgresql12
Red Hat Software Collections で配布される Software Collections の完全リストは、表1.1「Red Hat Software Collections のコンポーネント」を参照してください。

3.1.3. Software Collection からのシステムサービスの実行

Red Hat Enterprise Linux 7 では、init スクリプトが systemd サービスのユニットファイルに置き換えられました。このファイルは、.service ファイル拡張子で終わり、init スクリプトとして同様の目的で使用されています。現行セッションでサービスを起動するには、root で以下のコマンドを実行します。
systemctl start software_collection-service_name.service
software_collection を、Software Collection および service_name を、開始するサービスの名前に置き換えます。
システムの起動時にこのサービスが自動的に開始するように設定するには、root で以下のコマンドを入力します。
systemctl enable software_collection-service_name.service
たとえば、rh-postgresql12 Software Collection から postgresql サービスを起動し、システムの起動時に有効にするには、root で以下を入力します。
~]# systemctl start rh-postgresql12-postgresql.service
~]# systemctl enable rh-postgresql12-postgresql.service
Red Hat Enterprise Linux 7 でシステムサービスを管理する方法は、Red Hat Enterprise Linux 7 System Administrator's Guide を参照してください。Red Hat Software Collections で配布される Software Collections の完全リストは、表1.1「Red Hat Software Collections のコンポーネント」を参照してください。

3.2. Software Collection からの手動ページへのアクセス

すべての Software Collection には、このコンポーネントの内容を説明する一般的な man ページが含まれています。各 man ページにはコンポーネントと同じ名前が付いており、/opt/rh ディレクトリーにあります。
Software Collection の man ページを確認するには、以下のコマンドを入力します。
scl enable software_collection 'man software_collection'
software_collection を、特定の Red Hat Software Collections コンポーネントに置き換えます。たとえば、rh-mariadb105 の man ページを表示するには、以下を入力します。
~]$ scl enable rh-mariadb105 "man rh-mariadb105"

3.3. Red Hat Software Collections を使用するアプリケーションのデプロイ

通常、以下の 2 つの方法のいずれかを使用して、実稼働環境の Red Hat Software Collections のコンポーネントに依存するアプリケーションをデプロイすることができます。
  • 必要な Software Collections およびパッケージをすべて手動でインストールしてから、アプリケーションをデプロイする、または
  • アプリケーション用の新しい Software Collection を作成し、必要な Software Collections およびその他のパッケージをすべて依存関係として指定する
個々の Red Hat Software Collections コンポーネントを手動でインストールする方法は、「Red Hat Software Collections のインストール」 を参照してください。Red Hat Software Collections の使用方法に関する詳細は、「Red Hat Software Collections の使用」 を参照してください。カスタム Software Collection を作成する方法や、既存のソフトウェアを拡張する方法については、Red Hat Software Collections Packaging Guideを参照してください。

3.4. Red Hat Software Collections コンテナーイメージ

Red Hat Software Collections に基づくコンテナーイメージには、アプリケーション、デーモン、およびデータベースが含まれます。イメージは、Red Hat Enterprise Linux 7 Server および Red Hat Enterprise Linux Atomic Host で実行できます。使用方法は、Using Red Hat Software Collections 3 Container Imagesを参照してください。Red Hat Software Collections バージョン 2.4 以前の Red Hat Software Collections バージョン 2.4 をベースとしたコンテナーイメージの詳細は、Red Hat Software Collections 2 コンテナーイメージを参照してください。
各コンテナーイメージの最新バージョンのみがサポートされることに注意してください。
以下のコンテナーイメージは、Red Hat Software Collections 3.7: で利用できます。
  • rhscl/mariadb-105-rhel7
  • rhscl/postgresql-13-rhel7
  • rhscl/ruby-30-rhel7
  • rhscl/devtoolset-10-toolchain-rhel7
  • rhscl/devtoolset-10-perftools-rhel7
  • rhscl/ruby-27-rhel7
  • rhscl/ruby-26-rhel7
以下のコンテナーイメージは Red Hat Software Collections 3.6: をベースとしています。
  • rhscl/httpd-24-rhel7
  • rhscl/nginx-118-rhel7
  • rhscl/nodej-14-rhel7
  • rhscl/perl-530-rhel7
  • rhscl/php-73-rhel7
以下のコンテナーイメージは Red Hat Software Collections 3.5 をベースとしています。
  • rhscl/python-38-rhel7
  • rhscl/varnish-6-rhel7
以下のコンテナーイメージは、Red Hat Software Collections 3.4 をベースとしています。
  • rhscl/nginx-116-rhel7
  • rhscl/nodejs-12-rhel7
  • rhscl/postgresql-12-rhel7
以下のコンテナーイメージは、Red Hat Software Collections 3.3 をベースとしています。
  • rhscl/mariadb-103-rhel7
  • rhscl/redis-5-rhel7
以下のコンテナーイメージは、Red Hat Software Collections 3.2 をベースとしています。
  • rhscl/mysql-80-rhel7
以下のコンテナーイメージは、Red Hat Software Collections 3.1 をベースとしています。
  • rhscl/postgresql-10-rhel7
以下のコンテナーイメージは、Red Hat Software Collections 3.2 をベースとしています。
  • rhscl/python-27-rhel7
  • rhscl/s2i-base-rhel7

第4章 個別の Software Collections の詳細

本章では、特定の Software Collections の詳細に重点を置き、これらのコンポーネントに関する追加情報を提供します。

4.1. Red Hat Developer Toolset

Red Hat Developer Toolset は、Red Hat Enterprise Linux プラットフォームで作業する開発者向けに設計されています。Red Hat Developer Toolset は、現在のバージョンのGNU Compiler CollectionGNU Debugger、およびその他の開発、デバッグ、パフォーマンス監視ツールを提供します。他の Software Collections と同様に、追加のツールセットが /opt/ ディレクトリーにインストールされます。これらのツールは、提供された scl ユーティリティーを使用してオンデマンドでユーザーが有効にします。他の Software Collections と同様に、これらのツールの Red Hat Enterprise Linux システムバージョンを置き換えることはありません。また、scl ユーティリティーを使用して明示的に呼び出されない限り、これらのシステムバージョンを優先して使用することもできます。
機能の概要は、『Red Hat Developer Toolset リリースノート』のFeaturesセクションを参照してください。10.1 における使用方法および変更の詳細は、Red Hat Developer Toolset ユーザーガイドを参照してください。

4.2. Maven

rh-maven36 Software Collection は、Red Hat Enterprise Linux 7 でのみ利用可能です。ソフトウェアプロジェクトの管理および解釈を行うツールを提供します。Maven はプロジェクトオブジェクトモデル (POM) の概念に基づいて、プロジェクトのビルド、レポート、およびドキュメントを一元的な情報から管理できます。
rh-maven36 Collection をインストールするには、root で次のコマンドを実行します。
yum install rh-maven36
このコレクションを有効にするには、シェルプロンプトで以下のコマンドを入力します。
scl enable rh-maven36 bash
リモートリポジトリーやミラーなどのグローバル Maven 設定は、/opt/rh/rh-maven36/root/etc/maven/settings.xml ファイルを編集してカスタマイズできます。
Maven の使用に関する詳細は、Maven ドキュメント を参照してください。プラグインの使用法については、こちらのセクション で説明します。個々のプラグインに関するドキュメントをお探しの場合は、プラグインのインデックス を参照してください。

4.3. データベースコネクター

データベースコネクターパッケージは、データベースサーバーへのローカルまたはリモート接続に必要なデータベースクライアント機能を提供します。表4.1「言語とデータベース間の相互運用性」 特定のデータベースサーバーのコネクターを含む言語ランタイムを含む Software Collections を一覧表示します。( )
  • はい - この組み合わせはサポートされています
  • いいえ - この組み合わせはサポートされていません

表4.1 言語とデータベース間の相互運用性

 Database
言語 (Software Collection)MariaDBMongoDBMySQLPostgreSQLRedisSQLite3
rh-nodejs4いいえいいえいいえいいえいいえいいえ
rh-nodejs6いいえいいえいいえいいえいいえいいえ
rh-nodejs8いいえいいえいいえいいえいいえいいえ
rh-nodejs10いいえいいえいいえいいえいいえいいえ
rh-nodejs12いいえいいえいいえいいえいいえいいえ
rh-nodejs14いいえいいえいいえいいえいいえいいえ
rh-perl520はいいいえはいはいいいえいいえ
rh-perl524はいいいえはいはいいいえいいえ
rh-perl526はいいいえはいはいいいえいいえ
rh-perl530はいいいえはいはいいいえはい
rh-php56はいはいはいはいいいえはい
rh-php70はいいいえはいはいいいえはい
rh-php71はいいいえはいはいいいえはい
rh-php72はいいいえはいはいいいえはい
rh-php73はいいいえはいはいいいえはい
python27はいはいはいはいいいえはい
rh-python34いいえはいいいえはいいいえはい
rh-python35はいはいはいはいいいえはい
rh-python36はいはいはいはいいいえはい
rh-python38はいいいえはいはいいいえはい
rh-ror41はいはいはいはいいいえはい
rh-ror42はいはいはいはいいいえはい
rh-ror50はいはいはいはいいいえはい
rh-ruby25はいはいはいはいいいえいいえ
rh-ruby26はいはいはいはいいいえいいえ
rh-ruby27はいはいはいはいいいえいいえ
rh-ruby30はいいいえはいはいいいえはい

第5章 移行

本章では、Red Hat Software Collections 3.7 に含まれるコンポーネントのバージョンに移行する方法を説明します。

5.1. MariaDB 10.5 への移行

rh-mariadb105 Software Collection は、デフォルトの MySQL 実装として MariaDB 5.5 を含む Red Hat Enterprise Linux 7 で利用できます。
rh-mariadb105 Software Collection は、コアシステムの mysql または mariadb パッケージと競合しません。*-syspaths パッケージがインストールされていない限り (下記参照)、mysql パッケージまたは mariadb パッケージとともに rh-mariadb105 Software Collection をインストールできます。特定のリソースが競合しないようにするため、両方のバージョンを同時に実行することもできますが、ポート番号と my.cnf ファイルのソケットを変更する必要があります。さらに、rh-mariadb103 Collection がインストールされ、実行中でも、rh-mariadb105 Software Collection をインストールすることもできます。
rh-mariadb105 Software Collection には、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージをインストールする rh-mariadb105-syspaths パッケージが含まれます。rh-mariadb105*-syspaths パッケージのインストール後に、rh-mariadb105* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと、rh-mariadb103 および rh-mysql80 Software Collections からの対応するパッケージと競合することに注意してください。syspaths の詳細は、Red Hat Software Collections パッケージガイドを参照してください。
MariaDB 5.5 から MariaDB 10.5 への推奨される移行パスは、最初に MariaDB 10.0 にアップグレードしてから、1 バージョンずつ順次アップグレードすることです。詳細は、以前の Red Hat Software Collections リリースノートの手順 (Migrating to MariaDB 10.0Migrating to MariaDB 10.1Migrating to MariaDB 10.2、および Migrating to MariaDB 10.3) を参照してください。MariaDB 10.4 は Software Collection として利用できないため、rh-mariadb103 から rh-mariadb105 に直接移行する必要があります。
注記
rh-mariadb105 Software Collection では、NFS によるマウントやscl registerコマンドによる動的登録はサポートしていません。

5.1.1. rh-mariadb103 および rh-mariadb105 Software Collections 間の主な相違点

MariaDB 10.3MariaDB 10.5 の間の重要な変更点には以下が含まれます。
  • MariaDB がデフォルトで unix_socket 認証プラグインを使用するようになりました。このプラグインを使用すると、ローカルの UNIX ソケットファイルを介して MariaDB に接続する際に、オペレーティングシステムの資格情報を使用できます。
  • MariaDB に、mariadb-* という名前のバイナリーと、mariadb-* バイナリーを参照する mysql* シンボリックリンクが追加されました。たとえば、mysqladminmysqlaccess、および mysqlshow のシンボリックリンクは、それぞれ mariadb-adminmariadb-access、および mariadb-show バイナリーを参照します。
  • 各ユーザーロールに合わせて、SUPER 特権が複数の特権に分割されました。その結果、一部のステートメントが必要な特権が変更されました。
  • 並列レプリケーションでは、slave_parallel_modeoptimistic にデフォルト設定されるようになりました。
  • InnoDB ストレージエンジンでは、以下の変数のデフォルトが変更されました。innodb_adaptive_hash_indexOFFinnodb_checksum_algorithmfull_crc32
  • MariaDB は、以前使用された readline ライブラリーではなく、MariaDB コマンド履歴 (.mysql_history ファイル) を管理する基盤となるソフトウェアの libedit 実装を使用するようになりました。この変更は、.mysql_history ファイルを直接使用しているユーザーに影響します。.mysql_historyMariaDB または MySQL アプリケーションによって管理されるファイルであるため、ユーザーは直接ファイルでは機能しないことに注意してください。人間が判読可能な外観は偶然です。
    注記
    セキュリティーを強化するために、履歴ファイルの維持を考慮することができます。コマンド履歴の記録を無効にするには、以下を実行します。
    1. 存在する場合は、.mysql_history ファイルを削除します。
    2. 以下のいずれかの方法を使用します。
      • MYSQL_HISTFILE 変数を /dev/null に設定し、これをシェルの起動ファイルに追加します。
      • .mysql_history ファイルを /dev/null へのシンボリックリンクに変更します。
        ln -s /dev/null $HOME/.mysql_history
MariaDB Galera クラスター がバージョン 4 にアップグレードされ、以下の主な変更点が加えられました。
  • Galera は、サイズ制限なしのトランザクションの複製をサポートする、新しいストリーミングレプリケーション機能を追加します。ストリーミングレプリケーションの実行時に、クラスターは小さなフラグメントでトランザクションを複製します。
  • Galera がグローバルトランザクション ID (GTID) に完全に対応するようになりました。
  • /etc/my.cnf.d/galera.cnf ファイルの wsrep_on オプションのデフォルト値が 1 から 0 に変更され、エンドユーザーが必要な追加オプションを設定せずに wsrep レプリケーションを開始できないようにします。
MariaDB 10.5 の PAM プラグインへの変更には、以下が含まれます。
  • MariaDB 10.5 は、PAM (Pluggable Authentication Modules) プラグインの新バージョンを追加します。PAM プラグインバージョン 2.0 は、個別の setuid root ヘルパーバイナリーを使用して PAM 認証を実行します。これにより MariaDB が追加の PAM モジュールを使用できるようになります。
  • ヘルパーバイナリーは、mysql グループのユーザーによってのみ実行できます。デフォルトでは、グループには mysql ユーザーのみが含まれます。Red Hat では、このヘルパーユーティリティーを介してスロットルまたはログの記録をせずにパスワード推測攻撃を防ぐために、管理者が mysql グループにユーザーをさらに追加しないことを推奨しています。
  • MariaDB 10.5 では、PAM (Pluggable Authentication Modules) プラグインとその関連ファイルが新しいサブパッケージ mariadb-pam に移動しました。したがって、MariaDB に PAM 認証を使用しないシステムに、新しい setuid root バイナリーが導入されることはありません。
  • rh-mariadb105-mariadb-pam パッケージには PAM プラグインバージョンの両方が含まれています。バージョン 2.0 はデフォルトで、バージョン 1.0 は auth_pam_v1 共有オブジェクトライブラリーとして利用できます。
  • MariaDB サーバーでは、デフォルトで rh-mariadb105-mariadb-pam パッケージがインストールされないことに注意してください。MariaDB 10.5 で PAM 認証プラグインを利用できるようにするには、rh-mariadb105-mariadb-pam パッケージを手動でインストールします。
詳細は、MariaDB 10.4 の変更および MariaDB 10.5 の変更に関するアップストリームドキュメントを参照してください。MariaDB 10.4 へのアップグレードおよび MariaDB 10.5 へのアップグレードに関するアップストリーム情報も参照してください。

5.1.2. rh-mariadb103 から rh-mariadb105 Software Collection へのアップグレード

重要
アップグレードする前に、MariaDB データベースを含むすべてのデータのバックアップを作成します。
  1. rh-mariadb103 データベースサーバーが実行している場合は停止します。
    サーバーを停止する前に、innodb_fast_shutdown オプションを 0 に設定し、InnoDB が完全なパージや挿入バッファーマージを含む低速なシャットダウンを実行します。アップストリームのドキュメント で、このオプションの詳細を参照してください。この操作は、通常のシャットダウンの場合よりも長い時間がかかる可能性があります。
    mysql -uroot -p -e "SET GLOBAL innodb_fast_shutdown = 0"
    rh-mariadb103 サーバーを停止します。
    systemctl stop rh-mariadb103-mariadb.service
  2. mysql_upgrade ユーティリティーを提供するサブパッケージを含む rh-mariadb105 Software Collection をインストールします。
    yum install rh-mariadb105-mariadb-server rh-mariadb105-mariadb-server-utils
    これらの Collections が競合しないため、rh-mariadb105 Software Collection のインストール中は rh-mariadb103 Software Collection をインストールすることができることに注意してください。
  3. /etc/opt/rh/rh-mariadb105/my.cnf ファイルおよび /etc/ opt/rh/rh-mariadb105/my.cnf.d/ ディレクトリーに保存されている rh-mariadb105 の設定を検証します。これを /etc/opt/rh/rh-mariadb103/my.cnf および /etc/opt/rh/rh-mariadb103/my.cnf.d/ に保存されている rh-mariadb103 の設定と比較して、必要に応じて調整します。
  4. rh-mariadb103 Software Collection のすべてのデータは、異なる設定しない限り、/var/opt/rh/rh-mariadb103/lib/mysql/ ディレクトリーに保存されます。このディレクトリーのすべての内容を /var/opt/rh/rh-mariadb105/lib/mysql/ にコピーします。コンテンツを移動することはできますが、アップグレードを続行する前にデータをバックアップすることを忘れないようにしてください。データが mysql ユーザーによって所有され、SELinux コンテキストが正しいことを確認します。
  5. rh-mariadb105 データベースサーバーを起動します。
    systemctl start rh-mariadb105-mariadb.service
  6. データ移行を実行します。MDEV-14637 で導入されたアップストリームの変更により、mysql_upgrade コマンドを実行する必要があることに注意してください。
    scl enable rh-mariadb105 mysql_upgrade
    root ユーザーに空ではないパスワードが定義されている場合 (パスワードを定義しておく必要あり) は、-p オプションを指定して mysql_upgrade ユーティリティーを呼び出してパスワードを指定する必要があります。
    scl enable rh-mariadb105 -- mysql_upgrade -p
    rh-mariadb105*-syspaths パッケージのインストール時には、scl enable コマンドは必要ありません。ただし、*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと、rh-mariadb103 および rh-mysql80 Software Collections からの対応するパッケージと競合します。

5.2. MySQL 8.0 への移行

rh-mysql80 Software Collection は、デフォルトの MySQL 実装として MariaDB 5.5 を含む Red Hat Enterprise Linux 7 で利用できます。
rh-mysql80 Software Collection は、*-syspaths パッケージがインストールされていない限り、コアシステムの mysql パッケージまたは mariadb パッケージ、rh-mysql* または rh-mariadb* Software Collections と競合しません (以下を参照)。また、複数のバージョンを同時に実行することも可能ですが、特定リソースが競合しないようにするため、ポート番号と my.cnf ファイルのソケットを変更する必要があります。
MySQL 5.7 からのみ MySQL 8.0 にアップグレードできることに注意してください。以前のバージョンからアップグレードする必要がある場合は、最初に MySQL 5.7 にアップグレードしてください。手順は、Migration to MySQL 5.7 を参照してください。

5.2.1. MySQL 5.7 と MySQL 8.0 間の主な相違点

rh-mysql80 ソフトウェアの収集に固有の相違点

  • Red Hat Enterprise Linux 7 のクライアントツールおよびライブラリーは、アップストリームの MySQL 8.0 バージョンでデフォルトで使用されている caching_sha2_password メソッドと互換性がないため、rh-mysql80 Software Collection が提供する MySQL 8.0 サーバーは、mysql_native_password をデフォルトの認証プラグインとして使用します。
    デフォルトの認証プラグインを caching_sha2_password に変更するには、/etc/opt/rh/rh-mysql80/my.cnf.d/mysql-default-authentication-plugin.cnf ファイルを次のように変更します。
    [mysqld]
    default_authentication_plugin=caching_sha2_password
    caching_sha2_password 認証プラグインの詳細は、アップストリームのドキュメント を参照してください。
  • rh-mysql80 Software Collection には、rh-mysql80-mysql-config-syspaths パッケージ、rh-mysql80-mysql-server-syspaths パッケージ、および rh-mysql80-mysql-syspaths パッケージをインストールする rh-mysql80-syspaths パッケージが含まれます。これらのサブパッケージは、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供します。rh-mysql80*-syspaths パッケージのインストール後に、rh-mysql80* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと、rh-mariadb103 および rh-mariadb105 Software Collections からの対応するパッケージと競合することに注意してください。syspaths の詳細は、Red Hat Software Collections Packaging Guide を参照してください。

MySQL 8.0 の一般的な変更点

  • バイナリーロギングは、サーバーの起動時にデフォルトで有効になります。--log-bin オプションが指定されていない場合でも、log_bin システム変数はデフォルトで ON に設定されます。バイナリーロギングを無効にするには、起動時に --skip-log-bin または --disable-log-bin オプションを指定します。
  • CREATE FUNCTION ステートメントを許可するには、DETERMINISTICNO SQL、または READS SQL DATA のキーワードの中から少なくとも 1 つを明示的に指定する必要があります。指定しない場合は、エラーが発生します。
  • アカウント管理に関連する特定の機能が削除されました。つまり、GRANT ステートメントを使用して、認証、SSL、リソース制限などの特権割り当て以外のアカウントプロパティーを変更できなくなりました。アカウント作成時にに上記のプロパティーを確立するには、CREATE USER ステートメントを使用します。これらのプロパティーを変更するには、ALTER USER ステートメントを使用します。
  • クライアント側で一部の SSL 関連のオプションが削除されました。--ssl =1 または --enable-ssl の代わりに --ssl-mode=REQUIRED オプションを使用します。--ssl=0--skip-ssl、または --disable-ssl の代わりに --ssl-mode=DISABLED オプションを使用してください。--ssl- verify-server-cert オプションの代わりに --ssl-mode=VERIFY_IDENTITY オプションを使用してください。このオプションは、サーバー側では変更されないままになることに注意してください。
  • デフォルトの文字セットが、latin1 から utf8mb4 に変更しました。
  • utf8 文字セットは現時点で utf8mb3 のエイリアスになりますが、今後は utf8mb4 への参照となります。曖昧さを防ぐには、utf8 ではなく文字セット参照に utf8mb4 を明示的に指定します。
  • SET 以外のステートメントでユーザー変数を設定することが非推奨になりました。
  • 以前エラーログをシステムログに記録した log_syslog 変数は削除されました。
  • 空間データのサポートに対する互換性のない変更がいくつか導入されています。
  • GROUP BY 句の非推奨の ASC または DESC 修飾子が削除されました。特定のソート順序を生成するには、ORDER BY 句を指定します。
以前のバージョンと比較した MySQL 8.0 における詳細な変更については、アップストリームのドキュメントWhat Is New in MySQL 8.0およびChanges Affecting Upgrades to MySQL 8.0を参照してください。

5.2.2. rh-mysql80 Software Collection へのアップグレード

重要
アップグレードする前に、MySQL データベースを含むすべてのデータのバックアップを作成します。
  1. rh-mysql80 Software Collection をインストールします。
    yum install rh-mysql80-mysql-server
  2. /etc/opt/rh/rh-mysql80/my.cnf ファイルおよび /etc/opt/rh/rh-mysql80/my.cnf.d/ ディレクトリーに保存されている rh-mysql80 の設定を検証します。これを /etc/opt/rh/rh-mysql57/my.cnf/etc/opt/rh/rh-mysql57/my.cnf.d/ に保存されている rh-mysql57 の設定と比較して、必要に応じて調整します。
  3. rh-mysql57 データベースサーバーが実行している場合は停止します。
    systemctl stop rh-mysql57-mysqld.service
  4. rh-mysql57 Software Collection のすべてのデータは /var/opt/rh/rh-mysql57/lib/mysql/ ディレクトリーに保存されます。このディレクトリーのすべての内容を /var/opt/rh/rh-mysql80/lib/mysql/ にコピーします。コンテンツを移動することもできますが、アップグレードを続行する前にデータのバックアップを作成することを忘れないようにしてください。
  5. rh-mysql80 データベースサーバーを起動します。
    systemctl start rh-mysql80-mysqld.service
  6. データ移行を実行します。
    scl enable rh-mysql80 mysql_upgrade
    root ユーザーに空ではないパスワードが定義されている場合 (パスワードを定義しておく必要あり) は、-p オプションを指定して mysql_upgrade ユーティリティーを呼び出してパスワードを指定する必要があります。
    scl enable rh-mysql80 -- mysql_upgrade -p
    rh-mysql80*-syspaths パッケージのインストール時には、scl enable コマンドは必要ありません。ただし、*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと、rh-mariadb103 および rh-mariadb105 Software Collections からの対応するパッケージと競合します。

5.3. PostgreSQL 13 への移行

Red Hat Software Collections 3.7 は PostgreSQL 13 とともに配布されており、Red Hat Enterprise Linux 7 でのみ利用できます。rh-postgresql13 Software Collection は、PostgreSQL または PostgreSQL Software Collection のベースの Red Hat Enterprise Linux システムバージョンと並行して、同じマシンに安全にインストールできます。複数のバージョンの PostgreSQL を同時にマシン上で実行することもできますが、別のポートまたは IP アドレスを使用し、SELinux ポリシーを調整する必要があります。
rh-postgresql13 Software Collection には、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージをインストールする rh-postgresql13-syspaths パッケージが含まれます。rh-postgresql13*-syspaths パッケージのインストール後に、rh-postgresql13* パッケージによって提供されるバイナリーおよびスクリプトが正しく動作するかを scl enable コマンドを使用して確認する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと対応するパッケージと競合することに注意してください。syspaths の詳細は、Red Hat Software Collections パッケージガイドを参照してください。
重要
PostgreSQL 13 に移行する前に、PostgreSQL 13 に関するアップストリームの互換性情報を参照してください。
コンテナーで PostgreSQL データベースをアップグレードする場合は、コンテナー固有の手順を参照してください。
以下の表は、postgresql パッケージが提供する PostgreSQL の Red Hat Enterprise Linux 7 システムバージョン、ならびに rh-postgresql12 および rh-postgresql13 Software Collection の異なるパスの概要を示しています。

表5.1 PostgreSQL パスの相違点

コンテンツpostgresqlrh-postgresql12rh-postgresql13
実行ファイル/usr/bin//opt/rh/rh-postgresql12/root/usr/bin//opt/rh/rh-postgresql13/root/usr/bin/
ライブラリー/usr/lib64//opt/rh/rh-postgresql12/root/usr/lib64//opt/rh/rh-postgresql13/root/usr/lib64/
資料/usr/share/doc/postgresql/html//opt/rh/rh-postgresql12/root/usr/share/doc/postgresql/html//opt/rh/rh-postgresql13/root/usr/share/doc/postgresql/html/
PDF ドキュメント/usr/share/doc/postgresql-docs//opt/rh/rh-postgresql12/root/usr/share/doc/postgresql-docs//opt/rh/rh-postgresql13/root/usr/share/doc/postgresql-docs/
Contrib ドキュメント/usr/share/doc/postgresql-contrib//opt/rh/rh-postgresql12/root/usr/share/doc/postgresql-contrib//opt/rh/rh-postgresql13/root/usr/share/doc/postgresql-contrib/
ソース未インストール未インストール未インストール
データ/var/lib/pgsql/data//var/opt/rh/rh-postgresql12/lib/pgsql/data//var/opt/rh/rh-postgresql13/lib/pgsql/data/
バックアップエリア/var/lib/pgsql/backups//var/opt/rh/rh-postgresql12/lib/pgsql/backups//var/opt/rh/rh-postgresql13/lib/pgsql/backups/
テンプレート/usr/share/pgsql//opt/rh/rh-postgresql12/root/usr/share/pgsql//opt/rh/rh-postgresql13/root/usr/share/pgsql/
手順言語/usr/lib64/pgsql//opt/rh/rh-postgresql12/root/usr/lib64/pgsql//opt/rh/rh-postgresql13/root/usr/lib64/pgsql/
開発ヘッダー/usr/include/pgsql//opt/rh/rh-postgresql12/root/usr/include/pgsql//opt/rh/rh-postgresql13/root/usr/include/pgsql/
他の共有データ/usr/share/pgsql//opt/rh/rh-postgresql12/root/usr/share/pgsql//opt/rh/rh-postgresql13/root/usr/share/pgsql/
リグレッションテスト/usr/lib64/pgsql/test/regress/ (-test パッケージ内)/opt/rh/rh-postgresql12/root/usr/lib64/pgsql/test/regress/ (-test パッケージ内)/opt/rh/rh-postgresql13/root/usr/lib64/pgsql/test/regress/ (-test パッケージ内)

5.3.1. Red Hat Enterprise Linux システムバージョンの PostgreSQL から PostgreSQL 13 Software Collection への移行

Red Hat Enterprise Linux 7 には PostgreSQL 9.2 が同梱されています。PostgreSQL の Red Hat Enterprise Linux システムバージョンから rh-postgresql13 Software Collection にデータを移行するには、pg_upgrade ツール (推奨) を使用して高速アップグレードを実行するか、SQL コマンドでデータベースデータをテキストファイルにダンプし、新しいデータベースにインポートします。2 つ目の方法は、通常大幅に遅くなるため、手動で修正が必要になる場合があります。このアップグレード方法の詳細は、PostgreSQL ドキュメント を参照してください。
重要
Red Hat Enterprise Linux システムバージョンの PostgreSQL から PostgreSQL 13 にデータを移行する前に、デフォルトで /var/lib/pgsql/data/ ディレクトリーに格納される PostgreSQL データベースファイルを含む、すべてのデータをバックアップしてください。

手順5.1 pg_upgrade ツールを使用した高速アップグレード

PostgreSQL サーバーの高速アップグレードを実行するには、以下の手順を実行します。
  1. 古い PostgreSQL サーバーを停止し、データが一貫性のない状態にあることを確認します。これを行うには、root で次のコマンドを実行します。
    systemctl stop postgresql.service
    サーバーが起動していないことを確認するには、以下を入力します。
    systemctl status postgresql.service
  2. 古いディレクトリー /var/lib/pgsql/data/ が存在することを確認します。
    file /var/lib/pgsql/data/
    データのバックアップを作成します。
  3. 新しいデータディレクトリー /var/opt/rh/rh-postgresql13/lib/pgsql/data/ が存在しないことを確認します。
    file /var/opt/rh/rh-postgresql13/lib/pgsql/data/
    PostgreSQL 13 の新規インストールを実行している場合は、このディレクトリーはシステムに存在しないはずです。その場合は、root で以下のコマンドを実行してバックアップを作成します。
    mv /var/opt/rh/rh-postgresql13/lib/pgsql/data{,-scl-backup}
  4. root で以下のコマンドを実行して、新しいサーバーのデータベースデータをアップグレードします。
    scl enable rh-postgresql13 -- postgresql-setup --upgrade
    または、/opt/rh/rh-postgresql13/root/usr/bin/postgresql-setup --upgrade コマンドを使用できます。
    別のバージョンの PostgreSQL からアップグレードする場合には、--upgrade-from オプションを使用できます。可能なアップグレードシナリオのリストは、--upgrade-ids オプションを使用して利用できます。
    作成された /var/lib/pgsql/upgrade_rh-postgresql13-postgresql.log ログファイルを読み取り、アップグレード中に問題が発生したかどうかを確認することが推奨されます。
  5. root で新しいサーバーを起動します。
    systemctl start rh-postgresql13-postgresql.service
    また、以下のように analyze_new_cluster.sh スクリプトを実行することが推奨されます。
    su - postgres -c 'scl enable rh-postgresql13 ~/analyze_new_cluster.sh'
  6. 必要に応じて、システムの起動時に PostgreSQL 13 サーバーが自動的に起動するように設定できます。古いシステム PostgreSQL サーバーを無効にするには、root で以下のコマンドを入力します。
    chkconfig postgresql off
    PostgreSQL 13 サーバーを有効にするには、root で以下を入力します。
    chkconfig rh-postgresql13-postgresql on
  7. デフォルトの設定と異なる場合は、設定ファイル (特に /var/opt/rh/rh-postgresql13/lib/pgsql/data/pg_hba.conf 設定ファイル) を必ず更新してください。それ以外の場合は、postgres ユーザーのみがデータベースにアクセスできます。

手順5.2 ダンプおよびリストアアップグレードの実行

PostgreSQL サーバーのダンプおよび復元アップグレードを実行するには、以下の手順を実行します。
  1. シェルプロンプトで、root で以下を入力し、古い PostgreSQL サーバーが実行中であることを確認します。
    systemctl start postgresql.service
  2. PostgreSQL データベースの全データをスクリプトファイルにダンプします。root で以下のコマンドを実行します。
    su - postgres -c 'pg_dumpall > ~/pgdump_file.sql'
  3. root で以下のコマンドを実行して、古いサーバーを停止します。
    systemctl stop postgresql.service
  4. 新規サーバーのデータディレクトリーを root として初期化します。
    scl enable rh-postgresql13 -- postgresql-setup initdb
  5. root で新しいサーバーを起動します。
    systemctl start rh-postgresql13-postgresql.service
  6. 以前に作成した SQL ファイルからデータをインポートします。
    su - postgres -c 'scl enable rh-postgresql13 "psql -f ~/pgdump_file.sql postgres"'
  7. 必要に応じて、システムの起動時に PostgreSQL 13 サーバーが自動的に起動するように設定できます。古いシステム PostgreSQL サーバーを無効にするには、root で以下のコマンドを入力します。
    chkconfig postgresql off
    PostgreSQL 13 サーバーを有効にするには、root で以下を入力します。
    chkconfig rh-postgresql13-postgresql on
  8. デフォルトの設定と異なる場合は、設定ファイル (特に /var/opt/rh/rh-postgresql13/lib/pgsql/data/pg_hba.conf 設定ファイル) を必ず更新してください。それ以外の場合は、postgres ユーザーのみがデータベースにアクセスできます。

5.3.2. PostgreSQL 12 Software Collection から PostgreSQL 13 Software Collection への移行

データを rh-postgresql12 Software Collection から rh-postgresql13 コレクションに移行するには、pg_upgrade ツール (推奨) を使用して高速アップグレードを実行するか、SQL コマンドでデータベースデータをテキストファイルにダンプして新しいデータベースにインポートします。2 つ目の方法は、通常大幅に遅くなるため、手動で修正が必要になる場合があります。このアップグレード方法の詳細は、PostgreSQL ドキュメント を参照してください。
重要
データを PostgreSQL 12 から PostgreSQL 13 に移行する前に、デフォルトで /var/opt/rh/rh-postgresql12/lib/pgsql/data/ ディレクトリーにある PostgreSQL データベースファイルを含む、すべてのデータのバックアップを作成してください。

手順5.3 pg_upgrade ツールを使用した高速アップグレード

PostgreSQL サーバーの高速アップグレードを実行するには、以下の手順を実行します。
  1. 古い PostgreSQL サーバーを停止し、データが一貫性のない状態にあることを確認します。これを行うには、root で次のコマンドを実行します。
    systemctl stop rh-postgresql12-postgresql.service
    サーバーが起動していないことを確認するには、以下を入力します。
    systemctl status rh-postgresql12-postgresql.service
  2. 古いディレクトリー /var/opt/rh/rh-postgresql12/lib/pgsql/data/ が存在することを確認します。
    file /var/opt/rh/rh-postgresql12/lib/pgsql/data/
    データのバックアップを作成します。
  3. 新しいデータディレクトリー /var/opt/rh/rh-postgresql13/lib/pgsql/data/ が存在しないことを確認します。
    file /var/opt/rh/rh-postgresql13/lib/pgsql/data/
    PostgreSQL 13 の新規インストールを実行している場合は、このディレクトリーはシステムに存在しないはずです。その場合は、root で以下のコマンドを実行してバックアップを作成します。
    mv /var/opt/rh/rh-postgresql13/lib/pgsql/data{,-scl-backup}
  4. root で以下のコマンドを実行して、新しいサーバーのデータベースデータをアップグレードします。
    scl enable rh-postgresql13 -- postgresql-setup --upgrade --upgrade-from=rh-postgresql12-postgresql
    または、/opt/rh/rh-postgresql13/root/usr/bin/postgresql-setup --upgrade --upgrade-from=rh-postgresql12-postgresql コマンドを使用できます。
    別のバージョンの PostgreSQL からアップグレードする場合には、--upgrade-from オプションを使用できます。可能なアップグレードシナリオのリストは、--upgrade-ids オプションを使用して利用できます。
    作成された /var/lib/pgsql/upgrade_rh-postgresql13-postgresql.log ログファイルを読み取り、アップグレード中に問題が発生したかどうかを確認することが推奨されます。
  5. root で新しいサーバーを起動します。
    systemctl start rh-postgresql13-postgresql.service
    また、以下のように analyze_new_cluster.sh スクリプトを実行することが推奨されます。
    su - postgres -c 'scl enable rh-postgresql13 ~/analyze_new_cluster.sh'
  6. 必要に応じて、システムの起動時に PostgreSQL 13 サーバーが自動的に起動するように設定できます。古い PostgreSQL 12 サーバーを無効にするには、root で以下のコマンドを入力します。
    chkconfig rh-postgresql12-postgreqsql off
    PostgreSQL 13 サーバーを有効にするには、root で以下を入力します。
    chkconfig rh-postgresql13-postgresql on
  7. デフォルトの設定と異なる場合は、設定ファイル (特に /var/opt/rh/rh-postgresql13/lib/pgsql/data/pg_hba.conf 設定ファイル) を必ず更新してください。それ以外の場合は、postgres ユーザーのみがデータベースにアクセスできます。

手順5.4 ダンプおよびリストアアップグレードの実行

PostgreSQL サーバーのダンプおよび復元アップグレードを実行するには、以下の手順を実行します。
  1. シェルプロンプトで、root で以下を入力し、古い PostgreSQL サーバーが実行中であることを確認します。
    systemctl start rh-postgresql12-postgresql.service
  2. PostgreSQL データベースの全データをスクリプトファイルにダンプします。root で以下のコマンドを実行します。
    su - postgres -c 'scl enable rh-postgresql12 "pg_dumpall > ~/pgdump_file.sql"'
  3. root で以下のコマンドを実行して、古いサーバーを停止します。
    systemctl stop rh-postgresql12-postgresql.service
  4. 新規サーバーのデータディレクトリーを root として初期化します。
    scl enable rh-postgresql13 -- postgresql-setup initdb
  5. root で新しいサーバーを起動します。
    systemctl start rh-postgresql13-postgresql.service
  6. 以前に作成した SQL ファイルからデータをインポートします。
    su - postgres -c 'scl enable rh-postgresql13 "psql -f ~/pgdump_file.sql postgres"'
  7. 必要に応じて、システムの起動時に PostgreSQL 13 サーバーが自動的に起動するように設定できます。古い PostgreSQL 12 サーバーを無効にするには、root で以下のコマンドを入力します。
    chkconfig rh-postgresql12-postgresql off
    PostgreSQL 13 サーバーを有効にするには、root で以下を入力します。
    chkconfig rh-postgresql13-postgresql on
  8. デフォルトの設定と異なる場合は、設定ファイル (特に /var/opt/rh/rh-postgresql13/lib/pgsql/data/pg_hba.conf 設定ファイル) を必ず更新してください。それ以外の場合は、postgres ユーザーのみがデータベースにアクセスできます。

5.4. nginx 1.18 への移行

rh-nginx118 Software Collection のルートディレクトリーは、/opt/rh/rh-nginx118/root/ にあります。エラーログはデフォルトで /var/opt/rh/rh-nginx118/log/nginx に保存されます。
設定ファイルは /etc/opt/rh/rh-nginx118/nginx/ ディレクトリーに保存されます。nginx 1.18 の設定ファイルは、これまでの nginx Software Collections と同じ構文で、ほぼ同じ形式です。
/etc/opt/rh/rh-nginx118/nginx/default.d/ ディレクトリー内の設定ファイル (.conf 拡張子付き) は、ポート 80 のデフォルトのサーバーブロック設定に含まれています。
重要
nginx 1.16 から nginx 1.18 にアップグレードする前に、/opt/rh/nginx116/root/ ツリーにある Web ページや /etc/opt/rh/nginx116/nginx/ ツリーにある設定ファイルを含むすべてのデータをバックアップしてください。
/opt/rh/nginx116/root/ ツリーで設定ファイルの変更や Web アプリケーションのセットアップなどの特定の変更を行った場合は、その変更を新しい /opt/rh/rh-nginx118/root/ ディレクトリーと /etc/opt/rh/rh-nginx118/nginx/ ディレクトリーに反映します。
この手順を使用して、 nginx 1.12 または nginx 1.14 から nginx 1.18 へ直接アップグレードできます。この場合は、適切なパスを使用してください。
nginx の公式ドキュメントは、http://nginx.org/en/docs/を参照してください。

5.5. Redis 5 への移行

rh-redis32 Software Collection で提供されるRedis 3.2 は、主に Redis 5.0 の厳密なサブセットである Redis 4.0 のサブセットです。したがって、バージョン 3.2 からバージョン 5.0 へのアップグレード時には、主要な問題が発生しません。
Redis Cluster をバージョン 5.0 にアップグレードするには、すべてのインスタンスの大量再起動が必要になります。

互換性に関する注意事項

  • RDB ファイルの形式が変更になりました。Redis 5 は以前の全バージョンの形式を読み取ることができますが、Redis 5 形式を読み取ることができません。
  • バージョン 4.0 以降、Redis クラスターバスプロトコルは Redis 3.2 と互換性がありません。
  • 後方互換性のないマイナーな変更は、バージョン 4.0 および バージョン 5.0 のアップストリームのリリースノートを参照してください。

第6章 関連資料

本章では、Red Hat Software Collections 3.7 および Red Hat Enterprise Linux に関する情報の関連ソースへの参照を提供します。

6.1. Red Hat 製品ドキュメント

以下のドキュメントは直接的または間接的にこのガイドに関連しています。
  • Red Hat Software Collections 3.7 パッケージガイド: Red Hat Software Collections の 『パッケージガイド』 は、Software Collections の概念や scl ユーティリティーを説明し、カスタム Software Collection の作成方法や既存 Software Collection の拡張方法を詳細に説明しています。
  • Red Hat Developer Toolset 10.1 Release Notes - Red Hat Developer Toolset の『リリースノート』は、既知の問題、考えられる問題、変更点、本 Software Collection に関するその他の重要な情報です。
  • Red Hat Developer Toolset 10.1 ユーザーガイド - Red Hat Developer Toolset の『ユーザーガイド』には、この Software Collection のインストールと使用に関する詳細情報が含まれています。
  • Red Hat Software Collections Container Images の使用 - 本書は、Red Hat Software Collections をベースとしたコンテナーイメージを使用する方法を説明します。利用可能なコンテナーイメージには、アプリケーション、デーモン、データベース、および Red Hat Developer Toolset コンテナーイメージが含まれます。イメージは、Red Hat Enterprise Linux 7 Server および Red Hat Enterprise Linux Atomic Host で実行できます。
  • Getting Containers では、Red Hat Enterprise Linux 7 および Red Hat Enterprise Linux Atomic Host でのコンテナーイメージのビルドおよび使用に関する包括的な概要を説明します。
  • Red Hat Subscription Manager の使用および設定 - 『Red Hat Subscription Manager の使用および設定』 ガイドでは、Red Hat Enterprise Linux システムの登録、サブスクリプションの管理、登録システムの通知の表示方法の詳細情報を提供します。
  • Red Hat Enterprise Linux 7 システム管理者のガイド - Red Hat Enterprise Linux 7 の『システム管理者のガイド』は、このシステムのデプロイメント、設定、および管理に関する情報を提供します。

6.2. Red Hat 開発者

  • Red Hat Developer Program: 『Red Hat Developers』 コミュニティーポータル
  • Overview of Red Hat Software Collections on Red Hat DevelopersRed Hat Developers』 ポータルでは、さまざまな開発技術を使用してコードを開発するためのチュートリアルがいくつか紹介されています。これには、Node.js、Perl、PHP、Python、Ruby Software Collections が含まれます。
  • Red Hat Developer Blog - 『Red Hat Developer Blog』 には、最新の情報、ベストプラクティス、意見、製品およびプログラムアナウンス、ならびに Red Hat の技術に基づくアプリケーションを設計および開発するユーザー向けのサンプルコードやその他のリソースへのポインターが含まれます。

付録A 更新履歴

改訂履歴
改訂 3.7-5Wed Dec 20 2023Lenka Špačková
壊れたリンクとアンカーを修正しました。
改訂 3.7-4Fri Nov 12 2021Lenka Špačková
「データベースコネクター」 を更新
改訂 3.7-3Tue Aug 24 2021Lenka Špačková
CVE の修正 (「その他の注意事項」) により、Python の非同期変更に関連する 2 つの注意書きを追加しました。
拡張 「Ruby の変更点」
改訂 3.7-2Mon Jul 12 2021Lenka Špačková
.mysql_history ファイルに関する注記を追加しました。
改訂 3.7-1Thu Jun 03 2021Lenka Špačková
Red Hat Software Collections 3.7 リリースノートも併せて参照してください。
改訂履歴
改訂 3.7-0Mon May 03 2021Lenka Špačková
Red Hat Software Collections 3.7 Beta リリースノートも併せて参照してください。

法律上の通知

Copyright © 2021 Red Hat, Inc.
このドキュメントは、Red Hat が Creative Commons Attribution-ShareAlike 3.0 Unported License に基づいてライセンスを提供しています。If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original.If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent.Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission.We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.