dyld:懒符号绑定失败:未找到符号:_ruby_run使用heroku时

时间:2014-02-25 20:15:22

标签: ruby-on-rails ruby postgresql heroku

安装最新版本的heroku工具带后,我遇到了这个问题。 如果我使用heroku命令,我会收到此错误:

$ heroku -v
dyld: lazy symbol binding failed: Symbol not found: _ruby_run
  Referenced from: /usr/local/bin/ruby
  Expected in: /usr/lib/libruby.dylib

dyld: Symbol not found: _ruby_run
  Referenced from: /usr/local/bin/ruby
  Expected in: /usr/lib/libruby.dylib

Trace/BPT trap: 5

我在OSX 10.9.1上使用ruby 2.1.1p76和Rails 4.0.3运行RVM。我重新安装了rvm,home-brew,从2.0.0更新了ruby。并开始使用postgresql 9.3进行开发。我使用postgresql 9.3进行开发。

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,这使我无法使用Rails或Heroku。改变我的PATH什么也没做。

我的解决方案是从/usr/local/bin/usr/local/lib删除Ruby。具体来说,我将/usr/local/bin/ruby重命名为/usr/local/bin/rubyOLD,并将/usr/local/lib/ruby目录重命名为/usr/local/lib/rubyOLD

由于heroku也安装在/usr/local中并且它指的是/usr/local ruby​​,因此我将/usr/local/bin/heroku重命名为/usr/local/bin/herokuOLD并通过Heroku Toolbelt重新安装。

我还重新安装了rvm(rvm implode完全删除了系统中的rvm,rvm website网站解释了如何重新安装它。)

答案 1 :(得分:1)

您似乎在/usr/local中有一个较新的ruby版本,在/usr中有较旧的版本。来自旧版本的共享库在运行时链接到新版本的二进制文件。

调整DYLD_LIBRARY_PATH,使/usr/local/lib/usr/lib之前,以便链接器找到libruby.dylib中的/usr/local/lib。或者使用install_name_tool直接修改/usr/local/bin/ruby上的库路径。