oracle 11g安装报libxp.so.6错误的主因是架构不匹配或源缺失:centos/rhel 7+需启用epel并安装libxp.i686(非x86_64),同时装libxtst,补全软链,并确保display、xhost、gdk_backend=x11及分辨率≥1024×768均正确。
oracle 11g 安装报 libxp.so.6: cannot open shared object file,不是没装 libxp,而是装错了架构或源不对——centos/rhel 7+ 默认不提供 libxp,必须启用 epel 并明确安装 i686/x86_64 双架构版本。
为什么 yum install libXp 总失败
CentOS 7 / RHEL 7 的 base 仓库已彻底移除 libXp;RHEL 6 的 base 里有,但包名是 libXp(不是 libxp 或 xorg-x11-utils);而 Oracle 11g 的 JRE 是 32 位(i386),它实际需要的是 libXp.i686,不是 x86_64 版本。
- 先确认缺失项:
yum list installed | grep -i 'libxp\|libxtst' - 查可用包:
yum list available | grep -E '^(libXp|libXtst)'—— 你会看到libXp.i686和libXp.x86_64分开列出 - CentOS 7 必须先启用 EPEL:
yum install -y epel-release,否则yum install libXp.i686直接报“no package found” - 别只装
libXp:Oracle 同时依赖libXtst.so.6,它在 base 仓库里,包名就是libXtst(不是libxtst),执行yum install -y libXtst
装完还是报 libXp.so.6 找不到
常见原因是符号链接断裂。Oracle 运行时找的是 libXp.so.6,但系统装的可能是 libXp.so.6.2,且没自动建软链。
- 检查真实文件:
find /usr -name "libXp.so.*" 2>/dev/null,通常在/usr/lib64/或/usr/lib/ - 手动补链(以 64 位系统为例):
ln -sf /usr/lib64/libXp.so.6.2 /usr/lib64/libXp.so.6 - 如果是 32 位依赖(更常见):
ln -sf /usr/lib/libXp.so.6.2 /usr/lib/libXp.so.6 - 验证是否生效:
ldd /tmp/OraInstall*/jre/lib/i386/libawt.so | grep libXp—— 输出应显示 “=> /usr/lib/libXp.so.6 (0x...)”
DISPLAY 正确但 xdpyinfo 报 “Can't open display”
这不是库的问题,是 X11 转发链断了。Oracle 安装器启动前会调用 xdpyinfo 检测显示能力,一旦失败就直接退出并报 libXp 错误(误导性日志)。
-
echo $DISPLAY必须输出类似192.168.1.100:10.0,不能是localhost:10.0或:0.0(后者仅限本地 GUI 登录) -
xhost +必须由当前 DISPLAY 所属用户运行(比如你是root登录的 X server,就得用root执行xhost +) - 切换到
oracle用户后,DISPLAY环境变量不会继承,必须重新export DISPLAY=... - 防火墙要放行 TCP 6000–6010 端口(X server 默认监听 6000);用
ss -tlnp | grep :6000确认Xorg或Xvnc在监听
白屏、竖线、按钮不可点的真正原因
装齐所有库、DISPLAY 也通了,仍出现白屏或一条白色竖线,大概率是图形后端或分辨率问题,和 libXp 无关。
- 强制回退到 X11:
export GDK_BACKEND=x11(Wayland 下 Oracle installer 不兼容) - 最小分辨率必须 ≥1024×768;VNC/Xmanager 启动时若未指定 geometry,可能默认太小,加参数:
xterm -geometry 1280x800 -display $DISPLAY - 不要用
gnome-terminal或konsole启动 installer;改用xterm:yum install -y xterm,再运行/usr/bin/xterm -ls -display $DISPLAY -e "/path/to/database/runInstaller" - 乱码常伴随发生,
oracle用户下务必设:export LANG=en_US.UTF-8,再运行./runInstaller
真正卡住的地方往往不是缺哪个包,而是 DISPLAY 设置、xhost 权限、软链接、GDK 后端这四者中某一个没对上——它们任何一个出错,都会让 Oracle 安装器在加载图形界面前崩溃,并把错误归因于 libXp.so.6。











