PS:昨天在一台CentOS 6.3 x64测试机器上安装Oracle11gR2 x64,按照之前总结的安装文档,做了oracle11g相关环境配置,安装到84%时出现ins_ctx.mk相关报错。之前在CentOS 5.6、5.8的64位系统安装都没这个问题,查看了安装日志的报错信息,是编译某些包时过不去。
报错截图如下:
google了一下,也不少人遇到这个问题,但问的多,答的少。后来看到有人提示说是64位oracle同时需要glibc-devel的32位和64位包。我rpm -qa|grep glibc-devel查了一下之前安装好的,果然是32和64位的都有安装。而现在报错的这台只有glibc-devel-2.12-1.80.el6.x86_64,没有安装glibc-devel-2.12-1.47.el6.i686,于是用yum install glibc-devel*发现还是无法把32位的安装上。
解决方法如下:
从CentOS的ISO里提取glibc-devel-2.12-1.47.el6.i686这个包出来,直接rpm -ivh glibc-devel-2.12-1.47.el6.i686是无法安装的,会报有互相依存关系。使用如下命令强制安装:
rpm -ivh --nodeps --force glibc-devel-2.12-1.47.el6.i686
这样问题解决。
注:--nodeps --force
这个参数非常有用!在一些软件包出问题时也可以覆盖安装!值得批评的是,Oracle11G官方文档都没有说到这个包的32位和64位都需要安装。
Oracle11g的官方安装文档:http://docs.oracle.com/cd/E11882_01/install.112/e16763/pre_install.htm
总结:如果要安装部署Oracle的服务器,安装系统时要把所有的开发包和开发工具全部安装上,以免出现上面的问题耗费时间。我这台机器之前只安装了基本的开发包,后来yum安装了oracle官方要求的包,还是出现了漏掉某个包的现象。