Fedora Linux 安装 Oracle XE 18.4 后无法启动
Fedora Linux cannot boot after installing Oracle XE 18.4
我使用 RPM 在 Fedora Linux 29 上安装了 Oracle Express Edition 18.4。
安装进行得相当顺利,除了我必须从源代码构建 compat-libcap1
RPM,因为它没有随 Fedora 29 一起提供。
使用 /etc/init.d/oracle-xe-18c configure
进行的设置没有问题,我可以很好地启动、停止和使用 Oracle。
我将 $ORACLE_HOME/lib
添加到 /etc/ld.so.conf.d/oracle-xe-x86_64.conf
和 运行 ldconfig
以便 Oracle 位于所有可执行文件的库路径上。
但是在下次重新启动时,机器没有再次启动。可能是什么问题?
经过较长的调试会话后,发现问题出在将库目录添加到默认库路径中。
Oracle 提供了操作系统也提供的共享库 libexpat.so.1
,但与其二进制不兼容。
现在启动过程中需要的一些可执行文件(特别是/usr/bin/dbus-daemon
)需要共享库,但它们无法启动:
symbol lookup error: /usr/bin/dbus-daemon: undefined symbol: XML_SetHashSalt
一旦我弄明白了,解决方案就很简单:从默认共享库路径中删除 $ORACLE_HOME/lib
(然后是 运行 ldconfig
)。
我使用 RPM 在 Fedora Linux 29 上安装了 Oracle Express Edition 18.4。
安装进行得相当顺利,除了我必须从源代码构建 compat-libcap1
RPM,因为它没有随 Fedora 29 一起提供。
使用 /etc/init.d/oracle-xe-18c configure
进行的设置没有问题,我可以很好地启动、停止和使用 Oracle。
我将 $ORACLE_HOME/lib
添加到 /etc/ld.so.conf.d/oracle-xe-x86_64.conf
和 运行 ldconfig
以便 Oracle 位于所有可执行文件的库路径上。
但是在下次重新启动时,机器没有再次启动。可能是什么问题?
经过较长的调试会话后,发现问题出在将库目录添加到默认库路径中。
Oracle 提供了操作系统也提供的共享库 libexpat.so.1
,但与其二进制不兼容。
现在启动过程中需要的一些可执行文件(特别是/usr/bin/dbus-daemon
)需要共享库,但它们无法启动:
symbol lookup error: /usr/bin/dbus-daemon: undefined symbol: XML_SetHashSalt
一旦我弄明白了,解决方案就很简单:从默认共享库路径中删除 $ORACLE_HOME/lib
(然后是 运行 ldconfig
)。