Ubuntu 上安装 Oracle 常见失败原因与解决思路
一 前置条件与系统支持
二 高频失败场景与对应修复
| 症状或报错 | 常见原因 | 快速修复 |
|---|---|---|
| 依赖检查大量失败(如 libaio、gcc、ksh、unixODBC 等) | Ubuntu 仓库包名/版本与 Oracle 预期不一致 | 安装常用依赖:sudo apt-get install libaio1 libaio-dev build-essential gcc g++ ksh unixodbc unixodbc-dev rpm;若 64 位系统需 32 位库,启用多架构:sudo dpkg --add-architecture i386 && sudo apt-get update |
| 图形界面无法启动或提示缺少 X11 | 服务器版未装桌面/X11 | 安装基础图形:sudo apt-get install x-window-system-core gnome-core;或使用 ssh -X 转发图形 |
| 安装进度约 80% 出现链接错误(如 ins_rdbms.mk: client_sharedlib、ins_ctx.mk、ins_net_client.mk) | Ubuntu 与 RHEL 的库路径不同,链接器找不到 /lib64/ 或 /usr/lib64/ 下的库 | 建立兼容软链(示例):sudo ln -s /usr/bin/awk /bin/awk;sudo ln -s /usr/bin/rpm /bin/rpm;sudo ln -s /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/;sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/;必要时创建 /usr/lib64 目录 |
| 报错找不到 /usr/lib64/libpthread_nonshared.a 或 libc_nonshared.a | 64 位系统库位于 /usr/lib/x86_64-linux-gnu/,Oracle 11g 构建脚本仍去 /usr/lib64 找 | 创建目录并软链:sudo mkdir -p /usr/lib64;sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/;sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/ |
| 安装器报 “oui not found” 或启动脚本缺失 | 32/64 位不匹配或安装介质损坏 | 确认安装包与系统架构一致(均为 x86_64 或均为 i386),重新下载校验;必要时安装 32 位兼容库 |
| 提示 “Unexpected error … getOCMDetails” | 缺少 pdksh 或邮件/OCM 配置导致 JS 校验异常 | 安装 pdksh(或临时用 ksh 替代),并在安装界面不填邮箱/不勾选 OCM 复选框以跳过 |
| 检查阶段报 Swap 空间不足 | 物理内存小或未配置 swap | 临时增加 swap 文件(示例):dd if=/dev/zero of=/swapfile bs=1M count=2048;mkswap /swapfile;swapon /swapfile,并在 /etc/fstab 加入条目以持久化 |
| 安装后监听/EM 启动失败(如 ins_emagent.mk: agent nmhs) | 目标链接脚本与系统环境不兼容 | 常见做法是编辑 $ORACLE_HOME/sysman/lib/ins_emagent.mk,将 $(MK_EMAGENT_NMECTL) 从链接命令中移除后重试(仅建议用于 11g 的已知兼容性问题) |
| 运行 sqlplus 报 “SP2-0750: You may need to set ORACLE_HOME” | 环境变量未正确设置 | 在 ~/.bashrc 或 /etc/profile.d/oracle.sh 中设置:export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1;export PATH=$ORACLE_HOME/bin:$PATH;export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH,执行 source 使其生效 |
| 以上条目覆盖了 Ubuntu 上安装 Oracle 的高频报错与可复用的修复路径,涉及依赖补齐、路径兼容软链、swap 扩容与常见 make 目标失败的处理。 |
三 标准化安装与排错流程
四 版本选择与更省心的替代