Virtual Box上のOracle Linux に GI/DB/EMCCインストール時に必要なパッケージ調査（1/3）

# 概要
Virtual Box 上でOracle Database、Enterprise Managerを作成するにあたって必要なパッケージを調査した備忘録
※構築手順等は別記事で記載予定

# 目次
1. [Oracle Linux](#Chapter1) 本記事で記載
1. [Virtual Box](#Chapter2) 本記事で記載
1. [Grid Infrastructure](https://qiita.com/mahino_1221/items/2d0ed67bfe55f0e8461d)
1. [Oracle Database](https://qiita.com/mahino_1221/items/2d0ed67bfe55f0e8461d)
1. Enterprise Manager
1. [参考文献](#reference)

# 環境の前提

| No |    内容     |    バージョン    |備考 |
|---:|-------------|------------:|-|
| 1  |Oracle Linux|8.6            |最小構成インストール|
| 2  |Virtual Box |7.0.22 r165102 |Guest Additionsを使用|
| 3  |Grid Infrastructure  |19.24            |-|
| 4  |Oracle Database      |19.24            |-|
| 5  |Enterprise Manager   |13.5            |-|



<!-- 各チャプター -->
<a id="#Chapter1"></a>
# 1.Oracle Linux

:::note info
OUIやDBCA等をTerratermから起動する為に設定します。
Linux上のGUIを使用する場合はX関連の対応は不要です。
:::

:::note warn
この段階では、GIやDB、EMCC用のパッケージは考慮していません。
それらに必要なパッケージは別途記述します。
:::

##### ・Xを使うためのパッケージ
```bash
xorg-x11-xauth
xorg-x11-server-utils
xorg-x11-font-utils
xterm
```

##### ・Firefox(X動作確認用)
```bash
firefox
mesa-libGL
mesa-libEGL
mesa-dri-drivers
google-noto-cjk-fonts-common
google-noto-sans-cjk-ttc-fonts
google-noto-serif-cjk-ttc-fonts
```

##### ・利用可能パッケージ確認コマンド
```bash:01_x_check_package.sh
#Xを使うためのパッケージ
echo dnf list xorg-x11-xauth
dnf list xorg-x11-xauth
echo dnf list xorg-x11-server-utils
dnf list xorg-x11-server-utils
echo dnf list xorg-x11-font-utils
dnf list xorg-x11-font-utils
echo dnf list xterm
dnf list xterm

#Firefox(動作確認用)
echo dnf list firefox
dnf list firefox
echo dnf list mesa-libGL
dnf list mesa-libGL
echo dnf list mesa-libEGL
dnf list mesa-dri-drivers
echo dnf list google-noto-cjk-fonts-common
dnf list google-noto-cjk-fonts-common
echo dnf list google-noto-sans-cjk-ttc-fonts
dnf list google-noto-sans-cjk-ttc-fonts
echo dnf list google-noto-serif-cjk-ttc-fonts
dnf list google-noto-serif-cjk-ttc-fonts
```

##### ・インストール状況確認コマンド
```bash:02_x_check_installed_package.sh
#Xを使うためのパッケージ
echo dnf list --installed xorg-x11-xauth
dnf list --installed xorg-x11-xauth
echo dnf list --installed xorg-x11-server-utils
dnf list --installed xorg-x11-server-utils
echo dnf list --installed xorg-x11-font-utils
dnf list --installed xorg-x11-font-utils
echo dnf list --installed xterm
dnf list --installed xterm

#Firefox(動作確認用)
echo dnf list --installed firefox
dnf list --installed firefox
echo dnf list --installed mesa-libGL
dnf list --installed mesa-libGL
echo dnf list --installed mesa-libEGL
dnf list --installed mesa-libEGL
echo dnf list --installed mesa-dri-drivers
dnf list --installed mesa-dri-drivers
echo dnf list --installed google-noto-cjk-fonts-common
dnf list --installed google-noto-cjk-fonts-common
echo dnf list --installed google-noto-sans-cjk-ttc-fonts
dnf list --installed google-noto-sans-cjk-ttc-fonts
echo dnf list --installed google-noto-serif-cjk-ttc-fonts
dnf list --installed google-noto-serif-cjk-ttc-fonts
```

##### ・インストールコマンド
```bash:03_x_install_package.sh
#Xを使うためのパッケージ
echo dnf install -y xorg-x11-xauth
dnf install -y xorg-x11-xauth
echo dnf install -y xorg-x11-server-utils
dnf install -y xorg-x11-server-utils
echo dnf install -y xorg-x11-font-utils
dnf install -y xorg-x11-font-utils
echo dnf install -y xterm
dnf install -y xterm

#Firefox(動作確認用)
echo dnf install -y firefox
dnf install -y firefox
echo dnf install -y mesa-libGL
dnf install -y mesa-libGL
echo dnf install -y mesa-libEGL
dnf install -y mesa-libEGL
echo dnf install -y mesa-dri-drivers
dnf install -y mesa-dri-drivers
echo dnf install -y google-noto-cjk-fonts-common
dnf install -y google-noto-cjk-fonts-common
echo dnf install -y google-noto-sans-cjk-ttc-fonts
dnf install -y google-noto-sans-cjk-ttc-fonts
echo dnf install -y google-noto-serif-cjk-ttc-fonts
dnf install -y google-noto-serif-cjk-ttc-fonts
```

##### ・お好みでパッケージを追加します。（随時更新）

```
#ディレクトリの階層構造を表示する為
tree

#needs-restarting コマンドを使用する為
dnf-utils

#nslookup コマンドを使用する為
bind-utils

```

```bash:04_add_need_package.sh
#tree
dnf list tree
dnf list --installed tree
dnf install -y tree

#dnf-utils
dnf list dnf-utils
dnf list --installed dnf-utils
dnf install -y dnf-utils

#bind-utils
dnf list bind-utils
dnf list --installed bind-utils
dnf install -y bind-utils

```

##### ・X動作確認
パッケージインストール後に、Xを使用したいユーザーでログイン
```bash:startx
[mahino@ora19s1 ~]$xauth list
ora19s1.localdomain/unix:10  MIT-MAGIC-COOKIE-1  XXXXXXXXXXXXXXXXXXXXXXXXXXX

[mahino@ora19s1 ~]$xauth add ora19s1.localdomain/unix:10  MIT-MAGIC-COOKIE-1  XXXXXXXXXXXXXXXXXXXXXXXXXXX
[mahino@ora19s1 ~]$

[mahino@ora19s1 ~]$export DISPLAY=localhost:10.0

[mahino@ora19s1 ~]$firefox &

```
文字化けせずにFirefoxが起動できれば正常


<a id="#Chapter2"></a>
# 2.Virtual Box関連
Guest Additionを使用した場合
・ローカルディスクを共有フォルダにマウント
・ローカルマシンとクリップボードの共有
・マウスカーソルのシームレスな移動など
ができるようになります。

Oracle Linuxの場合デフォルトでuekカーネルが選択されます。
Kernel-headersとuname -rの結果がMismatchしてインストール時にエラーが発生する為
以下のいずれかの対応が必要になります。
1. uekカーネルでの必要なパッケージをインストールする。
2. Kernel-heeaderと同一のカーネルを使用する。

ここでは、uekカーネルを使用したままGuest Addisionsを使用する為、1での対応方法を記載します。
2の方法については、以下をご参考ください。

- [Rocky Linux 8.5 に VirtualBox Guest Additions をインストール](https://blog.nomott.com/vbox-guest-additions-rocky-linux/)
※Oracle Linux 8.6で同様の手順を実施してみたところGuest Addisionsのインストールが可能でした。

```bash
perl
make
bzip2
gzip
unzip
kernel-uek-devel-$(uname -r)
tar
```

##### ・利用可能パッケージ確認コマンド
```bash:05_guest_additions_check_package.sh
echo dnf list perl
dnf list perl
echo dnf list make
dnf list make
echo dnf list bzip2
dnf list bzip2
echo dnf list gzip
dnf list gzip
echo dnf list unzip
dnf list unzip
echo dnf list kernel-uek-devel-$(uname -r)
dnf list kernel-uek-devel-$(uname -r)
echo dnf list tar
dnf list tar
```

##### ・インストール状況確認コマンド
```bash:06_guest_additions_check_installed_package.sh
echo dnf list --installed perl
dnf list --installed perl
echo dnf list --installed make
dnf list --installed make
echo dnf list --installed bzip2
dnf list --installed bzip2
echo dnf list --installed gzip
dnf list --installed gzip
echo dnf list --installed unzip
dnf list --installed unzip
echo dnf list --installed kernel-uek-devel-$(uname -r)
dnf list --installed kernel-uek-devel-$(uname -r)
echo dnf list --installed tar
dnf list --installed tar
```

##### ・インストールコマンド
```bash:07_guest_additions_install_package.sh
echo dnf install -y perl
dnf install -y perl
echo dnf install -y make
dnf install -y make
echo dnf install -y bzip2
dnf install -y bzip2
echo dnf install -y gzip
dnf install -y gzip
echo dnf install -y unzip
dnf install -y unzip
echo dnf install -y kernel-uek-devel-$(uname -r)
dnf install -y kernel-uek-devel-$(uname -r)
echo dnf install -y tar
dnf install -y tar
```

##### ・インストール後の再起動要否確認コマンド（要 dnf-utils パッケージ）
```bash
#リスタートが必要なプロセスを表示
[root@ora19s1 ~]# needs-restarting | sort -g

#systemdのサービス名で表示
[root@ora19s1 ~]# needs-restarting -s | sort

#リブート推奨表示
[root@ora19s1 ~]# needs-restarting -r
```

##### ・実行例
```bash
[root@ora19s1 ~]# needs-restarting | sort -g
[root@ora19s1 ~]# needs-restarting -s | sort
[root@ora19s1 ~]# needs-restarting -r
起動以降にアップデートされたコアライブラリーまたはサービスはありません。
再起動な必要ありません。
[root@ora19s1 ~]#
```


##### Guest Addisionsのインストール(root)

1\. Guest AddisionsのISOをマウント
```bash
[root@ora19s1 ~]# mount /dev/sr0 /mnt
```
2\. マウント結果の確認
```bash
[root@ora19s1 ~]# ls -l /mnt/
```

3\. Installerの実行
```bash
[root@ora19s1 ~]# /mnt/VBoxLinuxAdditions.run
```
4\. 実行例
```bash
[root@ora19s1 ~]# mount /dev/sr0 /mnt
mount: /mnt: 警告: デバイスは書き込み禁止です、読み込み専用でマウントします.
[root@ora19s1 ~]#
[root@ora19s1 ~]# ls -l /mnt/
合計 42963
-r--r--r--. 1 root root     1048  8月 20 20:50 AUTORUN.INF
dr-xr-xr-x. 2 root root     1252 10月 11 04:43 NT3x
dr-xr-xr-x. 2 root root     2828 10月 11 04:43 OS2
-r--r--r--. 1 root root      592 10月 11 04:43 TRANS.TBL
-r--r--r--. 1 root root  2203717 10月 11 03:59 VBoxDarwinAdditions.pkg
-r-xr-xr-x. 1 root root     4224 10月 11 03:59 VBoxDarwinAdditionsUninstall.tool
-r-xr-xr-x. 1 root root  6306247 10月 11 03:56 VBoxLinuxAdditions.run
-r--r--r--. 1 root root  9415168 10月 11 03:57 VBoxSolarisAdditions.pkg
-r-xr-xr-x. 1 root root 15773200 10月 11 04:43 VBoxWindowsAdditions-amd64.exe
-r-xr-xr-x. 1 root root  9269448 10月 11 04:21 VBoxWindowsAdditions-x86.exe
-r-xr-xr-x. 1 root root   998024 10月 11 03:59 VBoxWindowsAdditions.exe
-r-xr-xr-x. 1 root root     6848 10月 11 03:56 autorun.sh
dr-xr-xr-x. 2 root root     1468 10月 11 04:43 cert
-r-xr-xr-x. 1 root root     5096 10月 11 03:56 runasroot.sh
-r--r--r--. 1 root root      261  8月 20 20:50 windows11-bypass.reg
[root@ora19s1 ~]#
[root@ora19s1 ~]# /mnt/VBoxLinuxAdditions.run
Verifying archive integrity...  100%   MD5 checksums are OK. All good.
Uncompressing VirtualBox 7.0.22 Guest Additions for Linux  100%
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Setting up modules
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel
modules.  This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel
5.4.17-2136.307.3.1.el8uek.x86_64.
VirtualBox Guest Additions: reloading kernel modules and services
VirtualBox Guest Additions: kernel modules and services 7.0.22 r165102 reloaded
VirtualBox Guest Additions: NOTE: you may still consider to re-login if some
user session specific services (Shared Clipboard, Drag and Drop, Seamless or
Guest Screen Resize) were not restarted automatically
```


<a id="#reference"></a>
# 参考文献
- [最小インストールのOracle Linux 8でブラウザを動かす場合FirefoxとChromeのどっちが容量少ないか](https://blog.osakana.net/archives/12540)
- [Installing Virtualbox Guest Additions for Oracle Linux 8.2](https://martincarstenbach.com/2020/07/01/installing-virtualbox-guest-additions-for-oracle-linux-8-2/)
- [Rocky Linux 8.5 に VirtualBox Guest Additions をインストール](https://blog.nomott.com/vbox-guest-additions-rocky-linux/)