I installed Oracle Express Edition 18.4 on Fedora Linux 29 using RPMs.
The installation went fairly well, except that I had to build the compat-libcap1
RPM from source, as it is not shipped with Fedora 29.
Setup using /etc/init.d/oracle-xe-18c configure
went without problems, and I could start, stop and use Oracle just fine.
I added $ORACLE_HOME/lib
to /etc/ld.so.conf.d/oracle-xe-x86_64.conf
and ran ldconfig
so that Oracle is on the library path for all executables.
But upon the next reboot, the machine didn't come up again. What could be the problem?
After a longer debugging session, it turned out that adding the library directory to the default library path was the problem.
Oracle provides a shared library libexpat.so.1
that is also provided by the operating system, but is not binary compatible with it.
Now some executables required in the boot process (notably /usr/bin/dbus-daemon
) require that shared library, and they failed to start with:
symbol lookup error: /usr/bin/dbus-daemon: undefined symbol: XML_SetHashSalt
Once I figured that out, the solution was simple: remove $ORACLE_HOME/lib
from the default shared library path (and then run ldconfig
).