Symptom
Upon attempting to start Genesys Configuration Server, the following error appears:
08:24:00.714 Std 05022 Process './dbclient_oracle_64' started ./dbclient_oracle_64: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such
Solution
Make the Oracle 11g XE library directory accessible during run time for dynamic linking.- Create a file in /etc/ld.so.conf.d. In this example, I called it oraclexe.conf
- Add the following line to that conf file (path to the Oracle libraries):
- Execute this command as root to update run-time bindings:
/u01/app/oracle/product/11.2.0/xe/lib
ldconfig -v
Snippet of output
/u01/app/oracle/product/11.2.0/xe/lib: libdbcfg11.so -> libdbcfg11.so libsqora.so.11.1 -> libsqora.so.11.1 libons.so -> libons.so libskgxns.so -> libskgxns.so libxdb.so -> libxdb.so libqsmashr.so -> libqsmashr.so libocrb11.so -> libocrb11.so libuini11.so -> libuini11.so libntcpaio11.so -> libntcpaio11.so libclntsh.so.11.1 -> libclntsh.so.11.1 libldapjclnt11.so -> libldapjclnt11.so libocci.so.11.1 -> libocci.so.11.1 libnjni11.so -> libnjni11.so libodm11.so -> libodm11.so libskgxp11.so -> libskgxp11.so libnnz11.so -> libnnz11.so libheteroxa11.so -> libheteroxa11.so libclsra11.so -> libclsra11.so libnque11.so -> libnque11.so libocijdbc11.so -> libocijdbc11.so libhasgen11.so -> libhasgen11.so libcorejava.so -> libcorejava.so libocrutl11.so -> libocrutl11.so libemmas11.so -> libemmas11.so libodmd11.so -> libodmd11.so libskgxn2.so -> libskgxn2.so libcell11.so -> libcell11.so libocr11.so -> libocr11.so libsqlplus.so -> libsqlplus.so libhgotrace11.so -> libhgotrace11.so libagtsh.so -> libagtsh.so.1.0
Commentary
A common paradigm in software development is to split out commonly used components into libraries. In the UNIX/Linux world, those libraries are referred to as shared objects (the 'so' in the names above). One can determine the library requirements of a given binary with the 'readelf' command. Example below with the Genesys db client for Oracle:
readelf -d dbclient_oracle_64
Output
Dynamic section at offset 0xc2890 contains 28 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libdl.so.2] 0x0000000000000001 (NEEDED) Shared library: [librt.so.1] 0x0000000000000001 (NEEDED) Shared library: [libclntsh.so.11.1] 0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1] 0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000000f (RPATH) Library rpath: [/release/lib/oracle/i686-linux-rhe5/11.2.0/lib64] 0x000000000000000c (INIT) 0x429558 0x000000000000000d (FINI) 0x4998f8 0x000000006ffffef5 (GNU_HASH) 0x400240 0x0000000000000005 (STRTAB) 0x4140c8 0x0000000000000006 (SYMTAB) 0x405008 0x000000000000000a (STRSZ) 73271 (bytes) 0x000000000000000b (SYMENT) 24 (bytes) 0x0000000000000015 (DEBUG) 0x0 0x0000000000000003 (PLTGOT) 0x6c2ee8 0x0000000000000002 (PLTRELSZ) 3672 (bytes) 0x0000000000000014 (PLTREL) RELA 0x0000000000000017 (JMPREL) 0x428700 0x0000000000000007 (RELA) 0x427410 0x0000000000000008 (RELASZ) 4848 (bytes) 0x0000000000000009 (RELAENT) 24 (bytes) 0x000000006ffffffe (VERNEED) 0x427310 0x000000006fffffff (VERNEEDNUM) 6 0x000000006ffffff0 (VERSYM) 0x425f00 0x0000000000000000 (NULL) 0x0
Copyright ©1993-2024 Joey E Whelan, All rights reserved.