libxmljs: Error: Could not locate the bindings file.

Hi, I tried installing libxmljs on a CentOS6.5 server and received the following error:

/opt/node-server-qa/node_modules/libxmljs/node_modules/bindings/bindings.js:91
  throw err
        ^
Error: Could not locate the bindings file. Tried:
 → /opt/node-server-qa/node_modules/libxmljs/build/xmljs.node
 → /opt/node-server-qa/node_modules/libxmljs/build/Debug/xmljs.node
 → /opt/node-server-qa/node_modules/libxmljs/build/Release/xmljs.node
 → /opt/node-server-qa/node_modules/libxmljs/out/Debug/xmljs.node
 → /opt/node-server-qa/node_modules/libxmljs/Debug/xmljs.node
 → /opt/node-server-qa/node_modules/libxmljs/out/Release/xmljs.node
 → /opt/node-server-qa/node_modules/libxmljs/Release/xmljs.node
 → /opt/node-server-qa/node_modules/libxmljs/build/default/xmljs.node
 → /opt/node-server-qa/node_modules/libxmljs/compiled/0.10.29/linux/x64/xmljs.node
    at bindings (/opt/node-server-qa/node_modules/libxmljs/node_modules/bindings/bindings.js:88:9)
    at Object.<anonymous> (/opt/node-server-qa/node_modules/libxmljs/lib/bindings.js:1:99)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/opt/node-server-qa/node_modules/libxmljs/index.js:4:16)
    at Module._compile (module.js:456:26)

Everything seemed to build ok, and I tried rebuilding several times. (Sorry for the long paste):

$ node-gyp rebuild
gyp info it worked if it ends with ok
gyp info using node-gyp@0.10.6
gyp info using node@0.10.29 | linux | x64
gyp info spawn python
gyp info spawn args [ '/usr/bin/gyp',
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   '/opt/node-server-qa/node_modules/libxmljs/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/lib/node_modules/node-gyp/addon-rpm.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/share/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/usr/share/node',
gyp info spawn args   '-Dmodule_root_dir=/opt/node-server-qa/node_modules/libxmljs',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory `/opt/node-server-qa/node_modules/libxmljs/build'
  CC(target) Release/obj.target/libxml/vendor/libxml/buf.o
  CC(target) Release/obj.target/libxml/vendor/libxml/catalog.o
  CC(target) Release/obj.target/libxml/vendor/libxml/chvalid.o
  CC(target) Release/obj.target/libxml/vendor/libxml/dict.o
  CC(target) Release/obj.target/libxml/vendor/libxml/encoding.o
  CC(target) Release/obj.target/libxml/vendor/libxml/entities.o
  CC(target) Release/obj.target/libxml/vendor/libxml/error.o
  CC(target) Release/obj.target/libxml/vendor/libxml/globals.o
  CC(target) Release/obj.target/libxml/vendor/libxml/hash.o
  CC(target) Release/obj.target/libxml/vendor/libxml/HTMLparser.o
  CC(target) Release/obj.target/libxml/vendor/libxml/HTMLtree.o
  CC(target) Release/obj.target/libxml/vendor/libxml/legacy.o
  CC(target) Release/obj.target/libxml/vendor/libxml/list.o
  CC(target) Release/obj.target/libxml/vendor/libxml/parser.o
../vendor/libxml/parser.c: In function ‘xmlParseInNodeContext’:
../vendor/libxml/parser.c:13492: warning: pointer targets in passing argument 1 of ‘xmlFindCharEncodingHandler’ differ in signedness
../vendor/libxml/include/libxml/encoding.h:175: note: expected ‘const char *’ but argument is of type ‘const xmlChar *’
  CC(target) Release/obj.target/libxml/vendor/libxml/parserInternals.o
  CC(target) Release/obj.target/libxml/vendor/libxml/pattern.o
  CC(target) Release/obj.target/libxml/vendor/libxml/relaxng.o
  CC(target) Release/obj.target/libxml/vendor/libxml/SAX2.o
  CC(target) Release/obj.target/libxml/vendor/libxml/SAX.o
  CC(target) Release/obj.target/libxml/vendor/libxml/tree.o
  CC(target) Release/obj.target/libxml/vendor/libxml/threads.o
  CC(target) Release/obj.target/libxml/vendor/libxml/uri.o
  CC(target) Release/obj.target/libxml/vendor/libxml/valid.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xinclude.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xlink.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xmlIO.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xmlmemory.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xmlmodule.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xmlreader.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xmlregexp.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xmlsave.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xmlschemas.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xmlschemastypes.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xmlstring.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xmlunicode.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xmlwriter.o
  CC(target) Release/obj.target/libxml/vendor/libxml/xpath.o
../vendor/libxml/trionan.c:218: warning: ‘trio_is_negative’ defined but not used
  CC(target) Release/obj.target/libxml/vendor/libxml/xpointer.o
  AR(target) Release/obj.target/vendor/libxml/xml.a
  CXX(target) Release/obj.target/xmljs/src/libxmljs.o
  CXX(target) Release/obj.target/xmljs/src/xml_attribute.o
  CXX(target) Release/obj.target/xmljs/src/xml_document.o
  CXX(target) Release/obj.target/xmljs/src/xml_element.o
  CXX(target) Release/obj.target/xmljs/src/xml_comment.o
  CXX(target) Release/obj.target/xmljs/src/xml_namespace.o
  CXX(target) Release/obj.target/xmljs/src/xml_node.o
  CXX(target) Release/obj.target/xmljs/src/xml_sax_parser.o
  CXX(target) Release/obj.target/xmljs/src/xml_syntax_error.o
  CXX(target) Release/obj.target/xmljs/src/xml_xpath_context.o
  SOLINK(target) Release/obj.target/xmljs.node
  SOLINK(target) Release/obj.target/xmljs.node: Finished
  COPY Release/lib.target/xmljs.node
make: Leaving directory `/opt/node-server-qa/node_modules/libxmljs/build'
gyp info ok

So I investigated and tried copying cp build/Release/lib.target/xmljs.node build/xmljs.node from within node_modules/libxmljs/ and things started working. Not sure what the issue is with the bindings file not being copied to the proper location, but thought someone should know. Thanks.

About this issue

  • Original URL
  • State: closed
  • Created 10 years ago
  • Reactions: 1
  • Comments: 22 (1 by maintainers)

Commits related to this issue

Most upvoted comments

I ran into the same error on Fedora 20:

$ node -v          
v0.10.32
$ npm -v           
1.3.6

After rebuilding it worked fine for me, though:

$ sudo npm install -g node-gyp
$ cd node_modules/libxmljs
$ node-gyp rebuild

I can paste the rebuild output, if useful.

Is anyone still affected by this issue?

this one worked for me sudo rm -rf node_modules/ npm install bindings thanks @masselit

I had same problem just try that: projectToto > $ sudo rm -rf node_modules/ projectToto > $ npm install bindings

npm about binding -> https://www.npmjs.com/package/bindings

Well, I tried the solutions above but none did work for me. So I solved it my way like this: I changed node_modules/libxmls/lib/bindings.js from

module.exports = require('bindings')('xmljs');

to

module.exports = require('bindings')({
  "bindings": "xmljs",
  "module_root": process.cwd() + "/node_modules/libxmljs",
});

Okay, it’s not a bulletproof solution but it works for me. If anybody knows how to make this cleaner I want to hear it.

I am facing this issue as well. My OS is based on Ubuntu (which is based on Debian)

lsb_release -a

No LSB modules are available. Distributor ID: elementary Description: elementary OS 0.4 Loki Release: 0.4 Codename: loki

node --version && npm --version

v6.10.2 3.10.10

"libxmljs": "^0.18.4",

Edit:

rm node_modules/ && yarn # (npm install)

gives me:

node_modules/libxmljs/build/Release/xmljs.node’ was compiled against a different Node.js version using NODE_MODULE_VERSION 48. This version of Node.js requires NODE_MODULE_VERSION 53. Please try re-compiling or re-installing the module (for instance, using npm rebuild ornpm install).

Edit 2:

npm rebuild --update-binary

gives me:

node-pre-gyp http GET https://github.com/libxmljs/libxmljs/releases/download/v0.18.4/node-v48-linux-x64.tar.gz node-pre-gyp ERR! Tried to download(undefined): https://github.com/libxmljs/libxmljs/releases/download/v0.18.4/node-v48-linux-x64.tar.gz node-pre-gyp ERR! Pre-built binaries not found for libxmljs@0.18.4 and node@6.10.2 (node-v48 ABI) (falling back to source compile with node-gyp) node-pre-gyp http getaddrinfo ENOTFOUND github.com github.com:443

Edit 3: Relates to #463.

Edit 4: I updated my NodeJS/NPM…

node --version && npm --version

v7.9.0 4.2.0

Now instead of NODE_MODULE_VERSION 48, it complains about NODE_MODULE_VERSION 51, which apparently must be 53. I already updated to the latest version…

This is tiring.

Likely a node-gyp issue or possibly some permissions issue. Do not think this is libxmljs at fault here.

FWIW, this is still happening for me:

  • Node 4.4
  • Debian sid
  • gwicke@7e1ceaf still fixes it.