我无法通过节点npm(使用sudo)在topverjson上安装。我安装了Xcode命令行工具,尝试了各种解决方案,但没有运气。这是我的输出:
> contextify@0.1.6 install /usr/local/lib/node_modules/topojson/node_modules/d3/node_modules/jsdom/node_modules/contextify
> node-gyp rebuild
CXX(target) Release/obj.target/contextify/src/contextify.o
cc1plus: error: unrecognized command line option "-arch"
make: *** [Release/obj.target/contextify/src/contextify.o] Error 1
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:267:23)
gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:789:12)
gyp ERR! System Darwin 13.0.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/topojson/node_modules/d3/node_modules/jsdom/node_modules/contextify
gyp ERR! node -v v0.10.24
gyp ERR! node-gyp -v v0.12.1
gyp ERR! not ok
....
npm ERR! contextify@0.1.6 install: `node-gyp rebuild`
npm ERR! Exit status 1
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 "node" "/usr/local/bin/npm" "install" "-g" "topojson"
npm ERR! cwd /Users/mattmosier
npm ERR! node -v v0.10.24
npm ERR! npm -v 1.3.21
npm ERR! code ELIFECYCLE
....
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/mattmosier/npm-debug.log
npm ERR! not ok code 0
有什么想法吗?
答案 0 :(得分:1)
我最终发现问题是双重的。
1)我的gcc编译器版本已经过时了。当最新版本为4.9时,我使用的是4.5。我更新了这个(Homebrew)并认为我会清楚。不。
2)我跑which gcc
并发现它仍指向我装载Macports的旧版本。因此,没有使用较新版本的gcc和Xcode命令行工具(Macports将所有内容都放入/opt/local/bin
,而不是/usr/local/bin
)。我通过从/opt/local/bin
移除/opt/local/sbin
和$PATH
来更正了问题。在此之后,sudo npm install -g topojson
效果很好。