[Pdns-users] Oracle backend connection string.
a b
tripivceta at hotmail.com
Wed Mar 27 20:44:59 UTC 2013
> Actually you can fix this with /etc/ld.so.conf, just make sure the lib dir(s)
> are in, say, /etc/ld.so.conf.d/oracle or /etc/ld.so.conf and run ldconfig.
>
> no need to use LD_LIBRARY_PATH
That only works on GNU/Linux; if the libraries and binaries are linked with -R, it is not necessary to set either LD_LIBRARY_PATH nor /etc/ld.so.conf, and that technique works on both GNU/Linux and all the System V UNIXes.
As an additional measure, using the $ORIGIN link editor keyword will encode RUNPATH and RPATH into the ELF header,
[9] RUNPATH $ORIGIN:$ORIGIN/../lib:$ORIGIN/../../lib:/opt/lib
[10] RPATH $ORIGIN:$ORIGIN/../lib:$ORIGIN/../../lib:/opt/lib
...causing the runtime linker to look in the current directory of the binary/library first ($ORIGIN), then in the other paths relative to the directory where the binary/library are ($ORIGIN:$ORIGIN/../lib:$ORIGIN/../../lib). This feature is supported by GNU ld, and ld's in Solaris, IRIX and HP-UX, and possibly other UNIX operating systems.
After this, binary executables and libraries can be relocated anywhere, so long as the relative filesystem structure is preserved.
The neat thing about the $ORIGIN keyword is that it causes the linker to always correctly find symbols in libraries and binaries, without having to depend on LD_LIBRARY_PATH or /etc/ld.so.conf.
I would pay good money to find out why Oracle does not do this with their instant client libraries.
More information about the Pdns-users
mailing list