Oracle 11g在Linux 8上安装卡在supportedOSCheck或报INS-08101,根本原因是OUI不识别Linux 8系统版本;需设CV_ASSUME_DISTID=RHEL7(11.2.0.4推荐)或OEL6(早期版本需改cvu_config文件),并写入oracle用户~/.bash_profile后source生效,确保变量传递至所有子进程。
Oracle 11g安装卡在supportedOSCheck或报INS-08101?CV_ASSUME_DISTID必须设对
oracle 11g r2(11.2.0.4)的安装程序(oui)根本不认识rhel 8 / ol 8,它内置的发行版白名单只到rhel 6/7。一读到/etc/os-release里的id="rhel"和version_id="8.x"就直接拒绝继续,根本不会走到依赖检查那步。这不是缺包、不是权限问题,是cvu校验直接失败。
设CV_ASSUME_DISTID=OEL6或CV_ASSUME_DISTID=RHEL7就能绕过——OUI会按你指定的发行版去查兼容表,而RHEL 7的内核、glibc、库版本对11g是实际可用的。
-
CV_ASSUME_DISTID=OEL6适用于11g早期补丁集(如11.2.0.1–11.2.0.3),需手动改cvu_config文件(路径:database/stage/cvu/cv/admin/cvu_config) -
CV_ASSUME_DISTID=RHEL7或CV_ASSUME_DISTID=OL7更稳妥,适用于11.2.0.4及后续PSU,推荐优先用RHEL7 - 变量名必须全大写、无空格、拼写准确:
CV_ASSUME_DISTID,不是CV_ASSUMED_DISTID或CV_ASSUME_DIST_ID
export只在当前shell有效?安装前必须让变量进入子进程
runInstaller启动后会拉起Perl、Java子进程,这些进程不会继承你临时export的变量。如果只是export CV_ASSUME_DISTID=RHEL7 && ./runInstaller,大概率失效。
正确做法是让变量持久化并生效于整个安装上下文:
- 编辑
~/.bash_profile(oracle用户),追加:export CV_ASSUME_DISTID=RHEL7 - 执行
source ~/.bash_profile立即加载 - 验证:新开一个终端,运行
echo $CV_ASSUME_DISTID,确认输出为RHEL7 - 如果是静默安装,也建议在
./runInstaller -silent -responseFile=...前加export CV_ASSUME_DISTID=RHEL7,双重保险
设了CV_ASSUME_DISTID还报libnsl.so.1找不到?这是另一个独立问题
CV_ASSUME_DISTID只解决系统识别,不解决运行时库缺失。RHEL 8+默认不带libnsl.so.1(被libnsl.so.2替代),而11g二进制仍硬链接旧版。
必须额外装兼容库:
- RHEL 8 / OL 8 / CentOS 8 / Rocky 8:
yum install -y libnsl - OpenEuler 22.03:
dnf install -y libnsl2,然后软链:ln -sf /usr/lib64/libnsl.so.2 /usr/lib64/libnsl.so.1 - 若用Oracle官方预安装包(如
oracle-database-preinstall-19c),它不包含libnsl,仍需手动补
图形界面安装失败?DISPLAY + CV_ASSUME_DISTID缺一不可
runInstaller是Java GUI程序,没DISPLAY连窗口都弹不出;但即使有DISPLAY,没CV_ASSUME_DISTID也会卡在“Checking operating system version”不动。
确保两个环境变量同时存在且生效:
-
export DISPLAY=:0(本地桌面)或export DISPLAY=192.168.x.x:10.0(X11转发) export CV_ASSUME_DISTID=RHEL7- 两者必须在同一个shell中设置,且
runInstaller由该shell启动 - 如果用
sudo -u oracle ./runInstaller,注意sudo可能重置环境变量,改用sudo -i -u oracle保持完整profile
真正麻烦的不是变量本身,而是它必须和DISPLAY、用户环境、子进程生命周期严丝合缝地对齐——漏掉任一环,错误现象都一样,但原因完全不同。











