I am trying to install Oracle 18 on Centos 8 64 Bit.
I have been able to install the prerequiste component, that in itself requires pre-requisites, but the Oracle install itself fails.
Any assistance would be greatly appreciated.
My system is as follows.
[root@localhost ~]# uname -a
Linux localhost.localdomain 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
I have run the following without incident.
[root@localhost ~]# yum -y localinstall compat-libcap1-1.10-7.el7.x86_64.rpm
[root@localhost ~]# yum -y localinstall compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
[root@localhost ~]# yum -y localinstall oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
When I try and install Oracle it fails.
[root@localhost ~]# yum -y localinstall oracle-database-xe-18c-1.0-1.x86_64.rpm
Last metadata expiration check: 0:02:01 ago on Sun 24 Nov 2019 18:06:23 AEDT.
Dependencies resolved.
=============================================================================================================================================================================
Package Arch Version Repository Size
=============================================================================================================================================================================
Installing:
oracle-database-xe-18c x86_64 1.0-1 @commandline 2.4 G
Transaction Summary
=============================================================================================================================================================================
Install 1 Package
Total size: 2.4 G
Installed size: 5.2 G
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: oracle-database-xe-18c-1.0-1.x86_64 1/1
Installing : oracle-database-xe-18c-1.0-1.x86_64 1/1
Running scriptlet: oracle-database-xe-18c-1.0-1.x86_64 1/1
Exception java.lang.UnsatisfiedLinkError: /opt/oracle/product/18c/dbhomeXE/oui/lib/linux64/liboraInstaller.so: libnsl.so.1: cannot open shared object file: No such file or directory occurred..
java.lang.UnsatisfiedLinkError: /opt/oracle/product/18c/dbhomeXE/oui/lib/linux64/liboraInstaller.so: libnsl.so.1: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.loadNativeLib(OiipuUnixOps.java:388)
at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.<clinit>(OiipuUnixOps.java:130)
at oracle.sysman.oii.oiip.oiipg.OiipgEnvironment.getEnv(OiipgEnvironment.java:201)
at oracle.sysman.oii.oiix.OiixIniPair.instantiateEnvVars(OiixIniPair.java:299)
at oracle.sysman.oii.oiix.OiixIniPair.updateValue(OiixIniPair.java:230)
at oracle.sysman.oii.oiix.OiixIniPair.<init>(OiixIniPair.java:148)
at oracle.sysman.oii.oiix.OiixIniFile.readFile(OiixIniFile.java:809)
at oracle.sysman.oii.oiix.OiixIniFile.readIniFile(OiixIniFile.java:978)
at oracle.sysman.oii.oiix.OiixIniFile.getProfileString(OiixIniFile.java:385)
at oracle.sysman.oii.oiix.OiixOraparam.getOraparamProfileString(OiixOraparam.java:339)
at oracle.sysman.oii.oiix.OiixOraparam.getOraparamProfileString(OiixOraparam.java:297)
at oracle.sysman.oii.oiix.OiixOraparam.usePrereqChecker(OiixOraparam.java:417)
at oracle.sysman.oii.oiic.OiicSessionContext.setVariables(OiicSessionContext.java:1325)
at oracle.sysman.oii.oiic.OiicBaseInventoryApp.execute(OiicBaseInventoryApp.java:766)
at oracle.sysman.oii.oiic.OiicBaseInventoryApp.main_helper(OiicBaseInventoryApp.java:685)
at oracle.sysman.oii.oiic.OiicDetachHome.main(OiicDetachHome.java:420)
'DetachHome' failed.
Exception in thread "main" java.lang.NullPointerException
at oracle.sysman.oii.oiic.OiicBaseInventoryApp.main_helper(OiicBaseInventoryApp.java:701)
at oracle.sysman.oii.oiic.OiicDetachHome.main(OiicDetachHome.java:420)
Exception java.lang.UnsatisfiedLinkError: /opt/oracle/product/18c/dbhomeXE/oui/lib/linux64/liboraInstaller.so: libnsl.so.1: cannot open shared object file: No such file or directory occurred..
java.lang.UnsatisfiedLinkError: /opt/oracle/product/18c/dbhomeXE/oui/lib/linux64/liboraInstaller.so: libnsl.so.1: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.loadNativeLib(OiipuUnixOps.java:388)
at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.<clinit>(OiipuUnixOps.java:130)
at oracle.sysman.oii.oiip.oiipg.OiipgEnvironment.getEnv(OiipgEnvironment.java:201)
at oracle.sysman.oii.oiix.OiixIniPair.instantiateEnvVars(OiixIniPair.java:299)
at oracle.sysman.oii.oiix.OiixIniPair.updateValue(OiixIniPair.java:230)
at oracle.sysman.oii.oiix.OiixIniPair.<init>(OiixIniPair.java:148)
at oracle.sysman.oii.oiix.OiixIniFile.readFile(OiixIniFile.java:809)
at oracle.sysman.oii.oiix.OiixIniFile.readIniFile(OiixIniFile.java:978)
at oracle.sysman.oii.oiix.OiixIniFile.getProfileString(OiixIniFile.java:385)
at oracle.sysman.oii.oiix.OiixOraparam.getOraparamProfileString(OiixOraparam.java:339)
at oracle.sysman.oii.oiix.OiixOraparam.getOraparamProfileString(OiixOraparam.java:297)
at oracle.sysman.oii.oiix.OiixOraparam.usePrereqChecker(OiixOraparam.java:417)
at oracle.sysman.oii.oiic.OiicSessionContext.setVariables(OiicSessionContext.java:1325)
at oracle.sysman.oii.oiic.OiicBaseInventoryApp.execute(OiicBaseInventoryApp.java:766)
at oracle.sysman.oii.oiic.OiicBaseInventoryApp.main_helper(OiicBaseInventoryApp.java:685)
at oracle.sysman.oii.oiic.OiicAttachHome.main(OiicAttachHome.java:696)
'AttachHome' failed.
Exception in thread "main" java.lang.NullPointerException
at oracle.sysman.oii.oiic.OiicBaseInventoryApp.main_helper(OiicBaseInventoryApp.java:701)
at oracle.sysman.oii.oiic.OiicAttachHome.main(OiicAttachHome.java:696)
[SEVERE] An error occurred while registering the Oracle home. Verify logs in /var/log/oracle-database-xe-18c/results/oraInstall.log and /opt/oracle/oraInventory for more details and try again.
warning: %post(oracle-database-xe-18c-1.0-1.x86_64) scriptlet failed, exit status 1
Error in POSTIN scriptlet in rpm package oracle-database-xe-18c
Verifying : oracle-database-xe-18c-1.0-1.x86_64 1/1
Installed:
oracle-database-xe-18c-1.0-1.x86_64
Complete!
Best Answer
The answer wasn't obvious. If you follow the documentation and various posts for installing Oracle XE 18c there appears to be some missing steps if you only use yum to do the installation.
Firstly if you run the install for the prerequisites file using yum you get a response back saying there are two missing dependant files.
If you then run the same using rpm -ivh the result is different. See below.
I also realised that I hadn't at that stage installed java. However just installing this didn't help either.
The resolution for me was to install the dependancies highlighted by rpm -ivh, then install java and then install libnsl, one more rpm that java was complaining about.
My solution is as follows.
Then install the Oracle files.
I don't know if this is the most optimal way of going about the Oracle install but it has worked for me now on both a RHEL and Centos system.