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.