chruby和chgems可以取代rvm的gemset吗?

时间:2013-06-17 14:57:07

标签: ruby macos rvm chruby

我目前在我的开发机器上使用rvm来切换红宝石(主要是1.9.x和1.8.7)。然后我遇到chruby并发现“不挂钩cd”功能很吸引人。

可以chruby + chgems替换rmv的宝石集功能吗?

在:

$ rvm 1.8.7
对于我以前的rails项目,

将切换到带有1.8.7宝石的ruby 1.8.7。和

$ rvm 1.9.3
对于我的新rails项目,

将切换到带有1.9.3宝石的ruby 1.9.3。

chrubychgems如何实现这一目标?

1 个答案:

答案 0 :(得分:10)

因为我使用了Chruby和Chgems,所以我会对这个问题进行讨论。我在Mac OS X上,我通过Homebrew安装了chruby。

在我的.bashrc文件中:

source /usr/local/share/chruby/chruby.sh
chruby ruby-2.0.0-p195

源代码行是Chruby的configuration的一部分。

第二行为我的系统设置了一个default version的Ruby(在我的例子中是Ruby 2.0.0)。 注意:从Chruby 0.3.6开始,这属于.bashrc而不是.bash_profile

在我的.bash_profile

source /usr/local/share/chruby/auto.sh

此行在Chruby中设置Auto-switching功能。

我仍然有一些使用Ruby 1.9.3的项目,所以对于那些应用程序,我在应用程序的根目录中有一个.ruby-version文件。一行ruby-1.9.3


当您进入应用程序的目录时,请键入chgems,然后您可以捆绑安装,而不是。您可以输入gem env

确认输入正常

为了让我的生活更轻松,我添加了.bash_aliases,例如: alias myapp='cd ~/Sites/myapp && chgems'


我一直在使用它们已经好几个月了,真的很喜欢这个组合,是的,我可以告诉Chgems很好地复制了RVM的gemset功能。我强烈建议您阅读ChrubyChgems项目的文档,因为这些都已涵盖在内。在您的情况下,您可能不想设置默认的Ruby,只需使用.ruby-version为每个应用程序设置它。