【发布时间】:2013-11-17 04:44:21
【问题描述】:
当我尝试运行 ruby -v 或 gem -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
这是在我运行 rvm system 以暂时切换到系统默认 Ruby 之后。 RVM 工作正常,但我特别需要在系统 Ruby 中安装 gem,因为这个问题我不能。
有人知道为什么吗?这似乎是某种与 Ruby 的链接问题,但我不知道如何解决。
我运行了which ruby,此时它位于“/usr/local/bin/ruby”中。
我在“/usr/lib/”中检查了 Ruby,它指向我的系统 Ruby:“../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/lib/ruby”
任何帮助将不胜感激。
【问题讨论】:
-
你没有运行系统Ruby;那是
/usr/bin/ruby。由于您正在运行/usr/local/bin/ruby,我猜您正在使用 Homebrew,因为这是放置 Ruby 的地方。 Mavericks 很可能破坏了您的 Homebrew 安装;我不得不自己重新安装很多 MacPorts。如果您不使用 Homebrew,则该 Ruby 来自其他非 Apple 源,您可能需要重新安装它。 -
系统 Ruby 不应该在 /usr/local/bin,它应该在 /usr/bin。 /usr/local 是为非供应商提供的代码保留的,这意味着您在 Mac 上添加的内容。 为什么你需要向系统Ruby添加一些东西? RVM 的全部意义在于,您永远不需要接触系统,您将它留给 Apple 或操作系统供应商,想要它。
-
吉姆,我正在运行自制软件。 Brew 工作正常,那么,还有其他问题吗?不知道如何找到/解决这个问题。 Tin Man,我正在尝试使用一个名为 CodeKit 的应用程序。我需要它指向外部 gem 可执行文件,它拒绝指向 rvm 安装的 gem。它需要使用系统ruby安装的gem。
-
吉姆,我想通了,谢谢。当您说重新安装时,我以为您的意思是自制软件。然后我意识到你的意思是 Ruby,所以我重新安装并做了一个强制链接,错误消息消失了。仍然无法弄清楚如何运行系统默认的...尝试修改〜/ .bash_profile $PATH,但无法使其正常工作。
标签: ruby macos osx-mavericks