Oracle client not relinking properly

One of the tasks I am performing quite regularly is to deploy Oracle software in form of an RPM. In a previous post I described how this proces could work, based on a post by Frits Hoogland.

Employing the same method, I ran into problems with Oracle 11.2.0.x clients. A few facts to start with:

  • Oracle client 64bit
  • Golden image created on Oracel Linux 5
  • Destination: SuSE Enterprise 10 SP4

The problem described here is most likely applicable to other Oracle clients as well although I haven’t verified that.

The problem

After the clone of the client to the SuSE server I couldn’t start SQL*Plus. Fair enough, I hadn’t set the LD_LIBRARY_PATH. After that I still couldn’t launch sqlplus because of a segmention fault. So if the clone wants to play it difficult, then I can always try to relink it all. But to my great astonishment that didn’t solve the problem either! Still same error.

The relink operation writes information into a logfile, called $ORACLE_HOME/install/relink.log. Please note that this isn’t the RDBMS home, when referring to ORACLE_HOME in this article I specifically speak of the client home!

The log looked normal until I came to this line:

genclntsh: genclntsh: Could not locate  /u01/app/oracle/product/client/
make: *** [client_sharedlib] Error 1
Error in invoking target 'client_sharedlib' of makefile '/u01/app/oracle/product/client/'. See '/u01/app/oracle/product/client/' for details.

Well ok then. In fact, there was no file in $ORACLE_HOME/network/admin at all. Not on the clone, neither in the golden image. This looked like a bug to me and I opened a SR with Oracle. The suggestion (unsurprisingly) was to copy the file either from the RDBMS installation media or alternatively copy the file from an existing RDBMS home.

Trying the relink operation now proved that the file was indeed essential for a relink operation. SQL*Plus now works.