4

私は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、それが機能することを推測し、望んでいます。したがって、私の質問は次のとおりです。

  1. それはそれを修正しますか?
  2. もしそうなら、どうすればそれを達成できますか?
  3. そうでない場合、このエラーをさらに理解して修正するために取るべき正しい方向は何ですか? おそらく、実行時に使用される代わりに、インストール時にコンパイルさ3.14れるように説得する必要がありますか? 5.0それとも... その他?

どうぞよろしくお願いいたします。

更新/編集:

私はこれを自分で解決したと思います.誰かがこの貧弱でほこりっぽい古い質問がどこかの棚の後ろに忘れられて横たわっているのを見つけた場合に備えて...

この問題は明らかに、複数のバージョンのnode/node-gypが私の環境に並行してインストールされていたためであり、新しいバージョンの で開始されたにもかかわらず、ビルド プロセスnodeが で見つかっnode-gyp$PATHため、古いバージョンのfibersが構築されました。少なくとも私はそう思う。

4

1 に答える 1