在64位Linux系统上安装64位Oracle 10gR2,到底需要装哪些包?
这不是一个完整的安装教程,仅仅探讨在64位CentOS 5.8系统上安装64位Oracle 10gR2,到底需要装哪些RPM包.
实验环境
VMWare Workstation 8.0
Linux发行版: CentOS 5.8 x86_64
Kernel版本: 2.6.18-308.el5
Oracle Database版本: 10201_database_linux_x86_64.cpio.gz
为了避免受其他rpm包的干扰,笔者在安装Linux的时候选择了最小化安装,即文字模式下安装,去掉所有可选的包,结果总共仅安装了232个rpm包.算是一个很小的Linux系统了;
装过ORACLE的人都知道,在装ORACLE之前要先装一些RPM包,在官方安装指南中,ORACLE并没有告知在RHEL 5.x系列下应该装哪些包;如果参照RHEL 4.x系列来装,必出错;
网上搜一下也有很多在RHEL 5.x系列上安装ORACLE的教程,但大多都是32位的平台;若照抄到64位平台也必出错;
经过笔者反复测试,发现以下10个RPM包是必装的:
这里我省略了RPM包的主、次版本号,因为我相信现在的Linux发行版中的RPM包的版本号绝对会比ORACLE 10g要求的版本号高;
binutils.x86_64
compat-libstdc++-33.x86_64
gcc.x86_64
glibc-devel.x86_64
glibc-devel.i386
libaio.x86_64
libXp.i386
libXt.i386
libXtst.i386
make.x86_64
为什么说是必装的呢?下面分别说明一下:
binutils.x86_64
gcc.x86_64
libaio.x86_64
make.x86_64
这4个包是OUI预检时必查的,少了任何一个都会预检不通过;
compat-libstdc++-33.x86_64
如果少了这个包,则安装过程中会报以下错:
Error in invoking target 'all_no_orcl' of makefile '/u01/app/oracle/product/10.2.0/db_1/rdbms/lib/ins_rdbms.mk'
glibc-devel.x86_64
如果少了这个包,则安装过程中会报以下错:
Error in invoking target 'ntcontab.o' of makefile '/u01/app/oracle/product/10.2.0/db_1/network/lib/ins_net_client.mk'
glibc-devel.i386
如果少了这个包,则安装过程中会报以下错:
Error in invoking target 'install' of makefile '/u01/app/oracle/product/10.2.0/db_1/ctx/lib/ins_ctx.mk'
补装后又报Error in invoking target 'agent nmo nmb' of makefile '/u01/app/oracle/product/10.2.0/db_1/sysman/lib/ins_sysman.mk'
退出,重装ORACLE就OK了;
libXp.i386
libXt.i386
libXtst.i386
如果少了这3个包,则OUI起不来,分别报如下错:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2012-07-16_12-22-25PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2012-07-16_12-26-27PM/jre/1.4.2/lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2012-07-16_12-29-27PM/jre/1.4.2/lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
笔者在仅安装了这10个包以后,顺利的装上了ORACLE软件,并用DBCA顺利的创建了数据库;
可能需要的依赖包:
如果用rpm命令装的话,可能还需要手动装以下的依赖包;
如果用yum命令来装的话就可以忽略以下的依赖包了,因为yum会自动安装这些依赖包;
glibc-headers.x86_64 //glibc-devel.x86_64,glibc-devel.i386都依赖它;
kernel-headers.x86_64 //glibc-headers.x86_64依赖它;
cpp.x86_64 //gcc.x86_64依赖它;
libgomp.x86_64 //gcc.x86_64依赖它;
libICE.i386 //libXt.i386依赖它;
libSM.i386 //libXt.i386依赖它;
最后想补充一点的是,某些教程中喜欢用./runInstaller -ignoreSysPrereqs命令来跳过操作系统检查,笔者测试了一下,这样做虽然可以顺利启动OUI,但在后续的安装过程中会出现一些莫名的错误,所以不建议这么做.
笔者的解决方法是修改/etc/redhat-release文件,清空该文件里的内容(注意是清空,而不是注释掉),并加入 redhat-4 这句即可.
安装oracle11G 前,需要在Linux系统中检查是否安装以下依赖包。
binutils----------------2.20.0-0.79
gcc ----------------4.3-62.198 N
gcc-c++ ----------------4.3-62.198 N
glibc ----------------2.11.1-0.17.4
glibc-devel ------------2.11.1-0.17.4 N
ksh ------------93t-9.9.8
libaio -------------0.3.109-0.1.46
libaio-devel------------0.3.109-0.1.46 N
libgcc43----------------4.3.4-20091019-0.7.35
libstdc++33-------------3.3.3-11.9
libstdc++43-------------4.3.4_20091019-0.7.35
libstdc++-devel---------4.3-62.192 N
libstdc++43-devel-------4.3.4_20091019-0.7.35 N
make--------------------3.81-128.20
orarun------------------1.9-172.20.21.54 N
sysstat-----------------8.1.5-7.9.56 N
On SUSE 11L 可不安装
unixODBC-32bit-2.2.12 (32-bit) or later
unixODBC-devel-32bit-2.2.12 (32 bit) or later
unixODBC-devel