Tuesday, September 14, 2010

ld: warning: libclntsh.so.9.0, needed by /psoft/psoftdev/hcmdev/bin/libpsora_ansi.so, not found (try using -rpath or -rpath-link)

New installation of PeopleSoft People Tools 8.49. Cobol compiled fine but got the following errors when linking:

[psoft@hcmdevdb01 setup]$ ./psrun.mak
./psrun.mak - linking PSRUN for redhat-4-ia32, Version 2.6.18-164.el5 ...
./psrun.mak - Error(s) encountered creating PSRUN!
./psrun.mak - See /psoft/psoftdev/hcmdev/setup/psrun.err for messages
[psoft@hcmdevdb01 setup]$ cat psrun.err
ld: warning: libclntsh.so.9.0, needed by /psoft/psoftdev/hcmdev/bin/libpsora_ansi.so, not found (try using -rpath or -rpath-link)
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIStmtExecute'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIStmtPrepare'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIInitialize'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCITransCommit'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIBindByName'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIAttrSet'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIDescriptorAlloc'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIStmtFetch'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIDescriptorFree'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIDefineByPos'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIHandleFree'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIStmtSetPieceInfo'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCISessionEnd'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIServerAttach'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIEnvInit'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIDateTimeGetDate'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIHandleAlloc'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIAttrGet'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIDateTimeGetTime'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIStmtGetPieceInfo'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIErrorGet'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCITransRollback'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCISessionBegin'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIServerVersion'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIServerDetach'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIDateTimeConstruct'
/psoft/psoftdev/hcmdev/bin/libpsora_ansi.so: undefined reference to `OCIParamGet

By searching in Google and Oracle support, all suggested to create a soft link. So I went to create the soft link under $ORACLE_HOME/lib as

ln -s /u01/app/oracle/product/10.2.0/db_1/lib32/libclntsh.so.10.1 libclntsh.so.9.0

But still it didn't work.

Finally, I figured out the problem is the permission. After applied the Oracle patch set, the permission on the Oracle home is tight. So I did the following:

cd $ORACLE_HOME/install
[oracle@hcmdevdb01 install]$ sh changePerm.sh

-------------------------------------------------------------------------------
Disclaimer: The purpose of this script is to relax permissions on some of the
files in the database Oracle Home so that all clients can access them.
Please note that Oracle Corporation recommends using the most restrictive file
permissions as possible for your given implementation. Running this script
should be done only after considering all security ramifications.
-------------------------------------------------------------------------------

Do you wish to continue (y/n) [n]: y
Spooling the error log /tmp/changePerm_err.log...
Finished running the script successfully
[oracle@hcmdevdb01 install]$

Then the Cobol link runs successfully.

No comments: