oracle 10的官方文档没有提及1og on rhel5的事情，倒是以rhel4为例子的，所以为了避免不必要的麻烦，在实施的时候，尽量还是选择rhel4吧。客户倒是总有新需求，只是os是rhel5的，这不没按照文档果然遇见错误了…. 就怕linux上缺少rpm包的事情，怕什么，偏偏来什么，费劲搞上了，这里记一下：
Doc ID: Note:302209.1
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.
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.
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).