安装 contextify 时出错-node-gyp 重建失败

Posted

技术标签:

【中文标题】安装 contextify 时出错-node-gyp 重建失败【英文标题】:Error installing contextify- node-gyp rebuild failed 【发布时间】:2014-02-04 14:24:45 【问题描述】:

编辑

我升级了节点并运行了“npm install -g contextify”它看起来安装得很好(没有错误),但是输入“which contextify”什么也没返回。安装 contextify 时的消息:

npm http GET https://registry.npmjs.org/contextify
npm http 304 https://registry.npmjs.org/contextify
npm http GET https://registry.npmjs.org/bindings
npm http 304 https://registry.npmjs.org/bindings

  > contextify@0.1.6 install /usr/local/share/npm/lib/node_modules/contextify
  > node-gyp rebuild

CXX(target) Release/obj.target/contextify/src/contextify.o
SOLINK_MODULE(target) Release/contextify.node
SOLINK_MODULE(target) Release/contextify.node: Finished
contextify@0.1.6 /usr/local/share/npm/lib/node_modules/contextify
└── bindings@1.1.1

原创

我在使用 npm 安装 contextify 时遇到问题:

npm install -g contextify

并收到以下错误消息:

npm http GET https://registry.npmjs.org/contextify
npm http 304 https://registry.npmjs.org/contextify
npm http GET https://registry.npmjs.org/bindings
npm http 304 https://registry.npmjs.org/bindings

> contextify@0.1.6 install /usr/local/share/npm/lib/node_modules/contextify
> node-gyp rebuild

  CXX(target) Release/obj.target/contextify/src/contextify.o
  SOLINK_MODULE(target) Release/contextify.node
  SOLINK_MODULE(target) Release/contextify.node: Finished
/usr/local/Cellar/node/0.10.1/lib/node_modules/npm/bin/node-gyp-bin/node-gyp: line 2: 73593 Segmentation fault: 11  node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@"

npm ERR! contextify@0.1.6 install: `node-gyp rebuild`
npm ERR! `sh "-c" "node-gyp rebuild"` failed with 139
npm ERR! 
npm ERR! Failed at the contextify@0.1.6 install script.
npm ERR! This is most likely a problem with the contextify package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls contextify
npm ERR! There is likely additional logging output above.

npm ERR! System Darwin 13.0.0
npm ERR! command "/usr/local/Cellar/node/0.10.1/bin/node" "/usr/local/bin/npm" "install" "-g" "contextify"
npm ERR! cwd /Users/projects/
npm ERR! node -v v0.10.1
npm ERR! npm -v 1.2.15
npm ERR! code ELIFECYCLE

有人知道这里发生了什么吗?我读到它可能与我的 PYTHON PATH 有关,但我不确定它应该是什么样子。

感谢您的帮助。

【问题讨论】:

你能添加更多的输出吗?它应该说明本节上方的错误是什么。你在小牛队吗? 好的,刚刚添加。我也在小牛队。 看起来这可能是a bug in Node,您尝试过更新的版本吗? v0.10.1 来自近 10 个月前。 更新节点和线程 【参考方案1】:

node-gyp rebuild 也有同样的问题。解决方案是安装 g++

apt-get -y install g++

【讨论】:

【参考方案2】:

原来的问题

分段错误:11 个节点 "dirname "$0"

这似乎是使用 Clang 编译时暴露的 V8 中的一个错误。它已在较新版本的 Node 中得到修复,因此您需要更新。 github问题跟踪here

编辑问题

没有可以运行的contextify 命令行程序,所以which contextify 没有什么可找到的。 contextify 模块旨在通过使用require('contextify') 加载模块在node 中使用。

根据您的描述,您似乎将两件事混为一谈。使用npm install -g 安装的模块是全局安装的,并且可供所有节点应用程序访问,但这并不意味着它们会公开可以在命令行上执行的脚本。 -g只控制模块的安装路径。

模块是否有可以运行的命令行脚本取决于模块的package.json 是否定义了一组bin 命令,例如jshint。当您使用-g 安装时,列出的脚本与node 一起符号链接,因此可以通过您的PATH 访问它们。在没有-g 的情况下安装时,bin 脚本会安装到node_modules/.bin,您必须将该目录添加到您的PATH 才能使脚本正常工作。

【讨论】:

好的,我想我明白你在说什么了。这又带来了一个问题。全局安装软件包时是否必须更改 PATH 中的任何内容? 通常不会。通常,Node 会将自己安装到标准应用程序目录中,该目录已经在您的路径中。 看起来它还不支持 node 4.x:github.com/brianmcd/contextify/issues/180【参考方案3】:

没有像contextify 二进制这样的东西。 /usr/lib/node_modules/contextify/build/Release/ 中有 contextify.node 二进制文件(当在我的 ubuntu 12.04 中全局安装时)。

只需通过 require('contextify') 在您的节点程序中使用该模块,它应该可以工作。

var Contextify = require('contextify');
var sandbox = Contextify(); // returns an empty contextified object.
sandbox.run('var x = 3;');
console.log(sandbox.x); // prints 3
sandbox.dispose();

【讨论】:

我不太确定你在说什么。我在 /usr/lib/local/node_modules 中没有 /contextify。

以上是关于安装 contextify 时出错-node-gyp 重建失败的主要内容,如果未能解决你的问题,请参考以下文章

VS2010 安装Opencv2.3时出错

MySQL 5.7.4 安装结束时出错,提示我密码过期

安装DX文件时出错

由于gulp,Npm安装在semantic-ui上失败

请问R语言在安装pc包时出错是怎么回事

安装SQL SERVER 2008 R2后,运行时出错。