2 ソフトウェア・チャネルとリポジトリの作成
警告:
このドキュメントで説明するソフトウェアは、Extended Supportでの期間限定でサポートされます。 Oracle Linux 7は現在拡張サポート中です。 詳細は、Oracle Linux拡張サポートおよびOracleオープン・ソース・サポート・ポリシーを参照してください。
OS管理ハブを使用してオペレーティング・システム・インフラストラクチャを管理することを検討してください。 詳細は、「OS管理ハブ」を参照してください。
この章では、Oracle Linux Managerでソフトウェア・チャネルを作成する方法について説明します。 クライアント・システムはチャネルにサブスクライブして、パッケージおよびエラータを取得します。 各チャネルは、パッケージおよびエラータのソースを定義するリポジトリに少なくとも1つ関連付けられています。
この章の例では、Unbreakable Linux Network (ULN)およびOracle Linux yumサーバーを使用します。 ただし、Oracle Linux Managerを使用して、他の内部または外部ソースからソフトウェア・パッケージを取得することもできます。
注意:
Oracle Linux 8またはOracle Linux 9を使用している場合は、チャネルにモジュールが含まれている場合のチャネル操作の制限に注意してください。 『Oracle Linux Manager: リリース・ノートforリリース2.10』のOracle Linux Managerの既知の問題を参照してください。
ソフトウェア・チャネルの構成について
ULNには、サポートされているアーキテクチャに対して100を超える一意のチャネルがあります。 ULNにアクセスするには、https://linux.oracle.com/に移動します。
ULNは、ディストリビューション内のすべての最新バージョンのパッケージ(パッチ・チャネルでも提供されるエラータを含む)を含むリポジトリのolN_arch_[baseos]_latest
ラベルを提供します。
ノート:
ラベルにbaseos
を含めることは、Oracle Linux 8およびOracle Linux 9にのみ適用されます。
パッケージに脆弱性が見つからない場合、パッケージのバージョンは、元の配布に含まれていたバージョンと同じである可能性があります。 他のパッケージの場合、このバージョンはパッチ・チャネルで提供されている最高の更新レベルのバージョンと同じです。 たとえば、x86_64アーキテクチャを使用するOracle Linux 8の場合、ol8_x86_64_baseos_latest
チャネルにはol8_x86_64_u1_baseos_base
とol8_x86_64u1_baseos_patch
チャネルの組合せが含まれます。
重要:
ULNにOracle Linux Managerサーバーまたはクライアントを登録しないでください。 かわりに、Oracle Linux Managerサーバーを自身のクライアントとして登録し、更新を受信します。
Oracle Linux yumサーバーは、各更新のol
N _u
N _base
リポジトリに加えて、Oracle Linuxリリース全体のすべてのパッケージを含むリポジトリのol
N _latest
ラベルを提供します。
patch
チャネルなどの一部のチャネルおよびDTraceユーザー・スペース、KspliceおよびOFED用のチャネルはULNで使用できますが、Oracle Linux yumサーバーでは使用できません。
ULNは、親チャネルに追加された古いバージョンのパッケージも提供します。 _archive
接尾辞は、通常、アーカイブ・パッケージをホストするチャネルに追加されます。 たとえば、_latest
チャネルには、_latest
チャネルで更新された古いバージョンのパッケージをホストするのと同等の_latest_archive
チャネルがあります。
同じパッケージの新しいバージョンが親チャネルに追加されると、パッケージはアーカイブ・チャネルに移動されます。 アーカイブ・チャネルの追加により、親チャネルのメタデータを管理可能な状態に維持し、チャネル全体のサイズを最小限に抑えることができます。 以前のバージョンのパッケージが必要な場合は、同等の_archive
チャネルをサブスクライブして取得できます。 インストールまたはダウングレードを実行する場合、インストールするパッケージのバージョンを指定する必要があります。
ノート:
_archive
チャネルからパッケージをインストールしないでください。 これを行うと、セキュリティ関連の問題のパッチが適用されてから、システムでソフトウェアが実行される場合があります。 システムは、悪意のある目的で悪用される可能性のある脆弱性にさらされます。
また、ULNは、Oracle Linuxリリースの更新ごとにbase
およびpatch
チャネルを提供します。 Oracle Linuxリリースによっては、他のチャネルで、DTraceユーザー領域、Ksplice、OpenFabric Enterprise Edition (OFED)機能などの追加機能の最新パッケージが提供される場合があります。 ただし、Oracle Linux yumサーバーは、更新用のpatch
チャネルを提供しません。
パッケージのベータ・バージョン用の_beta
チャネルなど、他のチャネルも使用できます。
Oracle Linuxの新しいメジャー・バージョンまたはマイナー更新が利用可能になるたびに、Oracleはサポートされているアーキテクチャごとに新しいベース・チャネルおよびパッチ・チャネルを作成して、新しいパッケージを配布します。 以前のバージョンまたは更新の既存のベース・チャネルおよびパッチ・チャネルは、そのまま使用可能で、新しいパッケージは含まれません。 _latest
チャネルは、すべてのパッケージの最新のバージョンを配布し、更新レベルに関係なく開発ツリーの最上位を追跡します。
特定のワークフローに基づいたチャネル構成を設計することをお薦めします。 たとえば、Oracle Linux Managerチャネル・クローニング機能を使用して、テストから本番までのシステム開発を促進する場合は、base
チャネルとchild patch
チャネルを他の子チャネルとともに構成できます。
子チャネルを複製する場合、リポジトリを複製する必要はありません。 これらのチャネルは、クローンされたチャネルと同じリポジトリを使用できます。 たとえば、クローニングされた各ベース・チャネルには一意のaddons
子チャネルがあるが、それぞれの子チャネルでは同じリポジトリが使用される場合があります。 複数のチャネルで参照されていても、パッケージは複製されません。
ローカル・クライアントでアーカイブ・チャネル・コンテンツを使用できるようにするには、最初に同期するULNアーカイブ・チャネルごとにリポジトリを作成してから、これらのリポジトリをOracle Linux Managerで作成したソフトウェア・チャネルにマップする必要があります。
必要に応じて、これらのチャネルにシステムをサブスクライブせずに、latest
チャネルを個別にメンテナンスできます。 必要が生じた場合は、latest
チャネルからエラータ・パッケージをpatch
チャネルにコピーして、最新の修正プログラムを利用可能にすることができます。
ノート:
rhnpushなどのメソッドまたはwebインタフェースを使用したアップロードによってパッケージを取得するカスタム・チャネルを作成する場合は、ソフトウェア・チャネルをリポジトリに関連付ける必要はありません。 これらのメソッドにより、ローカルに開発され、アップストリーム・リポジトリを持たないパッケージ化されたソフトウェアを処理できます。
ULNで使用可能なメイン・チャネルの詳細は、「Oracle Linux: Unbreakable Linux Networkユーザー・ガイドfor Oracle Linux 6およびOracle Linux 7」におけるULNの登録に関する章を参照してください。
ULNのソフトウェア・チャネルの構成
Oracle Linux ManagerサーバーおよびクライアントをULNに登録しないでください。 かわりに、Oracle Linux Managerサーバーを自身のクライアントとして登録し、更新を受信します。 Oracle Linux Managerには、spacewalk-repo-syncツール用のULNプラグインが含まれています。 このプラグインを使用すると、ULNにOracle Linux Managerサーバーを登録しなくても、ソフトウェア・チャネルを同期できます。
プラグインを構成するには:
-
/etc/rhn/spacewalk-repo-sync/uln.conf
に読取り/書込み権限を付与します。sudo chmod 600 /etc/rhn/spacewalk-repo-sync/uln.conf
-
ULNのSSOログイン・ユーザー名とパスワードを追加して、ファイルを編集します:
[main] username=ULN_SSO_username password=ULN_SSO_password
-
ファイル権限を読取り専用に戻します。
sudo chmod 400 /etc/rhn/spacewalk-repo-sync/uln.conf
-
(オプション)読み取り専用権限がファイルにリストアされていることを確認します。
sudo ls -l /etc/rhn/spacewalk-repo-sync/uln.conf
ULN資格証明を保護するために、このファイルに
root
による読取り専用権限があることを確認します。
ULNプラグインを構成したら、Oracle Linux Manager webインタフェース、spacecmdコマンドまたはspacewalk-common-channelsコマンドを使用して、Oracle Linux Managerソフトウェア・チャネル、リポジトリおよびアクティブ化キーを作成できます。
ヒント:
spacewalk-common-channelsは、Oracle Linux yumサーバーにアクセスするようにソフトウェア・チャネルを構成しますが、かわりにULNにアクセスするようにリポジトリ・エントリを構成できます。 たとえば、ULNでOracle Linuxリリース更新用のOracle Linux base
およびpatch
チャネルを使用する場合は、base
チャネルにアクセスするためにベース・ソフトウェア・チャネルを再構成し、patch
チャネル用に追加の子チャネルおよび関連するリポジトリ・エントリを作成します。
Oracle Linux Yum Serverからのパッケージの取得
spacewalk-common-channelsコマンドを使用して、Oracle Linux yumサーバーを使用するソフトウェア・チャネルを構成します。 このコマンドを使用すると、Oracle Linuxリリースのリポジトリ、GPGキーおよびアクティブ化キーを構成することもできます。
ノート:
現在、spacewalk-common-channelsはOracle Linux 9チャネルをまだ作成できません。
使用可能なチャネルをリストするには、--listオプションを使用します:
sudo spacewalk-common-channels --list | grep "oracle"
ノート:
Oracle Linux yumサーバーは、ULNとは異なり、Oracle Linuxリリースの各更新に対してpatch
チャネルを提供しません。 かわりに、spacewalk-common-channelsコマンドは、リリース全体のすべてのパッケージを含むol
N _latest
リポジトリを使用するようにベース(親)ソフトウェア・チャネルを構成します。
一部のULNチャネル(DTrace userspace、Ksplice、OFED用のチャネルなど)は、Oracle Linux yumサーバーでは使用できません。
たとえば、Oracle Linux 8 (x86_64)用のソフトウェア・チャネルは、次のように作成します:
sudo spacewalk-common-channels -v -u swadm -p swadm_passwd -a x86_64 -k unlimited 'oraclelinux8*'
-k unlimitedオプションは、コマンドが使用できるサーバーの数に制限なく、アクティブ化鍵を作成するように指定します。 それ以外の場合、アクティブ化キーはアクティブ化されません。
詳細と手順については、以下を参照してください:
ソフトウェア・チャネルとリポジトリを設定したら、ソフトウェア・チャネルをOracle Linux yumサーバーと同期させてパッケージをダウンロードします。 「ソフトウェア・チャネルの同期」を参照してください。
Oracle Linux Managerリポジトリの構成
Oracle Linux Managerリポジトリは、ULNまたはOracle Linux yumサーバーからパッケージを取得する場所を定義します。
ULNの場合、Oracle Linux ManagerリポジトリはULNチャネルのURLを次の形式で指定します:
uln:///ULN_channel_label
使用可能なULNチャネル・ラベルのリストを取得するには、次の手順を実行します:
-
ULN (https://linux.oracle.com)にログインし、「チャネル」タブを選択します。
-
Channelsページで、それぞれのプルダウン・メニューからリリースおよびアーキテクチャを選択します。
表示されるページには、チャネル、そのラベルおよび説明が表示されます。 たとえば、Oracle Linux 8 Application Stream Packages (x86_64)チャネルのURLは、
uln:///ol8_x86_64_appstream
になります。
Oracle Linux yumサーバーの場合、Oracle Linux Managerリポジトリは次の形式でリポジトリのURLを指定します:
https://yum.oracle.com/repository_path
リポジトリの正しいURLを取得するには、次の手順を実行します:
-
https://yum.oracle.com/で、リポジトリのリストからOracle Linuxリリース(たとえば、Oracle Linux 7)を選択します。
-
最新のパッケージのリストから、システム・アーキテクチャに対応するパッケージへのリンク(例: x86_64)をクリックします。
RPMパッケージのリストが表示されます。 このページには、表示しているリポジトリの直接YUMリポジトリURLも表示されます。
ノート:
Oracle Linux 8リポジトリ・アクセスの場合は、適切なrelease-el8
パッケージをインストールし、yumリポジトリを構成する前に、アクセスが必要なリポジトリを有効にする必要があります。
Oracle Linux 8のDNFおよびYumリポジトリ構成の詳細は、「Oracle Linux: Oracle Linuxでのソフトウェアの管理」を参照してください。 dnf(5)
のマニュアル・ページも参照してください。
Oracle Linux Manager Webインタフェースの使用
図2-1 リポジトリ・ページ

チャネルに移動し、ソフトウェア・チャネルの管理を選択し、リポジトリの管理を選択します:
-
リポジトリを生成するには:
-
「+リポジトリの作成」をクリックします。
-
「新しいリポジトリを作成」ページで、次のリポジトリ設定を入力します:
- リポジトリ・ラベル
-
リポジトリの名前(例:
Oracle Linux 8 (x86_64)
)。 - リポジトリURL
-
リポジトリ・パッケージのソースのURL (
uln:///ol8_x86_64_baseos_latest
やhttps://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64
など)。 - リポジトリ・タイプ
-
uln
またはyum
のいずれかの「リポジトリURL」設定に応じたリポジトリのソース。
Oracle Linuxの残りのフィールドは未設定のままにします。
-
「リポジトリの作成」をクリックしてリポジトリを作成します。
-
-
リポジトリを表示するには、そのエントリを選択してその詳細を表示します。
-
リポジトリを変更するには:
-
編集するリポジトリを選択します。
-
「リポジトリの詳細」ページで、リポジトリ設定を変更し、「リポジトリを更新」をクリックして変更を保存します。
-
-
リポジトリを削除するには:
-
「チャネル」に移動し、「ソフトウェア・チャネルの管理」を選択し、「リポジトリの管理」を選択します。
-
削除するリポジトリを選択します。
-
「リポジトリの詳細」ページで、「リポジトリの削除」をクリックし、削除を確認します。
-
ソフトウェア・チャネルをリポジトリに関連付けるには、「Oracle Linux Manager Webインタフェースの使用」を参照してください。
特殊文字の使用に関するノート
Oracle Linux Manager webインタフェースとspacecmdサブコマンドの両方を使用して、Oracle Linux Managerリポジトリ、チャネルなどを構成できます。 ただし、特殊文字を処理する場合は異なります。
webインタフェースでは、作成ボタンをクリックすると、カッコなどの特殊文字が自動的に削除されます。 このため、たとえば、(x86_64)
はx86_64
として格納されます。
ただし、spacecmdコマンドはこれらの文字を保持します。 その後、チャネルまたはリポジトリでコマンドラインを使用し続けるときに、名前に特殊文字が含まれる場合は、これらの特殊文字を正しく解析するためにバックスラッシュ(\
)エスケープ文字を使用する必要があります。 「repo_createコマンドの使用」のrepo_detailsの例を参照してください。
ヒント:
作業を容易にするために、コマンドラインでチャネルおよびリポジトリを作成するときに特殊文字を使用しないでください。 したがって、特にOracle Linux Managerの管理時にwebインタフェースとコマンドラインを定期的に切り替える場合は、予期しない結果を回避できます。
repo_createコマンドの使用
次のようにrepo_createコマンドを使用してリポジトリを作成します。 指定する必要がある情報は太字になっています:
spacecmd {SSM:0}> repo_create
Name: Oracle Linux 8 x86_64 URL: uln:///ol8_x86_64_baseos_latest Type: uln ...
すべてのリポジトリをリストするには、repo_listコマンドを使用します:
spacecmd {SSM:0}> repo_list
リポジトリの詳細をリストするには、repo_detailsコマンドを使用します:
spacecmd {SSM:0}> repo_details "repository"
たとえば、Oracle Linux 8 x86_64リポジトリの詳細を一覧表示すると、次のようになります:
spacecmd {SSM:0}> repo_details "Oracle Linux 8 x86_64"
Repository Label: Oracle Linux 8 x86_64 Repository URL: uln:///ol8_x86_64_baseos_latest Repository Type: uln Repository SSL Ca Certificate: None Repository SSL Client Certificate: None Repository SSL Client Key: None
ノート:
コマンドラインを使用して特殊文字(Oracle Linux 8 (x86_64)
など)でリポジトリを作成した場合は、次のように入力します:
spacecmd {SSM:0}> repo_details "Oracle Linux 8 \(x86_64\)"
この例では、コマンドにバックスラッシュ文字を使用して、リポジトリ名のカッコを正しく解析する方法を示します。 リポジトリ名またはチャネル名に特殊文字を使用しないようにしてください。 「特殊文字の使用に関するノート」を参照してください。
リポジトリを削除するには、repo_deleteコマンドを使用します。 プロンプトが表示されたら、コマンドを確認してください。
spacecmd {SSM:0}> repo_delete "repository"
ソフトウェア・チャネルをリポジトリに関連付けるには、「softwarechannel_createコマンドの使用」を参照してください。
ソフトウェア・チャネルの構成
Oracle Linuxリリースのメイン・ソフトウェア・チャネルは、baseまたはparentソフトウェア・チャネルと呼ばれます。 ベース・チャネルには子ソフトウェア・チャネルが関連付けられています。 各子ソフトウェア・チャネルは、基本ソフトウェア・チャネルでは使用できないパッケージを提供します。 異なるサブスクライブ済チャネルにパッケージの複数のバージョンが存在する場合、yumバージョニングおよび依存性解決により、パッケージの最新バージョンがインストールされます。
単一の基本チャネルと1つ以上の子チャネルにクライアントをサブスクライブすることができます。 addons
などの更新に固有でないチャネルの場合は、更新レベルのベース・チャネルごとにaddons
子チャネルを作成し、この子チャネルを同じaddons
リポジトリに関連付けます。
ULNからOracle Linuxパッケージを取得するようにOracle Linux Managerを設定した場合、Oracleでは、Oracle Linux更新が使用可能になるたびに、個別のolN-un_arch-base
ベース・ソフトウェア・チャネルおよびolN-un-arch-patch
子ソフトウェア・チャネルを構成することをお薦めします。 この方法により、ソフトウェア・チャネルは小さく留まり、チャネル・クローニングのスピード・アップに役立ちます。 チャネル・クローニングに使用されるソース・チャネルを変更するか、クライアント・システムがサブスクライブしているチャネルを再構成しない限り、クライアント・システムは更新レベルを超えてアップグレードされません。
次の例は、Oracle Linuxのベース・ソフトウェア・チャネルとチャイルド・ソフトウェア・チャネルの一般的な構成を示しています。ここで、ベース・チャネルとパッチ・チャネルはULNと同期しています:
oraclelinux7-x86_64-base |-- oraclelinux7-x86_64-addons |-- oraclelinux7-x86_64-ksplice |-- oraclelinux7-x86_64-optional |-- oraclelinux7-x86_64-patch |-- oraclelinux7-x86_64-spacewalk27-client |-- oraclelinux7-x86_64-uek-r4
ノート:
ベース・ソフトウェア・チャネルとパッチ・ソフトウェア・チャネル以外のソフトウェア・チャネルは、ULNに関連付ける必要はありません。
Oracle Linux yumサーバーで、更新リリースのベース・チャネルが_latest
チャネルと同期されると、次のような構成が取得されます:
oraclelinux7-u4-x86_64-base |-- oraclelinux7-u4-x86_64-addons |-- oraclelinux7-u4-x86_64-ksplice |-- oraclelinux7-u4-x86_64-optional |-- oraclelinux7-u4-x86_64-patch |-- oraclelinux7-u4-x86_64-spacewalk27-client |-- oraclelinux7-u4-x86_64-uek-r4
Oracle Linux Manager Webインタフェースの使用
図2-2 ソフトウェア・チャネル管理ページ

チャネルに移動し、ソフトウェア・チャネルの管理を選択します:
-
ソフトウェア・チャネルを作成するには:
-
「+チャネルの作成」をクリックします。
-
「ソフトウェア・チャネルを作成」ページで、チャネルの初期構成で最も重要な次のフィールドにチャネル構成を入力します:
- チャネル名
-
チャネルのわかりやすい短縮名(例:
Oracle Linux 8 (x86_64) Base
)。 - チャネル・ラベル
-
ソフトウェアで使用されるチャネルの一意のラベル(たとえば、
oraclelinux8-x86_64
)。ノート:
チャネル・ラベルは、Oracle Linux Managerインストール全体で一意でなければなりません。 同じアップストリーム・リポジトリを使用する複数の子チャネルがある場合(たとえば、複数の親を持つ場合)、各子チャネルには独自の一意のラベルが必要です。 推奨される方法は、ラベル内の各階層の更新レベル(
oraclelinux8-u1-x86_64
など)を指定することです。 - 親チャネル
-
構成しているチャネルが子であるチャネル。 ベース・チャネルの場合は、「なし」を選択します。
- 建築
-
チャネルが提供するシステムのアーキテクチャ。 必要に応じて、プルダウン・リストからアーキテクチャを選択します。 I 386リポジトリの場合、オプションはIA-32です。
- Yumリポジトリ・チェックサム・タイプ
-
Oracle Linuxの場合は、sha256を選択します。
- チャネル要約
-
チャネルの短い説明的なサマリー(チャネル名など)。
このフィールドを空白にすることはできません。
- チャネル摘要
-
チャネルの詳細な説明。またはフィールドを空白のままにします。
- GPGキーのURL
-
ローカルGPGキーのURL。
Oracle Linux 9より前のOracle Linuxのリリースでは、URLは
file:///etc/pki/rpm-gpg/RPM-GPG-KEY
です。Oracle Linux 9の場合、URLは
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
です。キーはローカルに格納する必要があります。 したがって、サード・パーティ・リポジトリの場合は、GPGキーをローカル・ファイル・システムにインポートし、プロビジョニングまたはサイトに適した別のメソッドを使用してデプロイする必要があります。
- GPGキーID
- GPGキー・フィンガープリント
-
Oracle LinuxリリースのキーIDおよびフィンガープリント。
次の表を参照してください:
リリース キーID キー・フィンガープリント Oracle Linux 7
EC551F03
4214 4123 FECF C55B 9086 313D 72F9 7B74 EC55 1F03
Oracle Linux 8
AD986DA3
76FD 3DB1 3AB6 7410 B89D B10E 8256 2EA9 AD98 6DA3
Oracle Linux 9
8D8B756F
3E6D 826D 3FBA B389 C2F3 8E34 BC4D 06A0 8D8B 756F
-
チャネルの作成をクリックします。
-
-
リポジトリとソフトウェア・チャネルを関連付けるには:
-
リポジトリに関連付けるチャネルを選択します。
-
「基本チャネルの詳細」ページで、「リポジトリ」を選択し、リポジトリのチェック・ボックスを選択して「リポジトリの更新」をクリックします。
-
-
ソフトウェア・チャネルを表示するには、その項目を選択して詳細を表示します。
または、「チャネル」に移動し、「ソフトウェア・チャネル」を選択してチャネル名をクリックし、詳細を表示します。 特定のチャネルを選択し、「すべての子チャネルの表示」をクリックしてその子チャネルを表示することもできます。
-
ソフトウェア・チャネルを変更するには:
-
編集するチャネルを選択します。
-
「基本チャネルの詳細」ページで、チャネル設定を変更し、「チャネルを更新」をクリックして変更を保存します。
ノート:
チャネルを作成した後は、チャネル・ラベルを変更することはできません。
-
-
ソフトウェア・チャネルを削除するには:
-
削除するチャネルを選択します。
-
「基本チャネルの詳細」ページで、「ソフトウェア・チャネルを削除」をクリックし、「チャネルを削除」をクリックして確認します。
-
softwarechannel_createコマンドの使用
次の対話型コマンドを使用して、ソフトウェア・チャネルを作成します:
softwarechannel_create
対話型モードでは、次の例のように、特定の情報の手動入力が必要です:
spacecmd {SSM:0}> softwarechannel_create
Channel Name: Ksplice for Oracle Linux 7 Channel Label: oraclelinux7-x86_64-ksplice Base Channels ------------- oraclelinux7-x86_64 oraclelinux8-x86_64 Select Parent [blank to create a base channel]: oraclelinux7-x86_64 Architecture ------------ i386-sun-solaris ia32 ia64 ppc sparc-sun-solaris x86_64 Select: x86_64 Checksum type ------------ sha256 sha384 sha512 Select: sha256 GPG URL ------------ GPG URL: file:///etc/pki/rpm-gpg/RPM-GPG-KEY GPG ID ------------ GPG ID: EC551F03 GPG Fingerprint --------------- GPG Fingerprint: 4214 4123 FECF C55B 9086 313D 72F9 7B74 EC55 1F03
ノート:
GPG URLは、構成するOracle Linuxリリースによって異なる場合があります。
Oracle Linux 9より前のOracle Linuxのリリースでは、URLはfile:///etc/pki/rpm-gpg/RPM-GPG-KEY
です。
Oracle Linux 9の場合、URLはfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
です。
ソフトウェア・チャネルをリポジトリに関連付けるには、次の例に示すようにsoftwarechannel_addrepoコマンドを使用します:
spacecmd {SSM:0}> softwarechannel_addrepo ksplice-ol7-x86_64 "Ksplice for Oracle Linux 7"
すべてのソフトウェア・チャネルをリストするには、softwarechannel_listコマンドを使用します。
spacecmd {SSM:0}> softwarechannel_list oraclelinux7*
すべてのベース(親)ソフトウェア・チャネルをリストするには、softwarechannel_listbasechannelsコマンドを使用します。
spacecmd {SSM:0}> softwarechannel_listbasechannels
基本ソフトウェア・チャネルの子をリストするには、softwarechannel_listchildchannelsコマンドを使用します。
spacecmd {SSM:0}> softwarechannel_listchildchannels base-channel
ソフトウェア・チャネルをサブスクライブするシステムをリストするには、softwarechannel_listsystemsコマンドを使用します:
spacecmd {SSM:0}> softwarechannel_listsystems base-channel
ソフトウェア・チャネルの詳細を表示するには、softwarechannel_detailsコマンドを使用します。
spacecmd {SSM:0}> softwarechannel_details channel-name
次のような出力結果が表示されます。
次の例は、ol8_x86_64_baseos_latest
チャネルの詳細をリストする方法を示しています:
softwarechannel_details ol8_x86_64_baseos_latest
Label: ol8_x86_64_baseos_latest Name: Oracle Linux 8 (x86_64) Architecture: x86_64 Parent: Systems Subscribed: 0 Number of Packages: 0 Summary ------- Oracle Linux 8 (x86_64) GPG Key: AD986DA3 GPG Fingerprint: 76FD 3DB1 3AB6 7410 B89D B10E 8256 2EA9 AD98 6DA3 GPG URL: file:///etc/pki/rpm-gpg/RPM-GPG-KEY Repos ----- Oracle Linux 8 x86_64 BaseOS Latest
ソフトウェア・チャネルを削除するには、softwarechannel_deleteコマンドを使用します。 プロンプトが表示されたら、コマンドを確認してください。
spacecmd {SSM:0}> softwarechannel_delete channel-name
ソフトウェア・チャネルの同期
ソフトウェア・チャネルと関連リポジトリを構成した後、即時手動同期化を実行するか、または定期的な同期化ジョブをスケジュールすることにより、ソフトウェアを同期化します。
Oracleでは、少なくとも、Oracle Linuxの最新のチャネルを毎日更新することをお薦めします。
Oracle Linuxチャネルの初回の同期化は、完了までに数日かかる場合があります。 初回の手動同期化を実行してチャネルに移入してから、定期ジョブを構成して更新された状態を維持することをお薦めします。
リポジトリ作成時のメモリーに関する考慮事項
リポジトリ・メタデータの構築時に、Oracle Linux Managerがメモリー不足の問題で失敗することがあります。 この失敗は、RAMの最小値が512 MB、最大RAMの1024 MBに設定されているTaskomaticデーモン用のデフォルトのJavaメモリー設定が原因です。 これらの設定は、グローバルOracle Linux Manager構成ファイル/etc/rhn/rhn.conf
で定義されます。
このタイプの障害が発生した場合は、構成ファイルで次のプロパティを設定して、最大メモリーを4096 MBまで増やします:
taskomatic.java.maxmemory=4096
ただし、4096 MBより大きい値を割り当てるには、これらのステップを実行します:
-
自動メモリー・プロパティ設定を無効にします。
-
Javaメモリーの最小値と最大値(
-Xms
および-Xmx
)をtaskomatic.java.additional.1
とtaskomatic.java.additional.2
のプロパティに手動で追加します。構成ファイルは、次の例のようになります:
taskomatic.java.initmemory=0 taskomatic.java.maxmemory=0 taskomatic.java.additional.1=-Xms1024m taskomatic.java.additional.2=-Xmx8192m
大規模なデータ・セット(多数のサーバーやパッケージなど)がある場合、Webインタフェースでも同様のメモリーに関する問題が発生する可能性があります。 これらの問題を解決するには、/etc/sysconfig/tomcat
ファイルのTomcatメモリー制限を増やします。 具体的には、JAVA_OPTS
環境変数を編集し、メモリーの最大量のパラメータである -Xmxを増やします。
たとえば、-Xmx1024m
はヒープの最大サイズを1 GBに増やします。
メモリー設定を変更したら、Oracle Linux Managerサービスを再起動します。
sudo /usr/sbin/spacewalk-service restart
Oracle Linux Manager Webインタフェースの使用
図2-3 チャネル・リポジトリ・ページ

ソフトウェア・チャネルを同期するには:
-
「チャネル」に移動し、「ソフトウェア・チャネルの管理」を選択して必要なチャネルを選択します。
-
「チャネルの詳細」ページで、「リポジトリ」を選択します。
-
「チャネル・リポジトリ」ページで、「同期」タブを選択します。
-
必要に応じて、次のチェック・ボックスを選択します。
- エラータを同期しない
-
チャネルで利用可能なエラータを同期させたくない場合に選択します。
- 最新のパッケージのみ同期
-
リポジトリの最新のパッケージのみを同期する場合に選択します。
注意:
ol8_AppStream
などのモジュール対応チャネルを同期するときに、このチェック・ボックスを選択「しない」でください。 このオプションの基礎となるメカニズムはモジュール対応ではなく、使用すると必要なパッケージがスキップされます。 - キックスタート可能なツリーを作成
-
キックスタート・プロファイルをチャネルに関連付ける場合に選択します。
ただし、ULNおよびOracle Linux yumサーバーは、キックスタート可能なツリーの作成に必要なブート・イメージ・ファイルをホストしません。 その代わりに、Oracle Linux Media Pack DVDイメージからファイルを取得し、それらをローカル・ファイル・システム上で使用できるようにすることができます。 「クライアント・システムのプロビジョニング」を参照してください。
- エラーが発生した場合に終了
-
エラーが発生した場合に同期を停止する場合に選択します。
-
ソフトウェア・チャネルを同期させる:
-
即時手動同期を実行するには、「今すぐ同期」をクリックします。
-
繰返し同期ジョブをスケジュールするには、優先スケジュールおよび時間を選択し、「スケジュール」をクリックします。
Quartz形式を使用してスケジュールを指定できます。 たとえば、
0 30 22 ? * *
は、Oracle Linux Managerが毎日午後10時30分にチャネルを再同期化するように指定します。 「クォーツを使用」形式は、1日に数回同期をスケジュールする唯一の方法です。 たとえば、0 0 0,2,22 ? * *
は、午後10時、深夜12時および午前2時に同期が行われるように指定します。 詳細については、https://www.quartz-scheduler.org/overview/を参照してください。
-
-
softwarechannel_syncreposコマンドの使用
softwarechannel_syncreposコマンドは、次のようにspacecmdセッション内で使用されます:
spacecmd {SSM:0}> softwarechannel_syncrepos oraclelinux7-x86_64-ksplice
注意:
ol8_AppStream
などのモジュール対応チャネルを同期するときに--latestオプションを使用「しない」でください。 このオプションの基礎となるメカニズムはモジュール対応ではなく、使用すると必要なパッケージがスキップされます。
コマンドはすぐに戻り、同期のステータスは表示されません。
tail -fコマンドを使用して、ログ・ファイル/var/logs/rhn/reposync/channel_label.log
を表示します。
チャネル同期のスケジュールを設定するには、softwarechannel_setsyncscheduleコマンドを使用します。次に例を示します:
spacecmd {SSM:0}> softwarechannel_setsyncschedule oraclelinux7-x86_64-ksplice 0 30 2 ? * *
前のコマンドは、毎日午前2時30分にoraclelinux7-x86_64-ksplice
チャネルを1回再同期するように構成します。 Quartz形式でスケジュールを指定します。 詳細については、https://www.quartz-scheduler.org/overview/を参照してください。
スケジュール済チャネルの同期をリストするには、softwarechannel_listsyncscheduleを使用します。
spacecmd {SSM:0}> softwarechannel_listsyncschedule
スケジュールされたチャネル同期を削除するには、softwarechannel_removesyncscheduleコマンドを使用します。次に例を示します:
spacecmd {SSM:0}> softwarechannel_removesyncschedule oraclelinux7-x86_64-uek-r3
注意:
ol8_AppStream
などのモジュール対応チャネルを同期するときに--latestオプションを使用「しない」でください。 このオプションの基礎となるメカニズムはモジュール対応ではなく、使用すると必要なパッケージがスキップされます。
spacewalk-repo-syncコマンドの使用
spacewalk-repo-syncコマンドは、spacecmdセッションの外部で発行されます。
コマンドは、手動またはcron
ジョブで実行できます。 cron
ジョブでコマンドを実行する場合は、-qまたは--quietオプションを含めて、大規模な電子メール・メッセージがroot
に送信されないようにします。
チャネル・ラベルおよびリポジトリのURLを表示するには、spacewalk-repo-sync -lをgrepとともに使用します。
sudo spacewalk-repo-sync -l | grep repo-keyword
この例は、Kspliceリポジトリに適用されます。
sudo spacewalk-repo-sync -l | grep ksplice
ksplice-ol7-x86_64 | uln:///ol7_x86_64_ksplice ksplice-ol6-i386 | uln:///ol6_i386_ksplice ksplice-ol6-x86_64 | uln:///ol6_x86_64_ksplice
この例は、addons
リポジトリに適用されます:
sudo spacewalk-repo-sync -l | grep addons
oraclelinux7-x86_64-addons | https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/ ol8_x86_64_addons | https://yum.oracle.com/repo/OracleLinux/OL8/addons/x86_64/
チャネルをYumまたはULNリポジトリと同期するには、-cオプションを使用します。
sudo spacwalk-repo-sync -c channel
Kspliceチャネルの場合、次のように入力します:
sudo spacewalk-repo-sync -c ol7_x86_64_ksplice
親チャネルとそのすべての子を1回の操作で同期するには、-pオプションを使用します。
Oracle Linux 7 x86_64ベース・チャネルの場合、次のように入力します:
sudo spacewalk-repo-sync -p oraclelinux7-x86_64 [--latest]
--latestを含めると、サーバーは使用可能な最新のパッケージのみを同期します:
--latestオプションは、同期時に使用可能な最新のパッケージをダウンロードします。 このコマンドを実行しても、古いパッケージは削除されません。 同期化間の時間間隔が長い場合、パッケージの特定のバージョンをミスする可能性があります。この場合、エラータは特定のパッケージ・バージョンに関連付けられているため、エラータ処理が影響を受ける可能性があります。 エラータの一貫性が重要な場合、Oracleでは、パッケージが常に累積されるKspliceチャネルを同期する場合を除き、--latestを使用しないことをお薦めします。
注意:
ol8_AppStream
などのモジュール対応チャネルを同期するときに--latestオプションを使用「しない」でください。 このオプションの基礎となるメカニズムはモジュール対応ではなく、使用すると必要なパッケージがスキップされます。
詳細は、spacewalk-repo-sync(8)
マニュアル・ページを参照してください。
Ksplice Offlineパッケージで消費される領域全体を減らすために、Oracleではリポジトリ・フィルタを使用して、ダウンロードされるパッケージをクライアント・システムで必要なパッケージのみに制限することを強くお薦めします。 フィルタは、web UIの「リポジトリの管理」ページのリポジトリ構成、またはspacewalk-repo-syncコマンドラインで-iまたは--includeパラメータを指定して適用できます。次に例を示します:
sudo spacewalk-repo-sync --channel ol6_x86_64_ksplice -t uln -i uptrack-updates-installed kernel base version,...
ソフトウェア・チャネルのクローニング
ソフトウェア・チャネルをクローニングして、特定の時点でのパッケージおよびエラータの状態を取得します。 クローンされたチャネルは、デプロイメント前にサーバー・システムを開発およびテストする際に安定した参照ベースを提供するのに便利です。 デプロイされたシステムでは、セキュリティ上の脆弱性にさらされる可能性があるため、クローン・チャネルは推奨されません。 モジュールおよびストリームが定義されているチャネルがクローニングされると、ソフトウェアによってmodules.yaml
ファイルがクローニングされるため、クローン・チャネル・ファイルはクローニング時点のチャネルの状態と一致することが保証されます。
Oracle Linux Manager Webインタフェースの使用
特にwebインタフェースを使用して、チャネルを1つずつクローニングします。
図2-4 チャネル・ページのクローン

次のようにソフトウェア・チャネルをクローンします:
-
「チャネル」に移動し、「ソフトウェア・チャネルの管理」を選択します。
-
「クローン・チャネル」をクリックします。
-
「クローン・チャネル」ページで、プルダウン・メニューから複製するソース・チャネルを選択し、クローン・タイプを選択します:
- チャネルの現在の状態(すべてのエラータ)
-
クローン・チャネルには、ソース・チャネルからのすべてのパッケージおよびエラータが含まれます。
- チャネルの元の状態(エラータなし)
-
クローンされたチャネルには、ソース・チャネルに元々含まれていたが、関連するエラータはないすべてのパッケージが含まれています。
- エラータを選択
-
クローンされたチャネルには、ソース・チャネルに元々含まれていたすべてのパッケージと、選択したエラータが含まれています。 すべてのエラータを選択することは、チャネルの現在の状態を複製することと同じです。 エラータを選択しないことは、チャネルの元の状態を複製することと同じです。
-
「クローン・チャネル」をクリックします。
-
「ソフトウェア・チャネルの編集」ページでは、チャネルの詳細を変更できます。 デフォルト・ラベルは、
clone-
のプレフィクスが付いたソース・チャネル・ラベルです。 -
「クローン・チャネル」をもう一度クリックします。
-
クローン・タイプとして「エラータを選択」を指定した場合、「エラータをクローン」ページに使用可能なエラータが表示されます。
エラータごとに次の選択肢があります:
-
ソースのエラータとマージします。
このデフォルト・オプションは、コピーされたコピーを作成するかわりにソース・エラータが使用されることを意味します。
-
これを使用して、クローニングされた個別のエラータを作成します。
-
エラータを除外します。
エラータのクローン作成が完了したら、「エラータをクローン」をクリックします。
-
-
チャネルの詳細ページで、チャネルのラベル以外のチャネルの詳細を編集することもできます。
「エラータ」タブを選択すると、他のチャネルのエラータを追加したり、ソース・チャネルからエラータをクローンしたりすることができます。
「パッケージ」タブを選択すると、チャネルにパッケージを追加または削除できます。
softwarechannel_cloneコマンドの使用
spacecmdセッションでは、softwarechannel_cloneコマンドはベース・チャネルとそのすべての子チャネルを同時にクローニングします。 コマンドを次のように使用します。
spacecmd {SSM:0}> softwarechannel_clone -s ol8u1-x86_64 -x "s/$/-clone/" -o spacecmd {SSM:0}> softwarechannel_details ol8u1-x86_64-clone
-xオプションは、新しいチャネル名とラベルに-clone
を追加します。 -oオプションは、クローニングされたチャネルからすべてのエラータを除外します。
spacecmd {SSM:0}> softwarechannel_diff ol8u1-x86_64-clone ol8u1-x86_64
ベース・チャネルとそのすべての子チャネルをクローニングするには、次のようにsoftwarechannel_clonetreeコマンドを使用します:
spacecmd {SSM:0}> softwarechannel_clonetree -s ol8u1-x86_64 -p "clone-"
spacewalk-clone-by-dateコマンドの使用
spacewalk-clone-by-dateコマンドを使用して、特定の日付のOracle Linuxチャネルをクローニングします。これにより、チャネル・エラータの状態とその関連パッケージが元のリリースからその日付まで保持されます。 必要に応じて、パッケージをブロック・リストまたは削除し、どのタイプのエラータを含めるかまたは除外するかを選択できます。 このコマンドは、ベース・チャネルとそのすべての子チャネルを同時にクローニングします。
このコマンドは、spacecmdセッションの外側で使用されます。
たとえば、次のコマンドでは、ol7-x86_64-latest
チャネルから2019年11月30日までのセキュリティ・エラータのみがol7-x86_64-latest-sec-20191130
にクローニングされます:
sudo spacewalk-clone-by-date --username=swadmin --password=swpasswd --to_date=2019-11-30 --channels=ol7-x86_64-latest ol7-x86_64-latest-sec-20191130 --security_only --background --assumeyes
このコマンドは、バックグラウンドで途切れることなく実行されます。 指定されたspacewalkユーザーには、組織管理者またはチャネル管理者の権限が必要です。
次の例では、ベース・チャネルとパッチ子チャネルの両方を2019年11月30日までクローニングしますが、ntp
パッケージのすべてのバージョンと、fuse
で始まるパッケージは除外します:
sudo spacewalk-clone-by-date --username=swadmin --password=swpasswd --channels=ol7-x86_64-base ol7-x86_64-base-2019113 --channels=ol7-x86_64-patch ol7-x86_64-patch-2019113 --to_date=2019-11-30 --blacklist=ntp,fuse*
spacewalk-clone-by-dateをリモートで実行するには、-sオプションを使用して、XML/RPC API接続用のOracle Linux ManagerサーバーURLを指定します(例:-s https://olmsvr_FQDN/rpc/api
)。
一般的なユースケースは、クローン・チャネルを最新の状態に保つために、spacewalk-clone-by-dateを定期的に実行することです。 サンプル構成ファイルを生成するには、次のコマンドを使用します:
sudo spacewalk-clone-by-date --sample-config
詳細は、spacewalk-clone-by-date(8)
マニュアル・ページを参照してください。
モジュールが定義されているチャネルへのパッケージの追加
ノート:
この機能は、webインタフェースを使用してのみ実行できます。 同等のコマンドラインは存在しません。
モジュール化されたチャネルへのパッケージの追加は、現在、webインタフェースを使用してのみ実行できます。 このプロセスでは、ソフトウェアは、追加されるパッケージに対応するmodules:streams
でターゲット・チャネルmodules.yaml
ファイルを更新します。
また、ターゲット・チャネルに存在しない各module:stream
にパッケージがリストされている場合、これらのパッケージもターゲット・チャネルに自動的に追加されます。 ただし、パッケージの依存関係はこの自動追加に含まれないことに注意してください。
ソース・チャネルとターゲット・チャネルはすでにモジュラである必要があります。つまり、ソフトウェアではデフォルトでmodules.yaml
が作成されないため、これらのチャネルには既存のmodules.yaml
ファイルが必要です。
-
「チャネル」に移動し、「ソフトウェア・チャネルの管理」を選択します。
-
モジュール化されたチャネル(アプリケーション・ストリーム・チャネルなど)を選択します。
-
パッケージ・タブをクリックし、パッケージの追加を選択します。
-
表示されたリストから、追加するパッケージを選択します。
-
パッケージの追加を選択し、アクションを確認します。
プロセスの最後に、正常に追加されたパッケージのサマリーが表示されます。 リストには、手動で選択したパッケージと、自動的に追加された他の必須パッケージの両方が含まれます。
チャネル・ライフ・サイクルの管理
spacewalk-manage-channel-lifecycleコマンドを使用すると、チャネルのライフサイクルを管理できます。 アーカイブおよびロールバックの実行をサポートし、繰返し使用するように設計されています。 したがって、これは、「spacewalk-clone-by-dateコマンドの使用」で説明されているspacewalk-clone-by-dateコマンドと比較して優先コマンドです。
次の例では、チャネルの初期化、昇格、アーカイブまたはロールバックの実行時に発生するプロセスについて説明します。
-
ol7-x86_64-appsvr
の最新の利用可能なパッケージに基づいて開発チャネルdev-ol7-x86_64-appsvr
を作成します。sudo spacewalk-manage-channel-lifecycle -c ol7-x86_64-appsvr --init
チャネルにモジュールが定義されているチャネルでこのコマンドを実行すると、ソース・チャネルの
modules.yaml
ファイルが新しく初期化されたチャネルにコピーされます。 -
次の2つのサンプル・コマンドに示すように、パッケージを開発チャネルからテスト・チャネルに、またはテスト・チャネルから本番チャネルに昇格させます:
sudo spacewalk-manage-channel-lifecycle -c dev-ol7-x86_64-appsvr --promote
sudo spacewalk-manage-channel-lifecycle -c test-ol7-x86_64-appsvr --promote
チャネルにモジュールおよびストリームが定義されている場合、ソース・チャネルの
modules.yaml
ファイルからmodulemd
スタンザがターゲット・チャネルのmodules.yaml
ファイルにコピーされます。 ただし、チャネルをプロモートするときに--clearオプションを使用すると、ソース・チャネルmodules.yaml
によってターゲット・チャネルの同じファイルが上書きされます。 -
archive-date-channel
というアーカイブ・チャネルを作成して、チャネルの状態を保存します。sudo spacewalk-manage-channel-lifecycle -c prod-ol7-x86_64-appsvr --archive
モジュールが定義されているチャネルの場合、
modules.yaml
ファイルは指定されたチャネルから新しいアーカイブ・チャネルにコピーされます。 -
ロールバックを実行して、アーカイブされたチャネルの状態をリストアします。
sudo spacewalk-manage-channel-lifecycle -c archive-20191130-test-ol7-x86_64-appsvr --rollback
チャネルにモジュールが定義されている場合、
modules.yaml
ファイルはアーカイブ・チャネルからターゲット・チャネルにコピーされます。チャネルをリストするには、 -lオプションを使用します。
sudo spacewalk-manage-channel-lifecycle -l
モジュール化されたチャネルのライフ・サイクルの管理では、modules.yaml
ファイルが含まれる過度のプロセスが原因で、XMLRPC API
タイムアウト設定を増やす必要がある場合があります。 次のステップを実行します。
ノート:
構成オプションが次のファイルに存在しない可能性があります。 存在しない場合は、推奨設定で手動で追加します。
-
/etc/httpd/conf/httpd.conf
で、Timeoutに新しいディレクティブを設定します。次に例を示します:Timeout 500
-
/var/lib/tomcat6/webapps/rhn/WEB-INF/web.xml
で、Tomcatsession_timeout
フィールドを次のように増やします:<session-config> <session-timeout>90</session-timeout> </session-config>
-
/etc/httpd/conf.d/zz-spacewalk-www.conf
で、AJPタイムアウトを変更します。次に例を示します:ProxyTimeout 1800
これらの変更を行った後、Oracle Linux Managerサービスを再起動します。
sudo /usr/sbin/spacewalk-service start