我目前在我的开发机器上使用rvm在rubies (主要是1.9.x和1.8.7)之间切换。然后我偶然发现了chruby,并发现“不挂钩cd”的特性很吸引人。
chruby + chgems能取代rmv的gemset功能吗?
之前:
$ rvm 1.8.7我将为我的旧rails项目切换到带有1.8.7组gem的ruby 1.8.7。和:
$ rvm 1.9.3我将为我的新rails项目切换到带有1.9.3组gem的ruby 1.9.3。
如何通过chruby和chgems实现这一点
发布于 2013-06-18 03:01:53
由于我使用的是Chruby和Chgems,因此我将尝试这个问题。我使用的是Mac,并且我已经通过Homebrew安装了chruby。
在.bashrc文件中:
source /usr/local/share/chruby/chruby.sh
chruby ruby-2.0.0-p195源码行是Chruby的configuration的一部分。
第二行为我的系统设置了Ruby的default version (在我的例子中是ruby2.0.0)。注意:从 0.3.6开始,它属于.bashrc而不是.bash_profile。
在我的.bash_profile
source /usr/local/share/chruby/auto.sh这一行设置Chruby中的Auto-switching特性。
我仍然有一些使用Ruby1.9.3的项目,所以对于这些应用程序,我在应用程序的根目录下有一个.ruby-version文件。只有一行ruby-1.9.3
当您进入应用程序的目录时,键入chgems,然后您可以捆绑安装或不捆绑安装。您可以通过输入gem env来确认工作是否正常
为了让我的生活更简单,我添加了.bash_aliases,例如:alias myapp='cd ~/Sites/myapp && chgems'
我已经把它们一起用了几个月了,真的很喜欢这个组合,是的,我可以告诉你,Chgems在复制RVM的gemset特性方面做得很好。我强烈建议您阅读Chruby和Chgems项目的文档,因为这些内容都已涵盖。在您的例子中,您可能不想设置默认的Ruby,而只是使用.ruby-version为每个应用程序设置它。
https://stackoverflow.com/questions/17150623
复制相似问题