npm install, ошибка сборки node-gyp только на одной из двух одинаковых машин

Я пытаюсь запустить npm install на Ubuntu 14.04 VPS, но он продолжает терпеть неудачу при установке кармы. Команда npm install выполняется с этапа сборки Jenkins, но также выходит из командной строки, когда я вхожу в систему как пользователь jenkins. Сервер Jenkins вызывает развертывание через Capistrano на другом VPS (производственном сервере), который, насколько я знаю, столь же хорош, как и первый.

Странно, npm install также запускается после развертывания на производственном сервере (второй VPS), и здесь он работает нормально.

Вот ошибка:

ws@0.5.0 установить /var/lib/jenkins/workspace/bitbuilders-cms/node_modules/karma/node_modules/socket.io/node_modules/engine.io/node_modules/ws (node-gyp rebuild 2> builderror.log) | | (выход 0) Убит

Когда я проверяю builderror.log в этом каталоге, он говорит:

In file included from ../src/bufferutil.cc:15:0: ../node_modules/nan/nan.h: In function 'v8::Local NanNew(v8::Handle, int, v8::Handle*)': ../node_modules/nan/nan.h:207:78: error: no matching function for call to 'v8::Signature::New(v8::Isolate*, v8::Handle&, int&, v8::Handle*&)' 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/bufferutil.cc:7:0: /var/lib/jenkins/.node-gyp/2.0.2/deps/v8/include/v8.h:4188:27: note: static v8::Local v8::Signature::New(v8::Isolate*, v8::Handle) static Local New( ^ /var/lib/jenkins/.node-gyp/2.0.2/deps/v8/include/v8.h:4188:27: note: candidate expects 2 arguments, 4 provided ../src/bufferutil.cc: In static member function 'static void BufferUtil::Initialize(v8::Handle)': ../src/bufferutil.cc:32:17: warning: 'v8::Local NanSymbol(const char*, int)' is deprecated (declared at ../node_modules/nan/nan.h:616) [-Wdeprecated-declarations] target->Set(NanSymbol("BufferUtil"), t->GetFunction()); ^ ../src/bufferutil.cc:32:39: warning: 'v8::Local NanSymbol(const char*, int)' is deprecated (declared at ../node_modules/nan/nan.h:616) [-Wdeprecated-declarations] target->Set(NanSymbol("BufferUtil"), t->GetFunction()); ^ make: *** [Release/obj.target/bufferutil/src/bufferutil.o] 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/socket.io/node_modules/engine.io/node_modules/ws gyp ERR! node -v v2.0.2 gyp ERR! node-gyp -v v1.0.3 gyp ERR! not ok 

Когда я запускаю node-gyp rebuild, он дает мне тот же результат.

Опять же, на другой машине он работает нормально.

Они оба работают:

  • 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

То, что я пробовал до сих пор

Я глобально установил node-gyp (npm install -g node-gyp) и запущенный узел 0.12.3. Перед установкой я запустил:

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

На VPS, где npm install дает эту ошибку, я не могу запускать какие-либо задачи gulp aftwerwards, поскольку он жалуется, что не может найти определенные модули npm. На этой машине npm install запускается как пользователь jenkins.

На другом VPS, где установка npm выполняется нормально, последующая задача gulp также выполняется без ошибок. На этой машине npm install выполняется через Capistrano в качестве пользовательских www-данных. Они оба используют shell / bin / bash.

К сожалению, проблема остается.

Что здесь происходит? Любая помощь очень ценится!

После успешного запуска npm install и Karma через Jenkins на виртуальной машине я пришел к выводу, что что-то должно быть серьезно связано с VPS, что вызывало у меня проблемы. Я переустановил Ubuntu 14.04, а остальное на VPS, и теперь все работает нормально.

Я также заметил, что после переустановки мне не нужно явно запускать ssh-agent и больше добавлять свой ssh-ключ ( eval ssh-agent -s и ssh-add [key] ), чтобы начать развертывание на рабочем сервере. Может быть, это вообще не связано, но если кто-нибудь столкнется с подобными проблемами, это может помочь.

Обновление: в качестве дополнения я нашел эту публикацию того, кто столкнулся с той же проблемой. Решение состоит в том, чтобы увеличить размер файла подкачки. Я не пробовал это, но это может быть правильное решение: https://www.digitalocean.com/community/questions/npm-gets-killed-no-matter-what?answer=18115