【发布时间】:2016-11-09 12:27:42
【问题描述】:
我对@987654321@ 及其包管理系统和require 还是很陌生。我在使用npm install 安装了一堆软件包后遇到了以下运行时错误:
ERROR: Couldn't initialise framework "wdio-mocha-framework".
Error: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
(required by <path>.../node_modules/fibers/bin/linux-ia32-v8-5.0/fibers.node)
at Error (native)
我对错误的理解是二进制 fibers.node 编译时使用的 libstdc++ 比运行时可用的 libstdc++ 更新。
在我看来,npm install 确实编译了 fibers.node:
> fibers@1.0.13 install <path>.../node_modules/fibers
> node build.js || nodejs build.js
make[1]: Entering directory `<path>.../node_modules/fibers/build'
<snip some output, including warnings, here that I don't deem relevant>
Installed in `<path>.../node_modules/fibers/bin/linux-ia32-v8-3.14/fibers.node`
但是,我发现在运行时抛出错误的 fibers.node 与编译的不同,我认为这是问题的根源。
编译:
.../linux-ia32-v8-3.14/fibers.node
在运行时使用并失败:
.../linux-ia32-v8-5.0/fibers.node
所以我猜测并希望如果我能说服wdio-mocha-framework 使用本地编译的fibers.node,它会起作用。因此,我的问题是:
- 这样能解决吗?
- 如果是这样,我该如何实现?
- 如果不是,进一步了解和修复此错误的正确方向是什么?也许不是让
3.14在运行时使用,我应该说服5.0在安装时编译?还是……其他?
非常感谢您的帮助。
更新/编辑:
我想我自己解决了这个问题,以防万一有人发现这个可怜的、尘土飞扬的老问题被遗忘在某个书架后面的某个地方......
问题显然是由于在我的环境中并行安装了多个版本的node/node-gyp,并且构建过程,即使它是从较新版本的node 开始的,正在寻找@ $PATH 中的 987654340@ 显然是导致旧版本 fibers 构建的原因。至少,我是这么认为的。
【问题讨论】:
-
您使用哪个版本来管理构建 linux-x64-v8-3.14?由于某种原因,我无法生成该二进制文件。
标签: node.js npm webdriver-io node-fibers