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:
The problem described here is most likely applicable to other Oracle clients as well although I haven’t verified that.
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:
/u01/app/oracle/product/client/184.108.40.206/bin/genclntsh genclntsh: genclntsh: Could not locate /u01/app/oracle/product/client/220.127.116.11/network/admin/shrept.lst make: *** [client_sharedlib] Error 1 Error in invoking target 'client_sharedlib' of makefile '/u01/app/oracle/product/client/18.104.22.168/rdbms/lib/ins_rdbms.mk'. See '/u01/app/oracle/product/client/22.214.171.124/install/relinkActions2012-01-24_09-46-10-AM.log' 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 126.96.36.199 RDBMS installation media or alternatively copy the file from an existing 188.8.131.52 RDBMS home.
Trying the relink operation now proved that the file was indeed essential for a relink operation. SQL*Plus now works.