SAP / node-rfc

Asynchronous, non-blocking SAP NW RFC SDK bindings for Node.js
Apache License 2.0
252 stars 73 forks source link

Error: libdl.so.1: cannot open shared object file: No such file or directory #23

Closed hmonadjem closed 7 years ago

hmonadjem commented 7 years ago

Hi everyone,

i tried on ubuntu and debian, and get on both systems the following error, can anybody help?

module.js:434
  return process.dlopen(module, path._makeLong(filename));
                 ^

Error: libdl.so.1: cannot open shared object file: No such file or directory
    at Error (native)
    at Object.Module._extensions..node (module.js:434:18)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/home/blablub/node_modules/node-rfc/index.js:6:11)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
bsrdjan commented 7 years ago

could you please describe what do you try to do and what fails, like installation or nodejs test app ? if test script, please attach.

hmonadjem commented 7 years ago

Hi @bsrdjan

I also get the same error when my demo file contains only:

"use strict";

var rfc = require('node-rfc');

Basically i do every step what is documented in the travis file. My Node Version is 4.6.2.

sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update -q
sudo apt-get install g++-4.8 -y
wget http://archive.ubuntu.com/ubuntu/pool/main/e/eglibc/libc6-dev_2.19-0ubuntu6_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/e/eglibc/libc6_2.19-0ubuntu6_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/e/eglibc/libc-dev-bin_2.19-0ubuntu6_amd64.deb
sudo dpkg -i libc*.deb
dpkg -s libc6-dev

Download the nwrfcsdk and move it to /usr/local/sap

sudo mkdir -p /usr/local/sap
sudo mv nwrfcsdk /usr/local/sap
echo "/usr/local/sap/nwrfcsdk/lib" | sudo tee /etc/ld.so.conf.d/nwrfcsdk.conf
sudo ldconfig
export SAPNWRFC_HOME=/usr/local/sap/nwrfcsdk

As i said, i tried exactly the same on debian and ubuntu, still getting the same error.

bsrdjan commented 7 years ago

The travis.yml serves for internal testing and deployment only, not supposed to be used as an installation guide.

Why not install the node-rfc using supported methods, like npm install, as described in "Install" section of README ? Or build from source ?

hmonadjem commented 7 years ago

Hi @bsrdjan,

thank you for your quick reply!

When I try npm install i get the same error like above and when i try node-gyp configure build i get following response.

gyp info it worked if it ends with ok
gyp info using node-gyp@3.5.0
gyp info using node@4.6.2 | linux | x64
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp http GET https://nodejs.org/dist/v4.6.2/node-v4.6.2-headers.tar.gz
gyp http 200 https://nodejs.org/dist/v4.6.2/node-v4.6.2-headers.tar.gz
gyp http GET https://nodejs.org/dist/v4.6.2/SHASUMS256.txt
gyp http 200 https://nodejs.org/dist/v4.6.2/SHASUMS256.txt
gyp info spawn /usr/bin/python2
gyp info spawn args [ '/root/.nvm/versions/node/v4.6.2/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/root/MDM/node-rfc/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/root/.nvm/versions/node/v4.6.2/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/root/.node-gyp/4.6.2/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/root/.node-gyp/4.6.2',
gyp info spawn args   '-Dnode_gyp_dir=/root/.nvm/versions/node/v4.6.2/lib/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=node.lib',
gyp info spawn args   '-Dmodule_root_dir=/root/MDM/node-rfc',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp: Undefined variable module_name in binding.gyp while trying to load binding.gyp
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/root/.nvm/versions/node/v4.6.2/lib/node_modules/node-gyp/lib/configure.js:308:16)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:12)
gyp ERR! System Linux 3.16.0-0.bpo.4-amd64
gyp ERR! command "/root/.nvm/versions/node/v4.6.2/bin/node" "/root/.nvm/versions/node/v4.6.2/bin/node-gyp" "configure" "build"
gyp ERR! cwd /root/MDM/node-rfc
gyp ERR! node -v v4.6.2
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok 
bsrdjan commented 7 years ago

Hi Hamid,

regarding the initial libdl.so error I am not sure, could not reproduce. Could you please post the output of locate libdl.so ?

Regarding the node-gyp configure build issue, please use the node-pre-gyp instead of node-gyp and let me know the result. We switched to node-pre-gyp and the syntax is different,

hmonadjem commented 7 years ago

Hi Srdjan,

thanks, i did both:

locate libdl.so
/lib/x86_64-linux-gnu/libdl.so.2
/usr/lib/x86_64-linux-gnu/libdl.so
/var/www/vhosts/chroot/lib/libdl.so.2
/usr/bin/ld: errno: TLS definition in /lib/x86_64-linux-gnu/libc.so.6 section .tbss mismatches non-TLS reference in /usr/local/sap/nwrfcsdk/lib/libsapnwrfc.so
/lib/x86_64-linux-gnu/libc.so.6: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [linux_x64/rfc.node] Error 1
make: Leaving directory `/root/MDM/node-rfc/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/root/.nvm/versions/node/v4.6.2/lib/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:12)
gyp ERR! System Linux 3.16.0-0.bpo.4-amd64
gyp ERR! command "/root/.nvm/versions/node/v4.6.2/bin/node" "/root/.nvm/versions/node/v4.6.2/lib/node_modules/node-gyp/bin/node-gyp.js" "build" "--module=/root/MDM/node-rfc/build/rfc/rfc.node" "--module_name=rfc" "--module_path=/root/MDM/node-rfc/build/rfc"
gyp ERR! cwd /root/MDM/node-rfc
gyp ERR! node -v v4.6.2
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok 
node-pre-gyp ERR! build error 
node-pre-gyp ERR! stack Error: Failed to execute '/root/.nvm/versions/node/v4.6.2/bin/node /root/.nvm/versions/node/v4.6.2/lib/node_modules/node-gyp/bin/node-gyp.js build --module=/root/MDM/node-rfc/build/rfc/rfc.node --module_name=rfc --module_path=/root/MDM/node-rfc/build/rfc' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/root/.nvm/versions/node/v4.6.2/lib/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at emitTwo (events.js:87:13)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:854:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:222:5)
node-pre-gyp ERR! System Linux 3.16.0-0.bpo.4-amd64
node-pre-gyp ERR! command "/root/.nvm/versions/node/v4.6.2/bin/node" "/root/.nvm/versions/node/v4.6.2/bin/node-pre-gyp" "configure" "build"
node-pre-gyp ERR! cwd /root/MDM/node-rfc
node-pre-gyp ERR! node -v v4.6.2
node-pre-gyp ERR! node-pre-gyp -v v0.6.33
node-pre-gyp ERR! not ok 
bsrdjan commented 7 years ago

google for "TLS definition in /lib/x86_64-linux-gnu/libc.so.6" finds posts related to errno.h include:

the errno.h looks however properly included in sapuc.h and not like an issue here.

Which platform and compiler you are using, like Linux release/version and gcc ? Is it a docker container perhaps ?

bsrdjan commented 7 years ago

Close due to inactivity.