我为什么不应该使用RVM?
我是ruby语言和服务器的新手。我在安装RVM时遇到了一些麻烦...所以我现在倾向于不使用它,但似乎它可能会使安装变得更容易?
我很想知道您对RVM的体验以及您对维护服务器的想法。
答案 0 :(得分:10)
即使您不想同时安装多个版本,RVM也很有用。我是一个红宝石爱好者(白天的PHP :(),我没有理由想使用旧版本,但我仍然使用RVM。
安装红宝石是一种痛苦。从包管理器(至少在ubuntu中)获取它会为您提供一个过时的版本,可以从默认值更改安装目录。我什么也没有问题。
所以你想,“我只是从源头构建它”。从源构建需要获得大量依赖项和配置选项。我经常构建ruby只是为了发现我忘记启用SSL支持或readline支持。
RVM负责所有这些。在3个左右的命令中,你有一个完美构建的ruby版本。
我甚至没有介绍RVM如何为您管理多个ruby安装,这是它的杀手级功能。如果你有这种需要,实际上没有其他合理的解决方案。
答案 1 :(得分:2)
RVM非常棒,因为它允许您安装不同的版本,而无需触及系统的默认Ruby安装。它与Python中的virtualenv非常相似。
拥有RVM的另一个巨大优势是gemsets - 您可以创建尽可能多的gemset,这些gemset是ruby的版本和补丁级别所独有的。
我赞美了它的一些virtues here,你也应该see this blog post。
在维护服务器方面 - 让我们以乘客安装为例;请记住,Passenger是作为宝石安装的,所以对于rvm来说,这里的好处是你可以有多个乘客安装,绑定到不同版本的ruby。当然,通常情况下,您一次只能在一个版本上运行Passenger,尽管有一些方法可以让Passenger运行在不同的ruby版本上。
答案 2 :(得分:1)
我为不同的项目使用不同的Ruby版本(这就是.rvmrc非常方便的地方)。一些部署环境对1.9感到满意,而由于某些原因,有一些旧版服务器使用1.8。另外,偶尔我想推出一个特定版本的ruby来比较它们的工作方式。 RVM为我做了所有这些。
答案 3 :(得分:1)
当你第一次习惯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文件的完整文件路径以便使用旧文件。
答案 4 :(得分:0)
如果您使用的是基于Debian的平台,其中packagers / policy会导致非常糟糕的默认安装,那么您将有更好的使用rvm的经验。