2022年5月31日火曜日

モーダル・ダイアログに重ねてモーダル・ダイアログを開く

 モーダル・ダイアログとして開いているページから、さらにモーダル・ダイアログを開く方法について質問を受けたので実装してみました。大まかに2通りの実装方法があります。また、標準のポップアップLOVのテンプレートを変更することで、要件を満たす場合もあるでしょう。

  1. インライン・ダイアログを使う。ダイアログは同じページに実装します。
  2. モーダル・ダイアログのページを使う。ダイアログは別のページとして実装します。
  3. ポップアップLOVのテンプレートを変更する。
サンプル・データセットの表EMPを使った対話モード・レポートとフォームのページを作成し、上記の3通りの実装を紹介します。

作成したアプリケーションは、以下のように動作します。



準備



アプリケーション作成ウィザードを起動します。アプリケーションの名前Dialog on Dialogとします。

ページの追加をクリックし、対話モード・レポートとフォームのページを追加します。

対話モード・レポートを選択します。

ページ名インライン・ダイアログとします。表またはビュー対話モード・レポートを選択し、表またはビューとして表EMPを選択します。フォームを含めるチェックを入れ、表EMPを編集するフォームのページを作成します。

このフォームのページを、親となるモーダル・ダイアログのページとします。このフォームのページから、さらにモーダル・ダイアログを開く実装を行います。

ページの追加を実行します。

ページ名モーダル・ダイアログとして、同じページを追加します。さらにページ名ポップアップLOVとして、同じページを追加します。

インライン・ダイアログモーダル・ダイアログ(別ページ)、ポップアップLOVを使った実装を試すページがそれぞれ追加されました。

アプリケーションの作成を実行します。

アプリケーションが作成されます。インライン・ダイアログを使った実装はページ番号3、モーダル・ダイアログを使った実装はページ番号5、ポップアップLOVはページ番号7のページに実施します。



インライン・ダイアログによる実装


ページ・デザイナにて、ページ番号のページを開きます。

Content Body上でコンテキスト・メニューを開き、リージョンの作成を実行します。このリージョンをダイアログにします。

作成したリージョンの識別タイトルジョブの選択とします。タイプ静的コンテンツとします。外観テンプレートInline Dialogを選択すると、このリージョンがダイアログとして扱われます。

テンプレート・オプションをクリックし、Auto Heightチェックを入れます。これ以外にも見かけを調整するオプションがあるので、必要に応じて調整します。

OKをクリックして、変更を確定します。

リージョンジョブの選択に、ジョブを選択するページ・アイテムP3_JOB_SELECTIONを作成します。

識別名前P3_JOB_SELECTIONタイプ選択リストとします。ラベルジョブとします。LOVSQL問合せとして、以下のSELECT文を記述します。

select job d, job r from emp group by job

追加値の表示OFFNULL値の表示ONNULL表示値として- ジョブを選択 -を記述します。

インライン・ダイアログの操作は、すべて動的アクションで実装します。この処理にはインライン・ダイアログのリージョンを開く、閉じる、値の設定が含まれます。

ページ・アイテムP3_JOBクリックしたときにリージョンジョブの選択を開きます。ページ・アイテムP3_JOBの内容を、ダイアログを開くと表示されるページ・アイテムP3_JOB_SELECTIONを使って選択できるようにします。

ページ・アイテムP3_JOBにたいして、動的アクションを作成します。

識別名前P3_JOBをクリックとします。タイミングイベントクリック選択タイプアイテムアイテムP3_JOBになります。

すでにページ・アイテムP3_JOBに設定されている値を、ページ・アイテムP3_JOB_SELECTIONにコピーします。

TRUEアクション識別アクションとして値の設定を選択します。設定タイプの設定JavaScript Expressionを選び、JavaScript式として以下を記述します。ページ・アイテムP3_JOBの内容になります。

apex.items.P3_JOB.value

影響を受ける要素選択タイプアイテムアイテムP3_JOB_SELECTIONを選びます。これで、P3_JOBの値がページ・アイテムP3_JOB_SELECTIONに設定されます。

P3_JOBをクリックしたときにのみ実行させるため、初期化時に実行OFFにします。

続いて、リージョンジョブの選択を開きます。

TRUEアクションを作成します。識別アクションリージョンを開くを選択します。影響を受ける要素選択タイプリージョンリージョンとしてジョブの選択を設定します。

以上で、インライン・ダイアログを開く動的アクションが実装できました。

今度はインライン・ダイアログを閉じる処理を追加します。

ページ・アイテムP3_JOB_SELECTIONで値を選択した時点で、インライン・ダイアログを閉じるようにします。

ページ・アイテムP3_JOB_SELECTIONにたいして、動的アクションを作成します。

識別名前ジョブの選択完了とします。タイミングイベント変更選択タイプアイテムアイテムP3_JOB_SELECTIONとなります。

TRUEアクションは、ダイアログを開けた時とは反対に、ページ・アイテムP3_JOB_SELECTIONの値をページ・アイテムP3_JOBに設定します。

識別アクションとして、値の設定を選択します。設定タイプの設定JavaScript ExrepssionJavaScript式として、以下を記述します。

apex.items.P3_JOB_SELECTION.value

影響を受ける要素選択タイプアイテムアイテムとしてP3_JOBを選択します。このTRUEアクションでも、初期化時に実行OFFにします。

TRUEアクションを作成して、値の設定の次に配置します。

識別アクションとして、リージョンを閉じるを選択します。影響を受ける要素選択タイプリージョンリージョンとしてジョブの選択を選びます。

以上で、インライン・ダイアログを使った実装は完了です。

アプリケーションを実行すると、記事の先頭にあるGIF動画のような動作になります。


モーダル・ダイアログによる実装


ジョブの選択を異なるページに実装します。ページは、モーダル・ダイアログとします。

ページの作成を実行します。

空白ページを選択します。

ページ番号名前ジョブの選択ページ・モードモーダル・ダイアログとします。オプション静的コンテンツ・リージョンを開き、リージョン1ジョブの選択と入力します。

へ進みます。

モーダル・ダイアログなので、ナビゲーションのプリファレンスは、このページとナビゲーション・メニュー・エントリを関連付けないから変更しません。

へ進みます。

終了をクリックし、ページの作成を完了します。

ページが作成されます。

あらかじめ作成されているリージョンジョブの選択の、外観テンプレートBlank with Attributesへ変更します。外観のテンプレートがStandardの場合、ページのタイトルとリージョンのタイトルの両方が画面に表示されます。Black with Attributesに変更することにより、リージョンのタイトルは表示されなくなり、ページのタイトルのみが表示されます。

ジョブを選択するページ・アイテムP8_JOB_SELECTIONを作成します。これは、インライン・ダイアログの際に作成したP3_JOB_SELECTIONとまったく同じ設定です。

ページ・アイテムP8_JOB_SELECTIONの値が変更されたときに、ページの送信を行います。

P8_JOB_SELECTIONに動的アクションを作成します。

識別名前ジョブの確定とします。タイミングイベント変更選択タイプアイテムアイテムP8_JOB_SELECTIONです。

TRUEアクション識別アクションとして、ページの送信を選択します。

動的アクションでページの送信を行なう代わりに、ボタンを作成してページの送信を行なうこともできます。

ページが送信されたら、モーダル・ダイアログを閉じます。

左ペインでプロセス・ビューを開き、プロセスを作成します。

識別名前ダイアログを閉じるタイプとしてダイアログを閉じるを選択します。設定戻すアイテムP8_JOB_SELECTIONを指定します。

ページ・プロパティのダイアログチェーンOFFにします。(レポートと同時にフォームを作成したときはチェーンのデフォルトはOFFですが、単体のページでモーダル・ダイアログを作成した場合はONがデフォルトのようです。)

チェーンがONの場合、このモーダル・ダイアログのページは親のモーダル・ダイアログの画面を置き換えます。(同じiframeを使用する)チェーンがOFFの場合は、親のモーダル・ダイアログの中で、モーダル・ダイアログが開かれます。

子となるモーダル・ダイアログは、以上で出来上がりです。

親のページから呼び出す設定を行います。

ページ・デザイナにて、ページ番号のフォームのページを開きます。

インライン・ダイアログのようにページ・アイテムをクリックしたときに、別のページを開く実装は簡単ではないです(JavaScriptでapex.navigation.dialogを呼び出す)。今回は別ページを開くボタンを作成します。

識別ボタン名B_SELECT_JOBとします。ラベルジョブの選択とします。動作アクションとして、このアプリケーションのページにリダイレクトを選びます。

ターゲットをクリックし、リンク・ビルダー・ターゲットを開きます。

ターゲットページアイテム設定名前P8_JOB_SELECTIONには&P5_JOB.を指定します。値に&P5_JOB.が設定されいている影響について、後述しています。

OKをクリックして、変更を保存します。


ダイアログがクローズしたときに返される値(P8_JOB_SELECTIONの値)を、ページ・アイテムP5_JOBに設定する動的アクションを作成します。

左ペインで動的アクション・ビューを開き、ダイアログのクローズで動的アクションを作成します。

識別名前ジョブの設定とします。タイミングイベントダイアログのクローズ選択タイプリージョンリージョンとしてEmployeesを選びます。


TRUEアクションの識別アクションとして、値の設定を選択します。設定タイプの設定Dialog Retrun Item戻りアイテムP8_JOB_SELECTIONになります。戻りアイテムは異なるページに存在するため、選択リストから選ぶことはできません。キーボードから入力します。影響を受ける要素選択タイプアイテムアイテムとしてP5_JOBを指定します。

ページ番号8のモーダル・ダイアログが閉じるときに戻すアイテムとして指定したP8_JOB_SELECTIONの値を受け取って、ページ・アイテムP5_JOBに設定しています。

このアクションも、初期化時に実行OFFです。


以上で、別ページのモーダル・ダイアログによる実装は完了です。

インライン・ダイアログの実装とあまり違わないように見えますが、ボタンジョブの選択をクリックしたときに、HTTPのGETリクエストが発行されています。インライン・ダイアログはページ上のJavaScriptの処理で、HTTPのリクエストは発生していません。

わかりやすい違いとして、以下に例を挙げます。

親のモーダル・ダイアログが開いた直後にジョブの選択をクリックします。


開いたモーダル・ダイアログの値は店員です。


ページ・アイテムP8_JOB_SELECTIONセールスを選択しダイアログを閉じると、ジョブはセールスに変わります。

再度、ジョブの選択をクリックします。


ページ・アイテムP8_JOB_SELECTIONの初期値は店員のまま、変わりません。


ボタンジョブの選択のターゲットとして設定した引数&P5_JOB.の値は、親のモーダル・ダイアログのページが開いたときに初期化されます。それ以降にページ・アイテムP5_JOBの値が変更されても、ボタンのターゲットには反映されません。


ポップアップLOVのテンプレート変更



ポップアップLOVのテンプレートを変更する方法については、Louis Moreauxさんの以下の記事を参考にしています。

Popup LOV custom template

ページ・デザイナでページ番号のページを開きます。

ジョブのページ・アイテムP7_JOBタイプポップアップLOVに変更し、設定表示形式Modal Dialogにします。


ページ・アイテムP7_JOBLOVの設定は、今までにP3_JOB_SELECTIONP8_JOB_SELECTIONに設定した内容と同じです。

タイプSQL問合せSQL問合せとして以下を記述します。

select job d, job r from emp group by job

検索された列名はDRです。これはテンプレート内の置換文字列として使用します。

追加値の表示OFFNULL値の表示ONNULL表示値として- ジョブを選択 -を記述します。


ポップアップLOVに一覧されるジョブを、太字、赤、センタリングして表示するよう、テンプレートを変更します。

以下のJavaScriptコードを、ページ・アイテムP7_JOB詳細JavaScript初期化コードに記述します。



ポップアップLOVへのカスタム・テンプレートの適用は以上です。

アプリケーションを実行して、ページ・アイテムP7_JOBをポップアップさせると、以下のように表示されます。


元記事では、画像を含んだもっと見栄えのよいカスタム・テンプレートを用意しています。より詳しく知りたい場合は、英語ですが元記事の参照をお勧めします。

以上になります。

今回作成したアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/dialog-on-dialog-sample.sql

Oracle APEXのアプリケーション作成の参考になれば幸いです。

2022年5月30日月曜日

Oracle Linux 8にEPELリポジトリを追加する

 最近、Oracle Cloudのコンピュート・インスタンスに、Oracle APEXをインストールしています。ブラウザからAPEXへのアクセスをHTTPSで行うように構成するため、Let's Encryptを使うことにしてみました。

Oracle CloudでLet's EncryptのCertbotを使用する手順が、オラクルの公式ブログに載っています。Todd Sharpさんによる以下の記事です。

Free SSL Certificates In The Oracle Cloud Using CertBot And Let's Encrypt

https://blogs.oracle.com/developers/post/free-ssl-certificates-in-the-oracle-cloud-using-certbot-and-lets-encrypt

この記事を見て、Oracle Linuxの開発チームのSVPであるWim Coekaertsさんが、以下のコメントを公式ブログに寄せています。

  1. Oracle LinuxのyumサーバーはOracle Linux向けのEPELリポジトリを提供しています。
  2. Oracle Cloudの環境であれば、各リージョンごとにyumサーバーを用意しています。それを使った方が速いし通信費もかかりません。

Using Let's Encrypt with Oracle Linux in Oracle Cloud Infrastructure

https://blogs.oracle.com/wim/post/using-lets-encrypt-with-oracle-linux-in-oracle-cloud-infrastructure

以下より、EPELを構成する手順を紹介します。Certbotについては(今回はCertbotを使用しなかったので)、また別の機会に取り組もうと思います。

OracleのYumサーバーの構成方法については、yum.oracle.comGetting Startedのページに記載されています。


Getting StartedのページのInstalling Software from Oracle Linux Yum Serverのセクションに、SoftwareとしてEPEL for Oracle Linuxが見つかります。Release RPMはoracle-epel-release-el8、oracle-epel-release-el7です。


今回はOracle Linux 8を対象としているので、Release RPMはoracle-epel-release-el8になります。このRPMをインストールします。

スーパーユーザーにて、作業を実施します。

dnf -y install oracle-epel-release-el8

[root@apex ~]# dnf -y install oracle-epel-release-el8

Oracle Linux 8 BaseOS Latest (x86_64)            17 kB/s | 3.6 kB     00:00    

Oracle Linux 8 BaseOS Latest (x86_64)            41 MB/s |  46 MB     00:01    

Oracle Linux 8 Application Stream (x86_64)       36 kB/s | 3.9 kB     00:00    

Oracle Linux 8 Application Stream (x86_64)       31 MB/s |  36 MB     00:01    

Oracle Software for OL8                          26 kB/s | 2.9 kB     00:00    

Latest Unbreakable Enterprise Kernel Release 6   28 kB/s | 3.0 kB     00:00    

Latest Unbreakable Enterprise Kernel Release 6   30 MB/s |  47 MB     00:01    

Dependencies resolved.

================================================================================

 Package                  Arch    Version              Repository          Size

================================================================================

Installing:

 oracle-epel-release-el8  x86_64  1.0-5.el8            ol8_baseos_latest   15 k

Installing dependencies:

 yum-utils                noarch  4.0.21-11.0.1.el8    ol8_baseos_latest   74 k


Transaction Summary

================================================================================

Install  2 Packages


Total download size: 89 k

Installed size: 41 k

Downloading Packages:

(1/2): oracle-epel-release-el8-1.0-5.el8.x86_64  61 kB/s |  15 kB     00:00    

(2/2): yum-utils-4.0.21-11.0.1.el8.noarch.rpm   236 kB/s |  74 kB     00:00    

--------------------------------------------------------------------------------

Total                                           283 kB/s |  89 kB     00:00     

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                        1/1 

  Installing       : yum-utils-4.0.21-11.0.1.el8.noarch                     1/2 

  Installing       : oracle-epel-release-el8-1.0-5.el8.x86_64               2/2 

  Running scriptlet: oracle-epel-release-el8-1.0-5.el8.x86_64               2/2 

  Verifying        : oracle-epel-release-el8-1.0-5.el8.x86_64               1/2 

  Verifying        : yum-utils-4.0.21-11.0.1.el8.noarch                     2/2 


Installed:

  oracle-epel-release-el8-1.0-5.el8.x86_64  yum-utils-4.0.21-11.0.1.el8.noarch 


Complete!

[root@apex ~]# 


/etc/yum.repos.d以下にoracle-epel-el8.repoが作成されていることが確認できます。

[root@apex ~]# cat /etc/yum.repos.d/oracle-epel-ol8.repo 

[ol8_developer_EPEL]

name=Oracle Linux $releasever EPEL Packages for Development ($basearch)

baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/developer/EPEL/$basearch/

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

gpgcheck=1

enabled=1



[ol8_developer_EPEL_modular]

name=Oracle Linux $releasever EPEL Modular Packages for Development ($basearch)

baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/developer/EPEL/modular/$basearch/

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

gpgcheck=1

enabled=1

[root@apex ~]# 


この他のYumリポジトリも同様ですが、baseurl$ociregionおよび$ocidomainという置換対象の文字列が含まれています。これらの設定について確認します。

セクションConnecting To Yum Mirrors in Oracle Cloud Infrastructure (OCI)に記載されている内容を確認します。

$ociregion/etc/yum/vars/ociregion$ocidomain/etc/yum/vars/ocidomainに記載されています。

仮想マシンをインポートしたOracle Linuxでは、ocidomainoracle.comと記載されていますが、ociregionは未設定です。そのため、接続先となるYumサーバーはyum.oracle.comになります。

[root@apex ~]# cd /etc/yum/vars/

[root@apex vars]# cat ociregion 


[root@apex vars]# cat ocidomain

oracle.com

[root@apex vars]# 


以下のコマンドを実行すると、ファイルociregionに適切な値が設定されます。
   # OCIREGION=$(curl -sfm 3 http://169.254.169.254/opc/v1/instance/ | jq -r '.region' | cut -d '-' -f 2)
   # echo "-$OCIREGION" > /etc/yum/vars/ociregion
このスクリプトではjqコマンドが使用されています。jqコマンドがインストールされていない場合は、あらかじめインストールしておきます。

dnf -y install jq

[root@apex vars]# dnf -y install jq

Last metadata expiration check: 0:19:28 ago on Mon 30 May 2022 12:57:40 PM JST.

Dependencies resolved.

================================================================================

 Package          Architecture  Version              Repository            Size

================================================================================

Installing:

 jq               x86_64        1.6-3.el8            ol8_appstream        202 k

Installing dependencies:

 oniguruma        x86_64        6.8.2-2.el8          ol8_appstream        187 k


Transaction Summary

================================================================================

Install  2 Packages


Total download size: 389 k

Installed size: 1.1 M

Downloading Packages:

(1/2): oniguruma-6.8.2-2.el8.x86_64.rpm         707 kB/s | 187 kB     00:00    

(2/2): jq-1.6-3.el8.x86_64.rpm                  735 kB/s | 202 kB     00:00    

--------------------------------------------------------------------------------

Total                                           1.4 MB/s | 389 kB     00:00     

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                        1/1 

  Installing       : oniguruma-6.8.2-2.el8.x86_64                           1/2 

  Running scriptlet: oniguruma-6.8.2-2.el8.x86_64                           1/2 

  Installing       : jq-1.6-3.el8.x86_64                                    2/2 

  Running scriptlet: jq-1.6-3.el8.x86_64                                    2/2 

  Verifying        : jq-1.6-3.el8.x86_64                                    1/2 

  Verifying        : oniguruma-6.8.2-2.el8.x86_64                           2/2 


Installed:

  jq-1.6-3.el8.x86_64                oniguruma-6.8.2-2.el8.x86_64               


Complete!

[root@apex vars]# 


説明に記載されているコマンドを実行すると、ociregionに適切な値が設定されます。

[root@apex vars]# OCIREGION=$(curl -sfm 3 http://169.254.169.254/opc/v1/instance/ | jq -r '.region' | cut -d '-' -f 2)

[root@apex vars]# echo "-$OCIREGION" > /etc/yum/vars/ociregion

[root@apex vars]# cat ociregion

-us-ashburn-1

[root@apex vars]# 


リージョンのコードの前に"-"を付加した値がociregionになります。そのため、コンピュート・インスタンスが配置されているリージョンが分かっている場合は、ociregionを直接編集してもよいでしょう。

最新のCertbotはsnapからインストールします。EPELが構成されたので、snapdをインストールしてみます。

[root@apex ~]# dnf install snapd

Last metadata expiration check: 0:00:24 ago on Mon 30 May 2022 01:25:21 PM JST.

Dependencies resolved.

================================================================================

 Package             Arch       Version            Repository              Size

================================================================================

Installing:

 snapd               x86_64     2.55.3-1.el8       ol8_developer_EPEL      17 M

Installing dependencies:

 bash-completion     noarch     1:2.7-5.el8        ol8_baseos_latest      274 k

 snap-confine        x86_64     2.55.3-1.el8       ol8_developer_EPEL     3.6 M

 snapd-selinux       noarch     2.55.3-1.el8       ol8_developer_EPEL     505 k


Transaction Summary

================================================================================

Install  4 Packages


Total download size: 22 M

Installed size: 67 M

Is this ok [y/N]: y

Downloading Packages:

(1/4): snapd-selinux-2.55.3-1.el8.noarch.rpm    565 kB/s | 505 kB     00:00    

(2/4): bash-completion-2.7-5.el8.noarch.rpm     331 kB/s | 274 kB     00:00    

(3/4): snap-confine-2.55.3-1.el8.x86_64.rpm     620 kB/s | 3.6 MB     00:05    

(4/4): snapd-2.55.3-1.el8.x86_64.rpm            380 kB/s |  17 MB     00:46    

--------------------------------------------------------------------------------

Total                                           477 kB/s |  22 MB     00:46     

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                        1/1 

  Installing       : bash-completion-1:2.7-5.el8.noarch                     1/4 

  Running scriptlet: snapd-selinux-2.55.3-1.el8.noarch                      2/4 

  Installing       : snapd-selinux-2.55.3-1.el8.noarch                      2/4 

  Running scriptlet: snapd-selinux-2.55.3-1.el8.noarch                      2/4 

  Installing       : snap-confine-2.55.3-1.el8.x86_64                       3/4 

  Installing       : snapd-2.55.3-1.el8.x86_64                              4/4 

  Running scriptlet: snapd-2.55.3-1.el8.x86_64                              4/4 

  Running scriptlet: snapd-selinux-2.55.3-1.el8.noarch                      4/4 

  Running scriptlet: snapd-2.55.3-1.el8.x86_64                              4/4 

  Verifying        : snap-confine-2.55.3-1.el8.x86_64                       1/4 

  Verifying        : snapd-2.55.3-1.el8.x86_64                              2/4 

  Verifying        : snapd-selinux-2.55.3-1.el8.noarch                      3/4 

  Verifying        : bash-completion-1:2.7-5.el8.noarch                     4/4 


Installed:

  bash-completion-1:2.7-5.el8.noarch      snap-confine-2.55.3-1.el8.x86_64      

  snapd-2.55.3-1.el8.x86_64               snapd-selinux-2.55.3-1.el8.noarch     


Complete!

[root@apex ~]# 


今回構成したEPELのリポジトリよりsnapdがインストールされました。Certbotを使用するには、これからsnapを構成した後、snapコマンドを使ってcertbotをインストールします。

以前にOracle REST Data Services 22.1のインストールについて紹介した記事で、ORDSのあるYumリポジトリをoracle-software-ol8.repoとして、手動で構成しています。このYumリポジトリを構成するPRMも提供されていました。

dnf list *releasae-el8

[root@apex ~]# dnf list *release-el8

Last metadata expiration check: 0:12:43 ago on Mon 30 May 2022 01:25:21 PM JST.

Installed Packages

oracle-epel-release-el8.x86_64                  1.0-5.el8     @ol8_baseos_latest

oraclelinux-release-el8.x86_64                  1.0-23.el8    @ol8_baseos_latest

Available Packages

mysql-release-el8.src                           1.0-3.el8     ol8_baseos_latest 

mysql-release-el8.x86_64                        1.0-3.el8     ol8_baseos_latest 

oracle-epel-release-el8.src                     1.0-5.el8     ol8_baseos_latest 

oracle-gluster-release-el8.src                  1.0-2.el8     ol8_baseos_latest 

oracle-gluster-release-el8.x86_64               1.0-2.el8     ol8_baseos_latest 

oracle-instantclient-release-el8.src            1.0-1.el8     ol8_baseos_latest 

oracle-instantclient-release-el8.x86_64         1.0-1.el8     ol8_baseos_latest 

oracle-linux-manager-client-release-el8.src     1.0-1.el8     ol8_baseos_latest 

oracle-linux-manager-client-release-el8.x86_64  1.0-1.el8     ol8_baseos_latest 

oracle-olcne-release-el8.src                    1.0-6.el8     ol8_baseos_latest 

oracle-olcne-release-el8.x86_64                 1.0-6.el8     ol8_baseos_latest 

oracle-ovirt-release-el8.src                    1.0-1.0.3.el8 ol8_baseos_latest 

oracle-ovirt-release-el8.x86_64                 1.0-1.0.3.el8 ol8_baseos_latest 

oracle-release-el8.src                          1.0-1.el8     ol8_baseos_latest 

oracle-release-el8.x86_64                       1.0-1.el8     ol8_baseos_latest 

oracle-software-release-el8.src                 1.0-1.el8     ol8_baseos_latest 

oracle-software-release-el8.x86_64              1.0-1.el8     ol8_baseos_latest 

oracle-spacewalk-client-release-el8.src         1.0-1.el8     ol8_baseos_latest 

oracle-spacewalk-client-release-el8.x86_64      1.0-1.el8     ol8_baseos_latest 

oraclelinux-automation-manager-release-el8.src  1.0-1.el8     ol8_baseos_latest 

oraclelinux-automation-manager-release-el8.x86_64

                                                1.0-1.el8     ol8_baseos_latest 

oraclelinux-developer-release-el8.src           1.0-7.el8     ol8_baseos_latest 

oraclelinux-developer-release-el8.x86_64        1.0-7.el8     ol8_baseos_latest 

oraclelinux-release-el8.src                     1.0-23.el8    ol8_baseos_latest 

[root@apex ~]# 


リストに含まれているoracle-software-release-el8が、そのRPMです。手動でリポジトリを生成する代わりに、以下のコマンドが使用できます。RPMをインストールすると作成されるYumリポジトリのファイルは、同じ名前のoracle-software-ol8.repoになります。dnfコマンドを実行するまえに、手作業で作成したファイルは削除します。

rm /etc/yum.repos.d/oracle-software-ol8.repo
dnf -y install oracle-software-release-el8

[root@apex ~]# dnf -y install oracle-software-release-el8

Last metadata expiration check: 0:18:02 ago on Mon 30 May 2022 01:25:21 PM JST.

Dependencies resolved.

================================================================================

 Package                       Arch     Version       Repository           Size

================================================================================

Installing:

 oracle-software-release-el8   x86_64   1.0-1.el8     ol8_baseos_latest    15 k


Transaction Summary

================================================================================

Install  1 Package


Total download size: 15 k

Installed size: 18 k

Downloading Packages:

oracle-software-release-el8-1.0-1.el8.x86_64.rp 151 kB/s |  15 kB     00:00    

--------------------------------------------------------------------------------

Total                                           149 kB/s |  15 kB     00:00     

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                        1/1 

  Installing       : oracle-software-release-el8-1.0-1.el8.x86_64           1/1 

  Verifying        : oracle-software-release-el8-1.0-1.el8.x86_64           1/1 


Installed:

  oracle-software-release-el8-1.0-1.el8.x86_64                                  


Complete!

[root@apex ~]# 


作成されたoracle-software-ol8.repoの内容を確認します。

[root@apex ~]# cat /etc/yum.repos.d/oracle-software-ol8.repo 

[ol8_oracle_software]

name=Oracle Software for Oracle Linux $releasever ($basearch)

baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/oracle/software/$basearch/

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

gpgcheck=1

enabled=1

[root@apex ~]# 

baseurlに$ociregionが含まれています。Oracle Cloudで運用する場合は、ソフトウェアの更新に際して外部との通信が発生しなくなります。

以上が、Oracle LinuxへのEPELリポジトリの追加手順の紹介になります。