oracle 10g install on rhel5

oracle 10的官方文档没有提及1og on rhel5的事情,倒是以rhel4为例子的,所以为了避免不必要的麻烦,在实施的时候,尽量还是选择rhel4吧。客户倒是总有新需求,只是os是rhel5的,这不没按照文档果然遇见错误了…. 就怕linux上缺少rpm包的事情,怕什么,偏偏来什么,费劲搞上了,这里记一下:
在安装到一半的时候,会遇见类似”ins_ctx.mk”,”ins_sysman”的错误,恭喜中奖了。在metalink上找了才知道原来64位oracle10g在安装是需要打32位和64位两种rpm包的。下面是相关的doc id
Doc ID:  Note:302209.1
Symptoms
The installation of the 10g stack for 64 bit goes on fine till the penultimate relink stage and then fails at the relinking of ins_sysman.mk (OEM agent).
Review of the installation log shows consistent “/usr/lib/crti.o not found” & “/usr/lib/libc_nonshared.a” not found messages.
Troubleshooting & Analysis

While crti.o & libc_nonshared.a can be found in /usr/lib64. Even after copying them to /usr/lib does not work, just because they are not in 64 bit format.
Also, running $ genclntsh or $ relink all commands for relinking binaries, gives the following error:
file truncated: $ORACLE_HOME//lib/libclntsh.so, unrecognized format
You will find that the file is actually of 0 bytes. This is because the make utility could not find the right object and archive files for generating the shared object file. The same file may be present in the $ORACLE_HOME//lib32 directory fine.
Forcibly adding /usr/lib or /usr/lib64 in the LD_LIBRARY_PATH and restarting the installation does not help. In fact, Its not required to set any environment variables before the Installation.
Cause
The files /usr/lib/crti.o & /usr/lib/libc_unshared.a (the ones which the installer is trying to find) are delivered as part of the 32 bit version of the glibc-devel-2.3.2-95.30 rpm (the exact version is not relevant here, what is relevant is that they are installed on the OS from the 32bit version of the rpm).
When you do a # rpm -qa | grep glibc-devel, you should see 2 rows in the output, one for the 32 bit and one for the 64 bit.
# rpm -qa | grep glibc-devel glibc-devel-2.3.2-95-27 –> 32bit version glibc-devel-2.3.2-95-27 –> 64bit version
While the Oracle media being used for installation is of 64 bit, there are some components of the rdbms which need reference to 32bit object, archive and shared object files to relink successfully.
Solution

As root user, load the 32 bit version of the glibc-devel-2.3.2-95-27.rpm:
# rpm -Uvh /<absolute_path_to_rpm_directory>/glibc-devel-2.3.2-95-27.rpm The important distinction between 32 bit and 64 bit rpms is that 32 bit rpms will be listed under the tag i386 and the 64 bit ones will be listed under x86_64 tag for SMP OS (you can find out if your OS is SMP or not by typing uname -a).
其实最重要的还是把文档中要求的rpm包给打全了,而且尽管是x64 的os,有些i386(x86)的包仍然需要打上。
o libaio-0.3.103-3.i386.rpm
o compat-db-4.1.25-9.x86_64.rpm
o control-center-2.8.0-12.x86_64.rpm
o gcc-3.4.3-22.1.x86_64.rpm
o gcc-c++-3.4.3-22.1.x86_64.rpm
o glibc-2.3.4-2.x86_64.rpm
o glibc-common-2.3.4-2.x86_64.rpm
o gnome-libs-1.4.1.2.90-44.1.x86_64.rpm
o libstdc++-3.4.3-22.1.x86_64.rpm
o libstdc++-devel-3.4.3-22.1.x86_64.rpm
o make-3.80-5.x86_64.rpm
o pdksh-5.2.14-30.x86_64.rpm
o sysstat-5.0.5-1.x86_64.rpm
o xscreensaver-4.18-5.rhel4.2.x86_64.rpm
o compat-libstdc++-33-3.2.3-47.3.x86_64.rpm
o glibc-kernheaders-2.4-9.1.87.x86_64.rpm
o glibc-headers-2.3.4-2.9.x86_64.rpm
o libaio-0.3.103-3.x86_64.rpm
o glibc-devel-2.3.4-2.9.x86_64.rpm
o glibc-devel-2.3.4-2.9.i386.rpm
good luck….