【问题标题】:Benefits of RVMRVM 的好处
【发布时间】:2011-06-22 13:45:19
【问题描述】:

为什么我应该/不应该使用 RVM?

我是 ruby​​ 语言和整个服务器的新手。我在使用 RVM 安装时遇到了一些问题……所以我现在倾向于不使用它,但它似乎可以让安装过程变得更容易?

我很想听听您对 RVM 的体验以及您对维护服务器的看法。

【问题讨论】:

    标签: ruby rvm


    【解决方案1】:

    即使您不想同时安装多个版本,RVM 也很有用。我是 ruby​​ 爱好者(白天是 PHP :(),我没有理由要使用旧版本,但我仍然使用 RVM。

    安装 ruby​​ 很痛苦。从包管理器(至少在 ubuntu 中)获取它会为您提供一个过时的版本,该版本会更改默认安装目录。除了问题,我什么都没有。

    所以你会想,“我只会从源代码构建它”。从源代码构建需要获取大量依赖项和配置选项。很多时候,我构建 ruby​​ 只是发现我忘记启用 SSL 支持或 readline 支持。

    RVM 负责所有这些。在 3 个左右的命令中,你就有了一个完美构建的 ruby​​ 版本。

    我什至没有介绍 RVM 如何为您管理多个 ruby​​ 安装,这是它的杀手级功能。如果您有这种需求,真的没有其他明智的解决方案。

    【讨论】:

    • 是的,我正在发现这个问题——我担心我有一堆 ruby​​ 的虚拟安装,因为我有点不知道我现在在做什么。 :P
    • 即使您不需要多个 ruby​​ 安装,您也可能需要多个 gemset,模型示例是需要在使用不同 Rails 版本的应用程序上工作。
    • @Mladen:Rubygems 和 bundler 已经为你做了这件事。 Rubygems 允许您保留同一个 gem 的多个版本,并且 bundler 允许您指定要加载的 gem 的版本。
    • @ryeguy:我自己对 bundler 的工作并不多,这如何与 gems 经常安装的可执行文件一起工作?它是否解决了潜在的冲突?
    • @Mladen:好问题。我刚试过。所有 gem 版本的所有 bin 文件仍然可以访问,但您必须完全限定路径才能访问它们,因为只有最新版本的二进制文件在您的路径上。所以在可执行文件的情况下,rvm 可能会更好。
    【解决方案2】:

    RVM 非常棒,因为它允许您安装不同的版本,而无需触及系统的默认 Ruby 安装。它与 Python 中的 virtualenv 非常相似。

    拥有 RVM 的另一个巨大优势是 gemsets - 您可以创建尽可能多的 gemsets,这些 gemsets 是 ruby​​ 的版本和补丁级别所独有的。

    我已经赞美了它的一些virtues here,你也应该see this blog post

    在维护服务器方面——让我们以乘客安装为例;请记住,Passenger 是作为 gem 安装的,因此使用 rvm 的好处是您可以安装多个乘客,并绑定到不同版本的 ruby​​。当然,通常情况下,您将让Passenger 一次在一个版本上运行,尽管有多种方法可以让Passenger 运行在不同的ruby 版本上。

    【讨论】:

    • 您可以在不同的 gemset 中运行不同的应用程序。但目前,所有这些宝石都必须是完全相同的红宝石。
    【解决方案3】:

    我为不同的项目使用不同的 Ruby 版本(这就是 .rvmrc 非常方便的地方)。一些部署环境对 1.9 感到满意,而由于某些原因,有一些旧版服务器使用 1.8。另外,有时我想启动一个特定版本的 ruby​​ 来比较它们的工作方式。 RVM 为我做了这一切。

    【讨论】:

      【解决方案4】:

      当您第一次习惯 Ruby 时,可能并不完全需要它。也就是说,它的作用是为您未来的成功做好准备。因为一旦你上瘾了,你可能最终会玩需要从 MRI 1.8.x 迁移到 1.9.x 的项目。或者从 1.9.x 到 JRuby 1.6.x。我的经验是这种情况不规律地发生,但当它发生时,没有什么可以替代 RVM。

      除此之外,我经常使用的另一个最大功能是能够分割一个特定版本。所以我可以有一个“稳定”宝石的环境和一个“不稳定”宝石的环境。例如,当 Rails 3.1 处于候选发布模式时,我有一个用于 1.9.2 的主工作区和一个用于 Rails 3.1.rc 的单独空间? 1.9.2 上的宝石。这使我可以继续开发我的主要 Rails 3.0 内容(在 CLI 中使用一个命令),而无需指定相应 rails bin 文件的完整文件路径以使用旧文件。

      【讨论】:

        【解决方案5】:

        如果您使用的是基于 Debian 的平台,其中打包程序/策略会导致非常糟糕的默认安装,那么您将获得更好的 rvm 体验。

        【讨论】:

          猜你喜欢
          • 2023-03-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-19
          • 2010-11-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多