ubuntu 服务器 12.04.5 上 npm 安装在 gyp rebuild 时失败

ubuntu 服务器 12.04.5 上 npm 安装在 gyp rebuild 时失败

嗨 [第一个 serverfault 问题,希望这不是一个太愚蠢的问题]

我在 Ubuntu 12.04.5 服务器上进行了设置,仅用于部署 Meteor js 应用程序。之前我的部署模式有效,但在最新的部署模式中出现了问题。

简而言之,这就是我正在做的事情:克隆 Meteor 项目的 git repo > 使用陨石消融器将项目捆绑到“标准”node.js 应用程序 > 安装 npm 模块 > 运行pm2

部署的应用程序并不完美或完成度不够,因此可能会有错误,因此我今天对其进行了更新。当我进入服务器时,情况有点奇怪。我记不清到底出了什么问题,但某些 node.js 程序似乎丢失了 [demeteorizer 不再存在]。我还认为我最近将 Ubuntu nodejs 包更新到了​​ 0.10。[某个版本]。我去全局更新 npm,但 npm 失败了。我最终删除了 nodejs ubuntu 包并安装了 nvm 和最新的 node 版本 [0.11.13]

因此,使用最新的 node 和 npm 版本并重新安装 demeteorizer 和 pm2,我以为我可以成功了。但是,当我npm install在 demeteorized node 应用程序上运行时,node-gyp 重建多个模块失败。以下是其中一个模块的错误日志示例:

> [email protected] install /var/www/naafi_emails/.demeteorized/node_modules/usage
> node-gyp rebuild

make: Entering directory `/var/www/naafi_emails/.demeteorized/node_modules/usage/build'
  CXX(target) Release/obj.target/sysinfo/src/binding.o
../src/binding.cpp: In function ‘void RegisterModule(v8::Handle<v8::Object>)’:
../src/binding.cpp:7:15: error: ‘NewSymbol’ is not a member of ‘v8::String’
../src/binding.cpp:7:75: error: no matching function for call to ‘v8::Number::New(long int)’
../src/binding.cpp:7:75: note: candidate is:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:2061:24: note: static v8::Local<v8::Number> v8::Number::New(v8::Isolate*, double)
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:2061:24: note:   candidate expects 2 arguments, 1 provided
../src/binding.cpp:8:15: error: ‘NewSymbol’ is not a member of ‘v8::String’
../src/binding.cpp:8:80: error: no matching function for call to ‘v8::Number::New(long int)’
../src/binding.cpp:8:80: note: candidate is:
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:2061:24: note: static v8::Local<v8::Number> v8::Number::New(v8::Isolate*, double)
/home/ubuntu/.node-gyp/0.11.13/deps/v8/include/v8.h:2061:24: note:   candidate expects 2 arguments, 1 provided
../src/binding.cpp:15:15: error: ‘NewSymbol’ is not a member of ‘v8::String’
../src/binding.cpp:15:40: error: ‘New’ is not a member of ‘v8::String’
make: *** [Release/obj.target/sysinfo/src/binding.o] Error 1
make: Leaving directory `/var/www/naafi_emails/.demeteorized/node_modules/usage/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/ubuntu/.nvm/v0.11.13/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:110:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1046:12)
gyp ERR! System Linux 3.2.0-67-generic
gyp ERR! command "node" "/home/ubuntu/.nvm/v0.11.13/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /var/www/naafi_emails/.demeteorized/node_modules/usage
gyp ERR! node -v v0.11.13
gyp ERR! node-gyp -v v0.13.0
gyp ERR! not ok 
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /var/www/naafi_emails/.demeteorized/npm-debug.log
npm ERR! not ok code 0

我相信问题可能出在 node-gyp 模块中,但是我不知道为什么现在会发生这个错误,以及如何修复它。

到目前为止,我已确保没有安装 gyp Ubuntu 包,并且还从 ~/ 中删除了 .node-gyp 文件夹以重置其权限。

答案1

“apt-get 安装 make”

这会起作用

相关内容