【问题标题】:How do I upgrade the Ruby version of my project?如何升级我的项目的 Ruby 版本?
【发布时间】:2013-08-22 14:58:43
【问题描述】:

我最近开始使用 Ruby 1.9.3p385 学习 Rails,我正在尝试用它开发一个小项目。

我使用的是 Linux,所以我使用 RVM 安装了 Ruby。

我根据一些教程开发了几页。我想升级我的项目以使用 Ruby 2.0.0。我该怎么办?

我用 RVM 安装了 Ruby 2.0.0:

rvm install 2.0.0

一切似乎都很好,所以我尝试使用它:

rvm use 2.0.0-p247

但是当我尝试使用 rails server 运行我的 Rails 服务器时,我收到以下消息:

bash: rails : command not found

我读过RVM documentation about upgrading Ruby,但我不太明白它的作用;我害怕破坏一切。

它会以使用 Ruby 2.0.0 的方式升级我的项目还是我应该怎么做?

接下来,我还想升级到 Rails v4。

【问题讨论】:

    标签: ruby-on-rails ruby linux rvm version


    【解决方案1】:

    新 Ruby 版本附带的 gemset 是空的。试试这个:

    gem install bundler # this will install bundler
    bundle # this will use bundler to install required gems
    rails server
    

    【讨论】:

    • 一切正常,服务器正在运行。我有“捆绑完成”,然后是一些绿线,这对我来说意味着好,然后是:根据您的 ruby​​ 版本,您可能需要安装 ruby​​ rdoc/ri 数据:= 1.9.2 :无事可做!耶!好吗 ?那么,rvm 文档中的“升级 ruby​​”是什么意思?非常感谢
    • @Tomane 是的,安装 rails 时输出正常。 “升级 ruby​​”中的步骤包括将 gemset 从一个 ruby​​ 版本复制到另一个版本、迁移 gemset 等。
    【解决方案2】:

    您是使用rvm use 2.0.0-p247 还是使用rvm use 2.0.0-p247 --default?后者会将 Ruby v.2.0 设置为系统的默认值。否则,您下次登录系统或打开新的终端窗口时,会将您的 Ruby 恢复为 RVM 的默认值。

    当 RVM 安装新版本的 Ruby 时,它只安装默认的 gem。它可以upgrade a Ruby to another version, and optionally install the existing gems 这样做,但这不是你要求它做的:rvm install 2.0.0 只安装 Ruby。此时,您必须安装所需的其他 gem,其中包括 Rails。

    在安装各种版本的 Ruby 和我喜欢的 gem 时,我的一般做法是使用两个命令行管道转储我现有的 gem,然后(重新)安装它们。首先,我切换到我想要复制其 gem 的现有 Ruby,然后运行:

    gem list | cut -f1 -d' ' > ~/gem_list
    

    然后我切换到新安装的,运行这个:

    xargs gem install < ~/gem_list
    

    这会在 RVM 的命令之外对 gem 进行完全干净的安装。

    为什么?习惯。基于我过去使用 RVM 的一些“经验”而产生的偏执。

    这一切都完成后,我有了全新的 Ruby 和 gem,我将继续运行 bundler 或其他家务活。

    【讨论】:

    • 我使用了第一个(没有 --default),然后注意到我必须对每个新 shell 执行“使用版本”。感谢您的提示和解释
    【解决方案3】:

    当您安装新的 ruby​​ 版本时,您必须重新安装该版本的所有 gem。首先安装捆绑器。然后在您的 rails 根目录中运行 bundle。当您没有遇到任何错误时,您就可以启动 rails 服务器了。祝你好运!

    【讨论】:

      【解决方案4】:

      在应用程序根目录运行bundle install,您需要重新安装新版Ruby的所有依赖项。

      【讨论】:

        猜你喜欢
        • 2012-02-29
        • 1970-01-01
        • 1970-01-01
        • 2016-10-05
        • 2019-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多