Oracle 9i 9.2.0.4 linux i386 安装:闲来尝试:各种问题、及解决
值得赞扬的是:9i的安装挺简单,包依赖很少,仅仅需要最最基本的编译环境即可。
问题 1: 下载9i的安装介质,挺费劲。网上下载的基本都是通过迅雷,但是一没资源,二下载到包都是损坏的
解决 1:充迅雷会员! 找百度网盘资源!找CSDN下载资源。
问题 2:新版的redhat系 linux 6 很多老的rpm包都已经废弃删除了。老版本的 linux 5系也都是高版本了。无法安装!
解决 2.1:使用老版本的 3系、4系 linux。
解决 2.2:单独下载老版本的rpm包,在 5系、6系上单独安装。必要的rpm包就2个:
compat-gcc-32-3.2.3-47.3.i386.rpm
compat-libstdc++-296-2.96-132.7.2.i386.rpm(如果不是此类低版本,需要做个软连接,原因是问题3中的 “libstdc++-libc6.1-1.so.2”)
问题 3:9i安装成的java版本实在是太低了,对运行库由特定版本“libstdc++-libc6.1-1.so.2”有要求,还有个bug:p3006854。
解决 3: 做个软连接;并利用LD_PRELOAD原理来解决p3006854BUG!
[root@bogon oracle]# ln -s /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/libstdc++-libc6.1-1.so.2
[root@bogon oracle]# cat p3006854_9204_linux_rhel3_pre_install.sh #!/bin/bash cat << EOF | #include <errno.h> #include <sys/syscall.h> #include <sys/types.h> #include <sys/wait.h> pid_t __libc_wait (int *status) { int res; asm volatile ("pushl %%ebx\n\t" "movl %2, %%ebx\n\t" "movl %1, %%eax\n\t" "int \$0x80\n\t" "popl %%ebx" : "=a" (res) : "i" (__NR_wait4), "0" (WAIT_ANY), "c" (status), "d" (0), "S" (0)); return res; } EOF gcc -O2 -shared -fpic -xc - -o libcwait.so echo "/etc/libcwait.so" >>/etc/ld.so.preload echo "Patch successfully applied"
附件:编译好的 “libcwait.so”
问题 4:这个“问题3”中的bug p3006854,oracle的做法不算完美!会影响linux系统本身的运行
解决 4:我给出的完美解决方案是:
首先,改写下bug p3006854的修正脚本源代码文件,只留核心编译,生成文件“libcwait.so”,但是不入侵系统的配置文件“/etc/ld.so.preload”
然后,调用runInstaller方式略微改变如:[oracle@bogon mnt]$ LD_PRELOAD=/home/oracle/libcwait.so Disk1/runInstaller
问题 5:默认调用“Disk1/runInstaller”执行图形安装,会失败。因为oracle 数据库的默认创建位置是 “/oradata”
解决 5:在root用户下创建目录并修改目录的权限(所有者)
[root@bogon bin]# mkdir /oradata
[root@bogon bin]# chown oracle:oracle /oradata
问题 6:升级9i到 9.2.0.8后,会造成${ORACLE_HOME}/JRE的软连接失效!
解决 6 :重新创建JRE软连接到${ORACLE_HOME}/jre/1.4.2
问题 7:升级9i到 9.2.0.8后,会造成dbca\netca等调用java的程序失败。原因是它们使用jre来调用java,升级后根本就不存在jre了,已经变成规范的java。
解决 7 :重新创建jre/bin下的jre符号链接指向java
问题 8 :升级p4547809_92080_LINUX,会弹出不支持的操作系统!! 垃圾,安装原始版的时候怎么不检查呢?!!!
解决 8:让安装程序忽略操作系统检查即可。
[oracle@bogon ~]$ /mnt/p4547809_92080_LINUX/Disk1/runInstaller -ignoreSysPrereqs
其他,待续 ...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2010-01-29 Linux:LFS:第一天:今天开始学习,计划7天时间