npm install mongodb 失败(似乎与 node-gyp 相关)

npm install mongodb fails (seems node-gyp related)

我有一个 Node.JS 网络服务器托管在我家里的 BeagleBone Black 上,我想将它与 mongodb 连接,所以自然而然的做法是 npm install mongodb

显然,它没有用。我用谷歌搜索但没有找到我的解决方案。

这是命令输出的(部分)内容:

make: *** [Release/obj.target/validation/src/validation.o] Error 1                                                                     
make: Leaving directory `/home/fointard/NodeJs/node_modules/utf-8-validate/build'                                                      
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/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:200:12)
gyp ERR! System Linux 3.8.13-bone72
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/fointard/NodeJs/node_modules/utf-8-validate
gyp ERR! node -v v5.0.0
gyp ERR! node-gyp -v v3.2.1
gyp ERR! not ok
npm WARN install:utf-8-validate utf-8-validate@1.2.1 install: `node-gyp rebuild`
npm WARN install:utf-8-validate Exit status 1

npm WARN ENOENT ENOENT: no such file or directory, open '/home/fointard/NodeJs/package.json'
npm WARN EPEERINVALID mongodb-core@1.2.26 requires a peer of kerberos@~0.0 but none was installed.
npm WARN EPACKAGEJSON /home/fointard/NodeJs No description
npm WARN EPACKAGEJSON /home/fointard/NodeJs No repository field.
npm WARN EPACKAGEJSON /home/fointard/NodeJs No README data
npm WARN EPACKAGEJSON /home/fointard/NodeJs No license field.

node-gyp 似乎无法构建某些依赖项。

uname -a

给予

Linux haystack 3.8.13-bone72 #1 SMP Tue Jun 16 21:36:04 UTC 2015 armv7l GNU/Linux

lsb_release -da

给予

Distributor ID: Debian                                                                                                                 
Description:    Debian GNU/Linux 7.9 (wheezy)                                                                                          
Release:        7.9                                                                                                                    
Codename:       wheezy

有人有见解可以分享吗?非常欢迎!

编辑:我解决了这个问题。似乎问题是由我的 C++ 编译器 (G++ 4.6.x) 引起的,它不支持 C++11.

  1. 从 Debian Wheezy 升级到 Jessie(7.x 到 8.x)
  2. GCC 4.9.2 已经安装,它支持 C++11 而我的旧版本 4.6.x 没有
  3. sudo apt-get install libkrb5-dev:需要构建 node.js kerberos 模块
  4. npm install kerberos : 需要手动安装,因为 npm v3.x+ 不会自行安装
  5. npm install mongodb : 完成

福塔德

你有没有 运行 低于 v0.12 的节点版本?我尝试使用 v0.11.x、v.0.12.x、v.4.x 和 v.5.x 安装 utf-8-validate 包,它在所有除了 v0.11.x,所以这可能就是您的问题所在。使用nvm安装不同版本的节点再试一次!

我解决了这个问题。似乎问题是由我的 C++ 编译器 (G++ 4.6.x) 引起的,它不支持 C++11.

  1. 从 Debian Wheezy 升级到 Jessie(7.x 到 8.x)
  2. GCC 4.9.2 已经安装,它支持 C++11 而我的旧版本 4.6.x 没有
  3. sudo apt-get install libkrb5-dev:需要构建 node.js kerberos 模块
  4. npm install kerberos : 需要手动安装,因为 npm v3.x+ 不会自行安装
  5. npm install mongodb : 完成

福塔德