【问题标题】:Ruby fails since Yosemite installed安装优胜美地后 Ruby 失败
【发布时间】:2015-03-11 12:11:41
【问题描述】:

自去年秋天升级到 Yosemite 以来,我没有使用过 ruby​​、vagrant 或 rvm。但是我现在需要在一个项目中使用 Vagrant,所以我运行了最新的包安装程序并尝试运行它。我从红宝石那里得到一个错误。我不确定 rvm 或其他东西是否在 OSX 升级过程中被破坏,所以首先我尝试从 rvm 安装最新的 ruby​​,但这也没有解决我运行 Vagrant 的问题,所以我卸载了 rvm 和所有它知道的红宝石。我应该回到普通的 OSX 红宝石。然后我尝试测试 ruby​​ 看看会发生什么:

$> which ruby
/usr/local/bin/ruby

$> ruby -v
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.i386-darwin14]
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

我尝试运行 Vagrant 的问题似乎是它在 /usr/local/bin/ruby 中查找 ruby​​,因此找不到任何 rvm ruby​​ 并且使用了系统 ruby​​。 dylib 参考是关于什么的?几年前,我安装了 MacPorts 来获取 postresql,但这也无法在升级后幸存下来,至少 port 命令已经消失,并且我已经按照他们网站上的建议将所有旧文件移开作为卸载。我希望这不会影响事情。

这里还有一些其他类似的故障问题,但它们都指向安装 rvm 或 MacPorts 或 HomeBrew 或其他第三方软件包的解决方案。我想要的是 OSX 安装的 ruby​​ 可用并且可以像在我妻子(非开发人员)的 mac 上一样工作。我不是 ruby​​ 开发人员,所以我不想跟上 ruby​​ 和朋友的步伐,我只想让这台机器的默认 ruby​​ 能够正常工作。如果需要,我可以稍后安装 rvm 或类似的。

知道这实际上是如何/为什么搞砸的吗?更重要的是,我如何回到工作状态以便 ruby​​ 运行?实际上,是否有资源描述了这些东西是如何安排和配置的,因为我怀疑任何搞砸的东西都可能出现在其他领域。

【问题讨论】:

    标签: ruby macos vagrant osx-yosemite


    【解决方案1】:

    系统红宝石在

    /usr/bin/ruby
    

    您使用的可能是 Homebrew 安装的。检查/usr/bin/ 中是否有系统红宝石,并删除/usr/local/bin 中的红宝石。在/usr/bin 之前,您的路径中可能有/usr/local/bin

    【讨论】:

    • 啊,我把 /usr/local/bin 的 ruby​​ 移走了,现在我的系统 ruby​​ 运行了。奇怪的是它的日期是 2009 年,所以我不知道它是从哪里来的。我在 .bashrc 顶部回显 PATH 并得到“/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin”,所以它被设置在其他地方?我删除了 vagrant 并重新安装了它,但它仍然以 #!/usr/local/bin/ruby 开头,现在因为没有 ruby​​ 而失败。任何运行 vagrant 的人都知道它为什么这样做?
    • 哦,看来一定是红宝石问题了。嗯。我去了兔子洞。
    • Vagrant 可能有一个配置文件。你的路径没有在别处设置,它就在那里说“/usr/local/bin:/....”这就是为什么它首先在 /usr/local/bin 中查找并在那里找到一个红宝石。
    • 是的,我很困惑,以为你的意思是它应该先有 /usr/bin ! :-) 我认为根本问题是我的宝石都搞砸了。我手动删除了 gem 命令,重新安装了它。从它报告的安装位置运行它,删除了所有我能找到的 gem,然后当我重新获取 shell 时,它神奇地开始工作。我怀疑我有一堆腐烂的 ruby​​ 命令不起作用,但我可以稍后将它们根除。 Vagrant 现在运行没有 ruby​​ 错误,所以我很乐意解决实际问题,谢谢!
    • 很高兴知道。我使用 Rubymine 和 rvm。非常适合管理一切。
    猜你喜欢
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 2015-08-05
    • 1970-01-01
    • 2014-07-29
    相关资源
    最近更新 更多