I've been strugling with this bug for months: whenever I try to initialize the Oracle client, I get the following error:
Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libnnz.so: cannot open shared object file: No such file or directory".
I'm initializing the client this way:
OracleDB.initOracleClient({
libDir: '/home/ericmorand/Applications/instantclient_23_26'
});
It makes sense because, if I understand the documentation well, Linux platforms don't support this libDir configuration parameter and the library path MUST be provided with an environment variable before executing the scrips.
Where it starts to not make sense is this:
- If I set the environment variable to the correct path, it works
- If I set the environment variable and the
libDir configuration parameter to the same correct path, it works
- If I set the environment variable to the correct path, and the
libDir configuration parameter to an incorrect path, it does not work
- If I set the environment variable to an incorrect path, and the
libDir configuration parameter to a correct path, it does not work
So, it seems like the libDir configuration parameter is taken into account, and in some case take precedence on the environment variable, but ultimately is not used, and is ignored if not passed.
What is the actual logic behind this? The documentation is nowhere near accurate enough for us to understand how we are expected to use the library in applications that are expected to be multi-platform.
And why is the libDir configuration parameter not enough on Linux platforms? Why is it working for every other platform except this specific one?
I've been strugling with this bug for months: whenever I try to initialize the Oracle client, I get the following error:
I'm initializing the client this way:
It makes sense because, if I understand the documentation well, Linux platforms don't support this
libDirconfiguration parameter and the library path MUST be provided with an environment variable before executing the scrips.Where it starts to not make sense is this:
libDirconfiguration parameter to the same correct path, it workslibDirconfiguration parameter to an incorrect path, it does not worklibDirconfiguration parameter to a correct path, it does not workSo, it seems like the
libDirconfiguration parameter is taken into account, and in some case take precedence on the environment variable, but ultimately is not used, and is ignored if not passed.What is the actual logic behind this? The documentation is nowhere near accurate enough for us to understand how we are expected to use the library in applications that are expected to be multi-platform.
And why is the
libDirconfiguration parameter not enough on Linux platforms? Why is it working for every other platform except this specific one?