【问题标题】:"rails s" using Ruby 1.8.7 instead of Ruby 1.9.3 (OS X 10.7.2)“rails s”使用 Ruby 1.8.7 而不是 Ruby 1.9.3 (OS X 10.7.2)
【发布时间】:2012-01-22 06:36:59
【问题描述】:

奇怪的问题,试图弄清楚我的全新安装发生了什么。

我使用自制软件安装了 Ruby 1.9.3。我使用 ruby​​ gems 安装了 Rails 3.2.0。然后,我使用rails new test_app 创建了一个测试应用程序,以确保在测试环境中一切正常。不知何故,rails 环境使用的是 1.8.7 而不是 1.9.3。

在执行ruby -v 时,我明白了:

overcast:test_app joe$ ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]

但是在运行 rails s 时,我得到了这个:

overcast:test_app joe$ rails s
=> Booting WEBrick
=> Rails 3.2.0 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-01-21 23:21:35] INFO  WEBrick 1.3.1
[2012-01-21 23:21:35] INFO  ruby 1.8.7 (2010-01-10) [universal-darwin11.0]

而且,很明显,在 localhost:3000 查看 rails 环境网页时,我显示的是 1.8.7 而不是 1.9.3。根据我在此处找到的一些答案,我已编辑 /etc/paths 以将 /usr/local/bin 置于顶部,但这似乎没有什么不同。

任何帮助将不胜感激!

附录:安装和尝试通过 RVM 使用 Ruby 时也会出现同样的情况。

【问题讨论】:

  • 您应该使用 rvm 并为您的应用创建 gemset。

标签: ruby-on-rails ruby ruby-on-rails-3 macos rubygems


【解决方案1】:

如果你运行的是 mac os x,你已经预装了 ruby​​ 1.8。如果您想安装多个 ruby​​ 版本,请使用 RVM 或 rbenv。

【讨论】:

  • RVM 也会发生同样的事情。我尝试使用 RVM 安装 1.9.2 并将其设置为默认值,以防万一 1.9.3 出现问题。 ruby -v 显示当前选择的 RVM 版本,但 rails s 坚持使用 1.8.7。我会将此添加到问题中,因为这是我考虑过的。
  • rails s 只会启动服务器。您在哪个 ruby​​ 版本下安装了 rails? $which rails 和 $which ruby​​ 给你什么?
  • 分别使用 RVM:/usr/bin/rails 和 /Users/joe/.rvm/rubies/ruby-1.9.2-p290/bin/ruby。没有 RVM,$which ruby​​ 是:/usr/local/bin/ruby
  • 你的 rails gem 需要安装在你使用的 ruby​​ 下,也许使用 gemsets 可以帮助你管理你的 gems 和 ruby​​ 版本。如果您使用的是 RVM,请查看文档。
  • 啊!你知道吗,我认为这就是问题所在!我将回滚并从 RVM 而不是自制程序开始。谢谢!
【解决方案2】:

自制还不错:) 您可以使用rbenv。它是红宝石版本管理器。 我的 MAC OS X 10.8.2 成功案例是:

  • 安装 Homebrew
  • 在 /etc/paths 中更改 PATH(/usr/local/bin 必须是第一个)
  • 使用自制软件安装 rbenv 和 ruby​​-build(它是 rbenv 的插件)
  • 用内容创建 ~/.profile:

    export RBENV_ROOT=/usr/local/opt/rbenv
    
    if which rbenv > /dev/null; then
        eval "$(rbenv init -)"
    fi
    
  • 使用rbenv install 1.9.3-p374安装最后一个稳定的ruby版本

  • 使用rbenv global 1.9.3-p374更改默认的ruby版本
  • 使用 gem update --system 更新 gem(可选)
  • 安装导轨gem install rails
  • ...
  • 利润:)

【讨论】:

    【解决方案3】:
    bundle exec rails server
    

    应该可以正常工作。关闭终端并打开一个新终端也对我有用。

    【讨论】:

      【解决方案4】:

      如果你有多个版本的 ruby​​,我建议你使用RVM

      安装它https://rvm.io/rvm/install

      使用:https://github.com/wayneeseguin/rvm#usage

      要查看所有版本的 ruby​​,请使用“rvm list”

      并设置默认版本“rvm --default version”

      【讨论】:

        【解决方案5】:

        sudo update-alternatives --config gem

        然后选择您的版本!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-31
          相关资源
          最近更新 更多