Delete unnecessary parts of this template.
Review the install instructions https://github.com/oracle/node-oracledb/blob/master/INSTALL.md
Review the troubleshooting tips https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#troubleshooting
node 8.11.1
oracledb 2.2
64-bit 12.2 instant client
What is your Oracle Database version?
What is your OS and version?
fedora 28
What is your compiler version? For example, with GCC, run gcc --version
gcc 8
What Oracle environment variables did you set? How exactly did you set them?
What is the PATH environment variable (on Windows) or LD_LIBRARY_PATH (on Linux) set to?
echo $LD_LIBRARY_PATH
/usr/lib/oracle/12.2/client64/lib
glogin.sql libclntsh.so.12.1 libocci.so libons.so ojdbc8.jar
libclntshcore.so libipc1.so libocci.so.12.1 liboramysql12.so ottclasses.zip
libclntshcore.so.12.1 libmql1.so libociei.so libsqlplusic.so xstreams.jar
libclntsh.so libnnz12.so libocijdbc12.so libsqlplus.so
npm install
/home/prounix/projekte/lotterieservices/lotterie/node_modules/oracledb/lib/oracledb.js:65
throw new Error(nodbUtil.getErrorMessage('NJS-045', nodeInfo));
^
Error: NJS-045: cannot load the oracledb add-on binary for Node.js 8.11.1 (linux, x64)
Node.js require() error was:
DPI-1047: 64-bit Oracle Client library cannot be loaded: "libnsl.so.1: cannot open shared object file: No such file or directory".
why do you think it is glibc 2.27? And if it is, this is likely to be out of scope of the Node.js driver since it would be an Oracle client thing :(
How do you know LD_LIBRARY_PATH is actually set when Node is called?
do you have experience with other platforms?
does SQL*Plus work?
Installations with fedora27 and centos 7 are ok
libnsl.so.1 is part of glibc 2.26 but not on my computer with fedora 28
and glibc 2.27
I linked libnsl.so.2.0.0 to libnsl.so.1 and it started
The joys of being 'bleeding edge'. Thanks for bringing it up so others can benefit.
This is an OCI thing (and I've noted it) so I'll close this issue as it's out of scope for node-oracledb.
Hey @volkmarbuehringer, I'm a Fedora 28 user and I'm facing the same problem but with the cx_Oracle. Please, could you provide more detail about your workaround?
I removed the oracle-instanclient 11.2 and installed the 12.2 and executed the following commands:
ln -s /usr/lib64/libnsl.so.2.0.0 /usr/lib64/libnsl.so.1
ln -s /usr/lib/libnsl.so.2.0.0 /usr/lib/libnsl.so.1
Thank you @volkmarbuehringer.
ln Fedora28 libnsl has been relocated from the glibc (2.27) RPM to libnsl2-1.2.0-2.20180605git4a062cf.fc28.i686 (32-bit) and it is version 2.
Creating a symbolic link to so.1 is a bandaid at best.
It'll be interesting to see how our DB build team handles this when/if the libnsl change makes it to the supported Linux platforms.
I removed the oracle-instanclient 11.2 and installed the 12.2 and executed the following commands:
ln -s /usr/lib64/libnsl.so.2.0.0 /usr/lib64/libnsl.so.1 ln -s /usr/lib/libnsl.so.2.0.0 /usr/lib/libnsl.so.1Thank you @volkmarbuehringer.
Whoaaaaaaaaa thanks guys @volkmarbuehringer and @rafaelreuber
I removed the oracle-instanclient 11.2 and installed the 12.2 and executed the following commands:
ln -s /usr/lib64/libnsl.so.2.0.0 /usr/lib64/libnsl.so.1 ln -s /usr/lib/libnsl.so.2.0.0 /usr/lib/libnsl.so.1Thank you @volkmarbuehringer.
Thank you
Instead of creating links, install the libnsl package: yum install -y libnsl
Most helpful comment
I removed the oracle-instanclient 11.2 and installed the 12.2 and executed the following commands:
Thank you @volkmarbuehringer.