首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bundler vs RVM vs gem vs RubyGems vs gemsets vs system ruby

bundler vs RVM vs gem vs RubyGems vs gemsets vs system ruby
EN

Stack Overflow用户
提问于 2013-03-23 19:27:58
回答 2查看 17.7K关注 0票数 110

我是Ruby的新手,正在尝试理解以下概念: bundler vs RVM vs gem vs RubyGems vs gemsets vs system rub,我很困惑。

有人能描述一下我应该如何管理最新版本的Ubuntu的“最佳实践”吗?我应该安装什么,我应该如何使用它们?

我猜不推荐做sudo apt-get install ruby,但我不确定。除了“所有其他Ruby的东西”之外,我还在我的系统上尝试了它。这只会增加我的困惑。我说的不是Rails,而是普通的Ruby gems (例如Vagrant、Chef、scripts)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-23 20:16:41

根据前面的回答,这篇文章涉及的内容相当多,因此可以将其视为简短的介绍。

是Ruby库的打包方式。它们之于Ruby就像jars之于Java。在gem文件中,您不仅可以找到Ruby代码(.rb文件),还可以找到测试,还有一个特殊的文件,它提供了gem本身的信息,比如它的名称、依赖项和版本(gemspec)。任何Ruby项目都可以通过一个只需要声明依赖项的Gemfile来定义它所需要的gem。Rubygems是包管理器的名称-用于安装包的工具(而gem就是包本身)。Rubygems现在是Ruby的一部分。

使得管理gem变得可以忍受。在Gemfile的基础上,使用bundle install对bundler进行简单调用,即可下载并安装所有必需的gem。使用标准的gem命令,您必须使用gem install <gem_name>手动安装它们。Bundler不是Ruby的一部分(它本身就是packaged as a gem),但它是大多数应用程序的“事实上的标准”(你不会发现很多人不使用它,实际上也没有什么好的理由不使用它)。

是一个允许你在一台机器上安装多个版本的Ruby的工具,在需要的时候可以在它们之间切换。这既可以用来安装Ruby1.8和1.9,也可以用来安装"MRI“(Matz的Ruby,默认实现)和其他版本(比如JRuby或Rubinius)。请注意,RVM在这一领域并不孤单,例如参见rbenv

RVM中的是一组特定于给定上下文的gem,通常是一个项目。例如,如果您正在开发不同的应用程序,每个应用程序都有自己的gem集,并且希望将它们分开,那么这是很有用的。

当使用RVM时,是安装在机器上的Ruby版本(即,不是通过RVM)。

如果你刚刚开始,你会对gem和bundler感兴趣。你可以暂时把RVM和gemsets放在一边。

票数 205
EN

Stack Overflow用户

发布于 2013-03-23 19:56:26

您在一个问题中要求的信息超过了Stack Overflow的范围。要涵盖所有这些内容,需要一本书。

在Ubuntu上,很容易安装和删除“系统”版本的gem,所以习惯于通过sudo安装和删除常规的gem。(在Mac上,我会给出不同的建议,因为苹果捆绑了Ruby供自己使用,搞乱它不是一个好主意。)然后,当你知道整个gem的想法是如何工作的,并且知道你想在你的系统上安装多个Ruby版本时,尝试"rbenv“或"RVM”并在你的沙箱中安装一个或两个版本。

Linux使得通过发行版添加/删除Ruby变得很容易,但我们受到发行版维护者打包的版本的限制,所以我通常从源代码安装。但是,在管理多个版本的Ruby用于开发、测试和生产系统时,这是一件痛苦的事情,这就是rbenvRVM被发明的原因--它们处理繁琐的细节,让我们可以专注于编程。

我同时使用了rbenvRVM,并且在过去的六个月左右一直在使用rbenv,效果很好。它没有我喜欢的RVM复杂。在任何一种情况下,它们都可以很容易地安装不同的版本,使用不同的Gem集。如果您愿意,您可以在不同的终端窗口中打开不同的Ruby版本,这使得测试兼容性变得很容易。

调试时的第一条规则是一次更改一个,这对于学习编程或学习一门新语言是正确的。不要分心,简单点就行了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15586216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档