发布于 2015-11-07 14:55:13 | 1203 次阅读 | 评论: 1 | 来源: PHPERZ
Oracle关系数据库管理系统
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。
安装环境:Red Hat Linux 6.5_x64、oracle11g 64bit
安装到68%时弹窗报错:
调用makefile '/test/app/Administrators/product/11.2.0/dbhome_1/network/lib/ins_net_client.mk' 的目标 'mkldflags ntcontab.o nnfgt.o' 时出错。有关详细信息, 请参阅 '/test/app/oraInventory/logs/installActions2015-11-02_02-27-26PM.log'。
查看日志具体信息有下面的信息:
信息:gcc: error trying to exec 'cc1': execvp:
信息:没有那个文件或目录
信息:mv:无法获取"ntcontab.o" 的文件状态(stat)
信息:没有那个文件或目录
1、首先判断系统位数和oracle安装包位数是否一致,是否都为64位。
在系统中执行:
[root@localhost ~]# uname -i
x86_64
表明系统版本为64位。
oracle版本可以双击打开下载的安装包中名为welcome的html文件,看到有“11g Release 2 (11.2) for Linux x86-64”,证明系统位数和oracle位数一致。
2、排除了第一种可能性,看错误信息“gcc: error trying to exec 'cc1': execvp:”,一般这种问题是gcc和g++版本不兼容导致的,也有可能是gcc和g++没有正确安装或安装完gcc没有安装g++。
首先我们知道,官方文档要求在red hat linux 6版本上安装oracle11g时需首先打这样的两个包:gcc-4.4.4-13.el6.x86_64,gcc-c++-4.4.4-13.el6.x86_64。
第一步:确认gcc和g++版本是否一致。
[root@localhost ~]# /usr/bin/gcc -v
使用内建 specs。
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC)
[root@localhost ~]# /usr/bin/g++ -v
使用内建 specs。
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC)
如果提示类似“the package not installed”的字样,证明gcc或g++未安装。
如果最后显示的gcc版本不一致,证明你需要统一版本安装。
这两种状况解决办法:
在安装oracle 之前系统中打这样的包:gcc-4.4.4-13.el6.x86_64.rpm,gcc-c++-4.4.4-13.el6.x86_64.rpm。
安装命令为:rpm –ivh *.rpm
第二步,如果我们发现版本一致,例如上面的例子,gcc版本:gcc 版本 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC)。这说明我们安装了gcc和g++并且版本一致,为何仍报错呢?
我们在linux系统中打rpm包时,如果遇到需要安装依赖包的问题,例如:
[root@localhost oracle_install_package]# rpm -ivh unixODBC-2.2.14-11.el6.i686.rpm
warning: unixODBC-2.2.14-11.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
error: Failed dependencies:
libltdl.so.7 is needed by unixODBC-2.2.14-11.el6.i686
libreadline.so.6 is needed by unixODBC-2.2.14-11.el6.i686
我们通常会选择使用命令rpm –ivh –force –nodeps 命令忽略依赖强制安装。但是在打gcc和g++包时却不能采取这样的方式,我们必须把所有的依赖包全部安装成功后,在安装
gcc-4.4.4-13.el6.x86_64.rpm,gcc-c++-4.4.4-13.el6.x86_64.rpm这两个包。
如果你恰好是采用了这样的方式,你会在刚刚的查询中gcc和g++的版本一致,但仍无法正确安装oracle11g。因为这两个包是不能强制安装的。
(1)查询已安装的gcc和g++
执行命令rpm –q gcc
[root@localhost oracle_install_package]# rpm -q gcc
gcc-4.4.4-13.el6.x86_64
执行命令gcc-c++
[root@localhost oracle_install_package]# rpm -q gcc-c++
gcc-c++-4.4.4-13.el6.x86_64
得出安装的版本。
(2)使用rpm –e命令卸载包
rpm –e gcc-4.4.4-13.el6.x86_64.rpm
rpm –e gcc-c++-4.4.4-13.el6.x86_64.rpm
如果卸载遇到依赖性问题,可使用rpm –e –nodeps忽略依赖删除。
(3)卸载后重新使用rpm –ivh命令安装。
rpm –ivh gcc-4.4.4-13.el6.x86_64.rpm
rpm –ivh gcc-c++-4.4.4-13.el6.x86_64.rpm
安装过程中一般会遇到需首先安装依赖包的问题,此时我们需下载对应的依赖包进行安装。
依赖包安装的过程可能仍需要更多的依赖包,此时在安装依赖包时我们可以采用rpm –ivh –force –nodeps忽略依赖强制安装依赖包。安装完成依赖包后,我们就可以成功的安装gcc和gcc-c++包了。
打完两个包后,相信你就可以正常完成oracle11g的安装了。