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