【Ruby on Rails】dyld: lazy symbol binding failed: Symbol not found: というエラーが出たので
bin/rake spec
を走らせた時に以下のようなエラーが出るようになりました
$ ./bin/rake spec dyld: lazy symbol binding failed: Symbol not found: __ZN2v82V821AddGCPrologueCallbackEPFvNS_6GCTypeENS_15GCCallbackFlagsEES1_ Referenced from: /Users/noriyo_tcp/workspace/some-project/vendor/bundle/ruby/2.2.0/extensions/x86_64-darwin-17/2.2.0-static/therubyracer-0.12.1/v8/init.bundle Expected in: flat namespace dyld: Symbol not found: __ZN2v82V821AddGCPrologueCallbackEPFvNS_6GCTypeENS_15GCCallbackFlagsEES1_ Referenced from: /Users/noriyo_tcp/workspace/some-project/vendor/bundle/ruby/2.2.0/extensions/x86_64-darwin-17/2.2.0-static/therubyracer-0.12.1/v8/init.bundle Expected in: flat namespace
therubyracer, libv8, v8 の再インストール
この記事では therubyracer
, libv8
, v8
の再インストールを行なっているが、今回の場合
.bundle/config
で以下のような設定にしているので、実際にはlibv8
のアンインストールと再インストールはしませんでした
# v8@3.15 をbrew でインストールしてあり、オプションでそちらを見に行くように設定 BUNDLE_BUILD__LIBV8: "--with-system-v8" BUNDLE_BUILD__THERUBYRACER: "--with-v8-dir=/usr/local/opt/v8@3.15"
$ bundle exec gem uninstall therubyracer
$ brew reinstall v8@3.15
$ bundle
ちなみに therubyracer
のアンインストール時に undefined method `delete' for #<Bundler::SpecSet:0x007f8613c354b0>
って出るけど大丈夫っぽい http://smellman.hatenablog.com/entry/20121025/1351162613
しかしこれでもダメだった・・・。その他MacOS のrootless
を切ってみるなどしたが、うまく行きませんでしたorz
結局therubyracer をアップデート(0.12.1 -> 0.12.3)
$ bundle update therubyracer