rvm和rbenv做什么来安装Ruby?

时间:2013-08-18 10:27:04

标签: ruby-on-rails ruby rvm rbenv

多年来,我一直梦想着学习Ruby和Rails框架。 (我的大部分开发生涯都让我忙于花时间去正确地学习新语言,但我现在花更多的时间。)我喜欢能够与Ruby一起快速开发的概念,但是我我无法理解Ruby安装过程。

每次遇到它时,Ruby安装过程都会略有不同。我在过去几年中使用过的两台笔记本电脑通常都运行了最新发布的OS X版本,而且似乎都附带了Ruby 1.8.7。任何现代版本的Rails都需要Ruby 1.9.x.所以,我搜索网络和不变的碰撞到这样的帖子:

  

使用这个名为rvm的强大工具在同一台机器上管理多个Ruby安装。

或者这个:

  

rbenv非常棒,与rvm相比轻巧,请使用它。

真的? Ruby安装过程在做什么,为什么它如此复杂?到现在为止,我已经安装并运行了Ruby,但似乎我总是遇到麻烦。我真的很困惑,想要了解Ruby如何在我的系统上运行。这些配置工具操作的文件是什么,为什么我不能手工完成呢?

这有点不同:如果我是RVM或者rbevn,我采取了哪些措施让Ruby在给定的系统上工作?我操纵配置文件了吗?我下载源代码并将其编译成解释器吗?我是否下载了预编译的解释器?

1 个答案:

答案 0 :(得分:5)

Rbenv和rvm管理多个版本的Ruby。你链接的问题描述了这两个工具是如何做到的(有些人认为rvm与你的shell集成太重量级/神奇)。让多个版本的Ruby很好地共存的能力是一个相当大的胜利。从历史上看,已经出现了一些破坏性版本(例如1.8.7,1.9.2),因此能够简单地迁移您的开发或轻松地在遗留项目上工作非常有利。

Ruby安装过程的核心并不复杂 - 它通常是下载源./configure && make && sudo make install(RVM也支持预构建的Rubies)。然而,你可以将自己束缚在结(特别是作为Ruby的新手)

虽然一些缺少的依赖项只会导致Ruby构建过程失败,但其他人只会停止编译特定的Ruby扩展(openssl或readline)。在尝试运行使用这些扩展的代码之前,您认为自己拥有一个功能完备的Ruby。其他的甚至更微妙,例如,如果libyaml不可用,那么一些版本的Ruby回归到使用syck作为YAML库而不是更现代的心理,具有细微差别。

RVM只是简单易用,几乎可以编译任何Ruby解释器,版本或补丁级别(jRuby,Rubinius,MRI等),有或没有额外补丁只需要一次调用。它没有做任何非常神奇的事情,但确实消除了很多摩擦。