2023年8月14日月曜日

YUMリポジトリに追加されたOracle APEXのパッケージについて

Oracle REST Data ServicesのSenior Product ManagerであるChris Hoinaさんが、彼のブログにAPEXがYUMまたはDNFでインストールできるようになりました、との記事を公開しています。

ORDS, SQLcl, APEX via YUM and DNF

詳しくは元の記事を参照していただくとして、Oracle CloudにOracle Linux 8のコンピュート・インスタンスを作成し、APEXのパッケージをdnfコマンドでインストールしたときに、実際に何がインストールされるのかを確認してみました。

最初にパッケージを確認します。

dnf list oracle-apex\*

[root@linux2 ~]# dnf list oracle-apex\*

Failed to set locale, defaulting to C.UTF-8

Last metadata expiration check: 1:54:37 ago on Mon Aug 14 02:37:35 2023.

Available Packages

oracle-apex22.2.noarch                         22.2.0-1.el8                  ol8_oci_included

oracle-apex22.2-images.noarch                  22.2.0-1.el8                  ol8_oci_included

oracle-apex23.1.noarch                         23.1.0-1.el8                  ol8_oci_included

oracle-apex23.1-images.noarch                  23.1.0-1.el8                  ol8_oci_included

oracle-apex23.1.3-patch.noarch                 23.1.3-1.el8                  ol8_oci_included

[root@linux2 ~]# 


Oracle APEX 23.1に限定すると、以下の3つのパッケージがあります。

oracle-apex23.1
oracle-apex23.1-images
oracle-apex23.1.3-patch

リポジトリはol8_oci_includedです。元記事によるとol7_oci_includedおよびol9_oci_includedにも同じパッケージが含まれているとのことです。APEX自体はOracle Linuxのバージョンやアーキテクチャに依存しないため、内容としては同じだと思われます。

上記の3つのパッケージはパブリックYUM(yum.orale.com)やUnbreakable Linux Network (ULN) Channelからもインストール可能になる予定とのことですが、現時点ではパブリックYUMにこれらのパッケージは配置されていませんでした。Oracle APEX 23.1のベース・パッケージはOracle Free Use Terms and Conditions lisenceの元に、現時点でも特別な承認をせずにダウンロードが可能ですが、パッチ(Patch Set Bundle)はMy Oracle Supportからダウンロードすることになっています。パブリックYUMからOracle APEXのパッチもダウンロードできるようになると、Oracle Database 23c FreeでAPEXを使用している方にとっては朗報ですが、実際にパブリックYUMからパッケージが提供されることを確認するまでは、何とも言えません。

パッケージoracle-apex23.1をインストールしてみます。

dnf install oracle-apex23.1

[root@linux2 ~]# dnf install oracle-apex23.1

Failed to set locale, defaulting to C.UTF-8

Last metadata expiration check: 2:25:59 ago on Mon Aug 14 02:37:35 2023.

Dependencies resolved.

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

 Package                 Architecture   Version               Repository                Size

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

Installing:

 oracle-apex23.1         noarch         23.1.0-1.el8          ol8_oci_included          84 M

Installing dependencies:

 sqlcl                   noarch         23.2.0-1.el8          ol8_oci_included          38 M


Transaction Summary

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

Install  2 Packages


Total download size: 121 M

Installed size: 532 M

Is this ok [y/N]: y

Downloading Packages:

(1/2): sqlcl-23.2.0-1.el8.noarch.rpm                          16 MB/s |  38 MB     00:02    

(2/2): oracle-apex23.1-23.1.0-1.el8.noarch.rpm                19 MB/s |  84 MB     00:04    

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

Total                                                         28 MB/s | 121 MB     00:04     

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                                     1/1 

  Running scriptlet: sqlcl-23.2.0-1.el8.noarch                                           1/2 

  Installing       : sqlcl-23.2.0-1.el8.noarch                                           1/2 

  Running scriptlet: sqlcl-23.2.0-1.el8.noarch                                           1/2 

  Running scriptlet: oracle-apex23.1-23.1.0-1.el8.noarch                                 2/2 

  Installing       : oracle-apex23.1-23.1.0-1.el8.noarch                                 2/2 

  Running scriptlet: oracle-apex23.1-23.1.0-1.el8.noarch                                 2/2 

INFO: To install APEX on your Database use the below command:

          sql sys/password@DBHOST:DBPORT/SERVICE_NAME as sysdba 

          @apexins.sql SYSAUX SYSAUX TEMP /i/

      Or the below command if you have installed APEX Images:  

          sql sys/password@DBHOST:DBPORT/SERVICE_NAME as sysdba 

          @apexins.sql SYSAUX SYSAUX TEMP /i/23.1.0/ 


  Verifying        : oracle-apex23.1-23.1.0-1.el8.noarch                                 1/2 

  Verifying        : sqlcl-23.2.0-1.el8.noarch                                           2/2 


Installed:

  oracle-apex23.1-23.1.0-1.el8.noarch                sqlcl-23.2.0-1.el8.noarch               


Complete!

[root@linux2 ~]# 


oracle-apex23.1をインストールすると、依存パッケージとしてsqlclがインストールされます。Oracle APEXのインストール・スクリプトapexins.sqlを実行する際に使用します。

oracle-apex23.1をインストールすると/opt/oracle/apex/23.1.0以下にOracle APEX 23.1のインストールに使うファイルが展開されます。このディレクトリに移動し、INFOとして表示されているようにapexins.sqlを実行することで、データベースにOracle APEXをインストールすることができます。

INFO: To install APEX on your Database use the below command:

          sql sys/password@DBHOST:DBPORT/SERVICE_NAME as sysdba 

          @apexins.sql SYSAUX SYSAUX TEMP /i/

      Or the below command if you have installed APEX Images:  

          sql sys/password@DBHOST:DBPORT/SERVICE_NAME as sysdba 

          @apexins.sql SYSAUX SYSAUX TEMP /i/23.1.0/ 


しかし、このディレクトリにはimagesディレクトリが含まれていません。ORDSに(CDNを参照するのではなく)APEXの静的ファイルをホストさせる場合は、oracle-apex23.1-imagesをインストールします。

dnf install oracle-apex23.1-images

[root@linux2 ~]# dnf install oracle-apex23.1-images

Failed to set locale, defaulting to C.UTF-8

Last metadata expiration check: 2:37:27 ago on Mon Aug 14 02:37:35 2023.

Dependencies resolved.

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

 Package                      Architecture Version              Repository              Size

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

Installing:

 oracle-apex23.1-images       noarch       23.1.0-1.el8         ol8_oci_included       110 M

Installing dependencies:

 ords                         noarch       23.2.2-2.el8         ol8_oci_included        95 M


Transaction Summary

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

Install  2 Packages


Total download size: 205 M

Installed size: 468 M

Is this ok [y/N]: y

Downloading Packages:

(1/2): ords-23.2.2-2.el8.noarch.rpm                           18 MB/s |  95 MB     00:05    

(2/2): oracle-apex23.1-images-23.1.0-1.el8.noarch.rpm         17 MB/s | 110 MB     00:06    

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

Total                                                         31 MB/s | 205 MB     00:06     

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                                     1/1 

  Running scriptlet: ords-23.2.2-2.el8.noarch                                            1/2 

  Installing       : ords-23.2.2-2.el8.noarch                                            1/2 

  Running scriptlet: ords-23.2.2-2.el8.noarch                                            1/2 

WARN: ORDS requires Java 11 or 17.

         You can install Oracle Java at https://www.oracle.com/java/technologies/downloads/#java11.

INFO: Before starting ORDS service, run the below command as user oracle:

         ords --config /etc/ords/config install

INFO: To enable the ORDS service during startup, run the below command:

         sudo  systemctl enable ords


  Running scriptlet: oracle-apex23.1-images-23.1.0-1.el8.noarch                          2/2 

  Installing       : oracle-apex23.1-images-23.1.0-1.el8.noarch                          2/2 

  Running scriptlet: oracle-apex23.1-images-23.1.0-1.el8.noarch                          2/2 

  Running scriptlet: ords-23.2.2-2.el8.noarch                                            2/2 

  Running scriptlet: oracle-apex23.1-images-23.1.0-1.el8.noarch                          2/2 

  Verifying        : oracle-apex23.1-images-23.1.0-1.el8.noarch                          1/2 

  Verifying        : ords-23.2.2-2.el8.noarch                                            2/2 


Installed:

  oracle-apex23.1-images-23.1.0-1.el8.noarch             ords-23.2.2-2.el8.noarch            


Complete!

[root@linux2 ~]# 


oracle-apex23.1-imagesをインストールすると、依存パッケージとしてordsがインストールされます。images以下のファイルはOracle REST Data Serviceによってアクセスできるようになります。

このパッケージをインストールすると、/opt/oracle/apex/23.1.0/imagesが作成されます。

[root@linux2 ~]# ls /opt/oracle/apex/23.1.0/

LICENSE.txt                 apxappcon.sql       apxremov1.sql       coreins.sql

apex_rest_config.sql        apxchpwd.sql        apxremov2.sql       coreins2.sql

apex_rest_config_cdb.sql    apxdevrm.sql        apxremov_cdb.sql    coreins3.sql

apex_rest_config_core.sql   apxdevrm_cdb.sql    apxremov_nocdb.sql  coreins4.sql

apex_rest_config_nocdb.sql  apxdevrm_nocdb.sql  apxrtins.sql        coreins5.sql

apexins.sql                 apxdvins.sql        apxrtins1.sql       dbcsconf.sql

apexins1.sql                apxdvins_cdb.sql    apxrtins2.sql       dbcsins.sql

apexins2.sql                apxdvins_nocdb.sql  apxrtins3.sql       devins.sql

apexins3.sql                apxdwngrd.sql       apxrtins_cdb.sql    images

apexins_adb.sql             apxpatch.sql        apxrtins_nocdb.sql  load_trans.sql

apexins_cdb.sql             apxpatch_cdb.sql    apxsilentins.sql    utilities

apexins_nocdb.sql           apxpatch_nocdb.sql  builder

appins.sql                  apxremov.sql        core

[root@linux2 ~]# 


また、/etc/ords/config/global/doc_root/i以下に、/opt/oracle/apex/23.1.0/imagesへのシンボリック・リンクが作成されます。

[root@linux2 ~]# ls -l /etc/ords/config/global/doc_root/i

total 0

lrwxrwxrwx. 1 root root 30 Aug 14 05:16 23.1.0 -> /opt/oracle/apex/23.1.0/images

[root@linux2 ~]# 


パッケージoracle-apex23.1oracle-apex23.1-imagesの双方をインストールすることににより、データベースとORDSの双方の構成ができるようになります。

Customer Managed ORDSのようにデータベースへのOracle APEXのインストールが不要な場合はoracle-apex23.1のインストールは不要になり、CDNからAPEXの静的ファイルを参照する場合はoracle-apex23.1-imagesが不要になります。

パッチoracle-apex23.1.3-patchをインストールします。

dnf install oracle-apex23.1.3-patch

[root@linux2 ~]# dnf install oracle-apex23.1.3-patch

Failed to set locale, defaulting to C.UTF-8

Last metadata expiration check: 2:51:56 ago on Mon Aug 14 02:37:35 2023.

Dependencies resolved.

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

 Package                       Architecture Version             Repository              Size

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

Installing:

 oracle-apex23.1.3-patch       noarch       23.1.3-1.el8        ol8_oci_included       2.7 M


Transaction Summary

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

Install  1 Package


Total download size: 2.7 M

Installed size: 2.4 M

Is this ok [y/N]: y

Downloading Packages:

oracle-apex23.1.3-patch-23.1.3-1.el8.noarch.rpm              5.0 MB/s | 2.7 MB     00:00    

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

Total                                                        5.0 MB/s | 2.7 MB     00:00     

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                                     1/1 

  Running scriptlet: oracle-apex23.1.3-patch-23.1.3-1.el8.noarch                         1/1 

  Installing       : oracle-apex23.1.3-patch-23.1.3-1.el8.noarch                         1/1 

  Running scriptlet: oracle-apex23.1.3-patch-23.1.3-1.el8.noarch                         1/1 

  Verifying        : oracle-apex23.1.3-patch-23.1.3-1.el8.noarch                         1/1 


Installed:

  oracle-apex23.1.3-patch-23.1.3-1.el8.noarch                                                


Complete!

[root@linux2 ~]# 


パッチは/opt/oracle/apex/23.1.3以下にインストールされます。/opt/oracle/apex/23.1.3/images以下にはMy Oracle Supportから提供されているパッチとは異なり、差分以外のファイル(/opt/oracle/apex/23.1.0/images以下のファイル)も含みます。

ls /opt/oracle/apex/23.1.3

[root@linux2 ~]# ls /opt/oracle/apex/23.1.3

README.txt                  validate_apex.sql

apex_unlock_admin_user.plb  wwv_flow_authentication_saml.plb

catpatch.sql                wwv_flow_data_export_html.plb

catpatch_appcon.sql         wwv_flow_f4000_plugins.plb

catpatch_con.sql            wwv_flow_imp.plb

corepatch.sql               wwv_flow_instance_admin.plb

devpatch.sql                wwv_flow_interactive_grid.plb

flow.plb                    wwv_flow_ir.plb

flows_release.sql           wwv_flow_ir_render.plb

generate_ddl.plb            wwv_flow_mail.plb

images                      wwv_flow_maint.plb

imp_parser.plb              wwv_flow_process.plb

null1.sql                   wwv_flow_process_bg.plb

patch_35340435.sql          wwv_flow_session.plb

patch_35354010.sql          wwv_flow_session_state.plb

patch_35378812.sql          wwv_flow_template_component.plb

patch_35464016.sql          wwv_flow_theme_manager.plb

patch_35526692.sql          wwv_flow_translation_util_api.plb

patch_35568630.sql          wwv_flow_upgrade.plb

sw_api.plb                  wwv_flow_xml_security.plb

[root@linux2 ~]# 


/etc/ords/config/global/doc_root/i以下に、/opt/oracle/apex/23.1.3/imagesへのシンボリック・リンクが作成されます。

ls -l /etc/ords/config/global/doc_root/i

[root@linux2 ~]# ls -l /etc/ords/config/global/doc_root/i

total 0

lrwxrwxrwx. 1 root root 30 Aug 14 05:16 23.1.0 -> /opt/oracle/apex/23.1.0/images

lrwxrwxrwx. 1 root root 30 Aug 14 05:30 23.1.3 -> /opt/oracle/apex/23.1.3/images

[root@linux2 ~]# 


パッチのインストール後にcatpatch.sqlの実行、および、APEXのイメージプリフィックスのアップデート(reset_image_prefix.sqlの実行)が必要です。

Oracle APEXのベースとなるインストールについては、それほど簡単になったとは感じませんが、RPMでパッチが提供されるのは非常に便利です。とはいえ、現時点ではOracle Cloud内での利用に限定されています。

パブリックYUMより、Oracle APEXのパッチセットバンドルもインストール可能になることが期待されます。