【问题标题】:Trying to install Rails 3, getting a strange "Ruby upgrade" notice尝试安装 Rails 3,收到奇怪的“Ruby 升级”通知
【发布时间】:2010-02-11 01:20:15
【问题描述】:

我正在尝试让我的计算机(Mac OS X,运行 Leopard)运行最新版本的 Rails。在此之前,我有 2.3.5。几天前我尝试按照一些说明进行操作,但似乎没有取得太大进展。现在,我不能在 Rails 中做任何事情。你马上就会明白我的意思。

理论上,我拥有最新版本的 Ruby:

$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9]

$ sudo ruby -v
Password:
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9]

但如果我尝试运行 Rails,我会收到以下错误消息:

$ rails testapp03
Rails requires Ruby version 1.8.7 or later.
You're running 1.8.6 (2008-08-11); please upgrade to continue.

如果我尝试查看我使用的是哪个版本的 Rails,我会得到相同的结果:

$ rails -v
Rails requires Ruby version 1.8.7 or later.
You're running 1.8.6 (2008-08-11); please upgrade to continue.

如果这些有用:

$ which ruby
/opt/local/bin/ruby

$ sudo which ruby
Password:
/opt/local/bin/ruby

$ which rails
/usr/bin/rails

那么,问题是:我做了什么,我需要做什么才能让 Ruby / RubyGems / Rails 在我的计算机上启动并运行?

【问题讨论】:

    标签: ruby-on-rails ruby installation


    【解决方案1】:

    which gem 返回什么?

    很可能,您的 Ruby 安装指向 /opt/local/bin/,而 gem 命令仍在引用 /usr/bin/。 当您安装 Gem 时,Gem 保存在 /usr/bin/ 并加载原始系统 Ruby。

    我不知道您是如何安装 Ruby 1.8.7 的,但是我建议您更进一步:删除所有 Ruby 版本(当然除了系统版本)并尝试 RVM

    【讨论】:

    • $ which gem /opt/local/bin/gem 我可能会继续尝试 RVM。我知道 Ryan Bates 在他最新的 Railscast 中支持它。 (如果这是一个愚蠢的问题,我很抱歉:如何删除我所有的 ruby​​ 版本?只需删除文件夹?)
    • Simone,感谢您最初推荐使用 RVM。我在这里使用了教程:pivotallabs.com/users/jsusser/blog/articles/… tutorial ... 它似乎正在工作。我们会看看情况如何。
    【解决方案2】:

    尝试从命令行执行这个命令/opt/local/bin/ruby -v,看看会出现什么版本的ruby。

    接下来通过whereis ruby 找出红宝石的位置。我认为它应该靠近/opt/local/lib/ruby-x.x/gems/...。还可以尝试找出是否在这些目录下安装了 rails。如果没有,您的 rails 可能仍指向旧的 ruby​​。

    还要检查你是否有 /usr/bin/ruby?如果是这样, /usr/bin/ruby -v 的输出是什么? 如果它存在并且 rails 指向那个版本,那么你应该卸载那个 ruby​​ 和 rails,然后使用 /opt/local/bin/ruby 重新安装 rails gem

    【讨论】:

    • $ /opt/local/bin/ruby -v ... 产生 ... ruby​​ 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9] ... $ whereis ruby ... 产量 ... /usr/bin/ruby 所以,如果我理解你的意思,Ruby 1.8.7 和 Rails 3(和 RubyGems 1.3.5)都应该在同一个目录中?
    • 我怀疑是这样。你有/usr/bin/ruby 吗?如果是这样,/usr/bin/ruby -v 的输出是什么?
    • 啊。此输出: ruby​​ 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0] ... 一位朋友建议我删除 Rails,然后尝试重新安装它,想法是然后重新安装它有望使在 opt/local/bin 中的 Rails。删除 Rails 的系统版本有问题吗?
    • 所以你应该卸载那个 ruby​​ 和 rails,然后用 /opt/local/bin/ruby 重新安装 rails gem。干杯。
    • 我以为我有它,但我遇到了一个新问题。我可以创建一个新的 Rails 应用程序,但如果我尝试运行脚本/服务器,我会收到一条奇怪的消息: ... applications $ cd testapp05 ... testapp05 $ script/server ... /Users/Park/.gem/ ruby/1.8/gems/mongrel-1.1.5/lib/http11.bundle: [BUG] 总线错误 ... ruby​​ 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin9] ... 中止陷阱。 .. testapp05 $ script/server ... 知道这指的是什么吗?我以前从未见过“总线错误”。 (???)
    猜你喜欢
    • 2017-08-19
    • 2018-01-17
    • 1970-01-01
    • 2015-10-04
    • 2015-10-01
    • 2023-03-20
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多