Oracle | systemd, dbus, $ORACLE_HOME/lib and undefined symbol: XML_SetHashSalt
If you have a CentOS or Fedora system with Oracle installed, and the system doesn't come up after a reboot (in my case it just hung with nothing obvious happening), it's highly likely you've added
/etc/ld.so.conf (or preferably as a separate file under
/etc/ld.so.conf.d/), which means Oracle's version of the
libexpat library is prioritized, but this is lacking the
XML_SetHashSalt symbol required by dbus, meaning the whole
systemd caboodle just falls over and dies.
The precise error (from
dbus-daemon: /usr/bin/dbus-daemon: symbol lookup error: /usr/bin/dbus-daemon: undefined symbol: XML_SetHashSalt
The solution is simply to remove the entry from
/etc/ld.so.conf or wherever and run
ldconfig before rebooting the system.
Provision of the Oracle library path will then have be done at individual user level with e.g.
(yes, we know it's considered harmful).
Hat-tip to Laurenz Albe (of oracle_fdw fame) in this Stackoverflow question: Fedora Linux cannot boot after installing Oracle XE 18.4