私はnode.js
とそのパッケージ管理システムとその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++
です。
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
が で見つかっnode-gyp
た$PATH
ため、古いバージョンのfibers
が構築されました。少なくとも私はそう思う。