Tuesday, May 26, 2009

Oracle 10gR2 on SLES x64 requires 32-bit Runtime Environment

Symptom Brief Description: Problems with installing Oracle 10g on SLES 10.2 x64. Oracle logs indicate missing libraries.

Novell's 'Oracle Base' included with SLES 10.2 is pretty awesome, and my love for not having to trudge through the labyrinth of Kernel parameters and ever-changing and interdependent library versions is somewhere between my love for ice-cream and puppies. Novell also produces a very fine and thorough configuration document for installing Oracle on SLES (Novell's install doc for Oracle 10g on SLES 10.2 x64). In general, fantastic.

One issue I've run into, however, is that a crucial pre-requisite (32-bit runtime environment on X64 SLES) is easy to miss in the install documentation.

On the x64 version of SLES 10.2, the 32-bit runtime environment is required for an Oracle 10gR2 install. Without it, the install may fail silently, or it may fail like a crime scene, but it will fail (example errors below). The 32-bit runtime environment is shown as checked in the Novell documentation for a clean install, but it is easy to miss as it's in a screenshot that includes unnecessary or optional packages such as Print Server, File Server, AppArmor, and various Desktop environments.

Various install errors which may cause the Oracle Universal Installer to quit altogether, or to complete, but fail silently (until you look at the logs). The Logs will contain errors such as:
'/usr/bin/ld: crt1.o: No such file: No such file or directory'
Exception Name: MakefileException
Exception String: Error in invoking target 'install' of makefile
Both the C/C++ tools, and the 32-bit runtime environment must be installed on x64 SLES for Oracle 10gR2. Without these packages, the install will fail.

If you're doing an install from scratch in the graphic install: In addition to the Oracle Base package select:
  • 'C/C++ Compiler and Tools'
  • '32-bit runtime environment'

To check for the required packages on an existing system:
rpm -qa --queryformat '%{NAME}\n' egrep '(((^glib)+).*((32)+))'

Command should return the following required 32-bit packages:
  • glibc-locale-32bit
  • glibc-32bit
  • glib2-32bit
  • glib-32bit
  • glibc-devel-32bit
If these packages are not installed, they can be installed via rug, Yast2, or your install utility of choice.

No comments:

Post a Comment