【问题标题】:dyld: lazy symbol binding failed: Symbol not found: _ruby_run when using herokudyld:惰性符号绑定失败:找不到符号:使用heroku时的_ruby_run
【发布时间】:2014-02-25 20:15:21
【问题描述】:

我在安装了最新版本的 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

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

【问题讨论】:

    标签: ruby-on-rails ruby postgresql heroku


    【解决方案1】:

    我遇到了同样的问题,这使我无法使用 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 网站解释了如何重新安装它)。

    【讨论】:

      【解决方案2】:

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

      调整您的DYLD_LIBRARY_PATH 使/usr/local/lib/usr/lib 之前,因此/usr/local/lib 中的libruby.dylib 被链接器找到并首选。或者直接使用install_name_tool修改/usr/local/bin/ruby上的库路径。

      【讨论】:

        猜你喜欢
        • 2011-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-18
        • 2016-04-19
        相关资源
        最近更新 更多