npm install, node-gyp build error on only one of two identical machines

I’m trying to run npm install on an Ubuntu 14.04 VPS but it keeps failing on installing karma.
The command npm install is executed from a Jenkins build step but also fails from the command line when I log in as jenkins user.
The Jenkins server invokes a deployment through Capistrano on another VPS (production server) which is, as far as I know, as good as identical to the first one.

Strangely, npm install is also run after deployment on the production server (the second VPS) and here it runs fine.

  • “aapt” IOException error=2, No such file or directory" why can't I build my gradle on jenkins?
  • how to get the BUILD_USER in Jenkins when job triggered by timer
  • How to stop CI builds in Jenkins from accidentally publishing to release repository?
  • Jenkins after restart runs spec on deleted branches
  • Jenkins Build Script exits after Google Test execution
  • SSH Login with Password in URL
  • Here’s the error:

    ws@0.5.0 install /var/lib/jenkins/workspace/bitbuilders-cms/node_modules/karma/node_modules/
    (node-gyp rebuild 2> builderror.log) || (exit 0)

    When I check builderror.log in this directory it says:

    In file included from ../src/
    ../node_modules/nan/nan.h: In function 'v8::Local<v8::Signature> NanNew(v8::Handle<v8::FunctionTemplate>, int, v8::Handle<v8::FunctionTemplate>*)':
    ../node_modules/nan/nan.h:207:78: error: no matching function for call to 'v8::Signature::New(v8::Isolate*, v8::Handle<v8::FunctionTemplate>&, int&, v8::Handle<v8::FunctionTemplate>*&)'
     return v8::Signature::New(v8::Isolate::GetCurrent(), receiver, argc, argv);
    ../node_modules/nan/nan.h:207:78: note: candidate is:
    In file included from ../src/
    /var/lib/jenkins/.node-gyp/2.0.2/deps/v8/include/v8.h:4188:27: note: static v8::Local<v8::Signature> v8::Signature::New(v8::Isolate*, v8::Handle<v8::FunctionTemplate>)
       static Local<Signature> New(
    /var/lib/jenkins/.node-gyp/2.0.2/deps/v8/include/v8.h:4188:27: note:       candidate expects 2 arguments, 4 provided
    ../src/ In static member function 'static void BufferUtil::Initialize(v8::Handle<v8::Object>)':
    ../src/ warning: 'v8::Local<v8::String> NanSymbol(const char*, int)' is deprecated (declared at ../node_modules/nan/nan.h:616) [-Wdeprecated-declarations]
     target->Set(NanSymbol("BufferUtil"), t->GetFunction());
    ../src/ warning: 'v8::Local<v8::String> NanSymbol(const char*, int)' is deprecated (declared at ../node_modules/nan/nan.h:616) [-Wdeprecated-declarations]
     target->Set(NanSymbol("BufferUtil"), t->GetFunction());
    make: *** [Release/] Error 1
    gyp ERR! build error
    gyp ERR! stack Error: `make` failed with exit code: 2
    gyp ERR! stack     at ChildProcess.onExit (/var/lib/jenkins/.nvm/versions/io.js/v2.0.2/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:269: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 (child_process.js:1009:12)
    gyp ERR! System Linux 3.2.0-56-generic
    gyp ERR! command "/var/lib/jenkins/.nvm/versions/io.js/v2.0.2/bin/iojs" "/var/lib/jenkins/.nvm/versions/io.js/v2.0.2/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
    gyp ERR! cwd /var/lib/jenkins/workspace/bitbuilders-cms/node_modules/karma/node_modules/
    gyp ERR! node -v v2.0.2
    gyp ERR! node-gyp -v v1.0.3
    gyp ERR! not ok

    When I run node-gyp rebuild it gives me the same output.

    Again, on the other machine it runs fine.

    They both run:

    • ubuntu 14.04
    • io.js 2.0.2
    • npm 2.9.0
    • GNU Make 3.81
    • python 2.7.6
    • gcc 4.8.2
    • node-gyp 1.0.3
    • nvm 0.25.2

    What I have tried so far

    I globally installed node-gyp (npm install -g node-gyp) and running node 0.12.3.
    Before installing I ran:

    • npm cache clean
    • rm -rf node_modules
    • rm -rf ~/.node-gyp

    On the VPS where npm install gives this error I cannot run any gulp tasks aftwerwards since it complains it cannot find certain npm modules.
    On this machine npm install is run as user jenkins.

    On the other VPS where npm install runs fine, the subsequent gulp task also runs without errors.
    On this machine, npm install is executed through Capistrano as user www-data. They both use shell /bin/bash.

    Unfortunately the problem remains.

    What is going wrong here?
    Any help is greatly appreciated!

  • How do I save a report to a new location every time I run a testrunner script in CLI - SOAPUI
  • Jenkins deploy war file to Tomcat 8
  • What classpath does maven set for different goals? Can you provide a link to official docs?
  • MSBuild : Unrecognized Publish Profile Visual Studio 2017
  • First time using node.js - “ReferenceError: node is not defined”
  • Triggering Jenkins after TFS build
  • One Solution collect form web for “npm install, node-gyp build error on only one of two identical machines”

    After successfully running npm install and Karma through Jenkins on a VM, I came to the conclusion that something had to be seriously borked on the VPS that was giving me trouble.
    I reinstalled Ubuntu 14.04 and the rest on the VPS and now everything runs fine.

    I also noticed that after the reinstall I didn’t need to explicitly start ssh-agent and add my ssh key anymore (eval ssh-agent -s and ssh-add [key]) to start deployment on the production server.
    Maybe this is not related at all, but if anyone runs into similar problems this might be of help.

    Update: As an addition, I found this posting of someone who faced the same problem. The solution appears to be to increase the size of the swap-file. I haven’t tried this but it might be the right solution:

    Git Baby is a git and github fan, let's start git clone.