9

我目前正在rvm我的开发机器上使用 rubies(主要是 1.9.x 和 1.8.7)之间的切换。然后我chruby发现“不钩cd”功能很有吸引力。

可以chruby+ chgemsreplacermv的 gemset 功能吗?

前:

$ rvm 1.8.7

将切换到 ruby​​ 1.8.7 和 1.8.7 的一组 gem 用于我的旧 Rails 项目。和:

$ rvm 1.9.3

将为我的新 Rails 项目切换到带有 1.9.3 宝石集的 ruby​​ 1.9.3。

chruby和怎么能做到这一点chgems

4

1 回答 1

10

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

在我的.bashrc文件中:

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

源代码行是Chruby配置的一部分。

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

在我的.bash_profile

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

此行设置Chruby 中的自动切换功能。

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


当您 cd 进入应用程序的目录时,键入chgems然后您可以捆绑安装等等。您可以通过输入确认一切正常gem env

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


我已经一起使用了几个月了,真的很喜欢这种组合,是的,据我所知,Chgems 在复制 RVM 的 gemset 功能方面做得很好。我强烈建议您阅读ChrubyChgems项目的文档,因为这都涵盖了。在您的情况下,您可能不想设置默认 Ruby,而只是使用 .ruby-version 为每个应用程序设置它。

于 2013-06-17T19:01:52.763 回答