我目前正在我的开发机器上使用rvm
在红宝石(主要是1.9.x和1.8.7)之间切换。然后我遇到了chruby
,发现“does not hookcd
”功能很吸引人。chruby
+chgems
能否取代rmv
的gemest功能?
之前:
$ rvm 1.8.7
将切换到Ruby1.8.7和我以前的Rails项目的1.8.7 gems集。还有:
$ rvm 1.9.3
将切换到ruby 1.9.3和1.9.3的gems集,用于我的新rails项目。
如何通过
chruby
和chgems
实现这一点? 最佳答案
既然我用了chruby和chgems,我就来试试这个问题。我在MacOSX上,我已经通过自制程序安装了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功能。
我仍然有一些使用Ruby1.9.3的项目,因此对于那些应用程序,我在应用程序的根目录中有一个
.ruby-version
文件。只有一行ruby-1.9.3
当您将cd放入应用程序的目录中时,键入
chgems
,然后就可以捆绑安装了。输入gem env
为了让我的生活更轻松,我添加了。bash_别名例如:
alias myapp='cd ~/Sites/myapp && chgems'
我已经在一起使用了几个月了,我真的很喜欢这个组合,是的,从我可以看出chgems在复制rvm的gemest特性方面做得很好。我强烈建议您阅读Chruby和Chgems项目的文档,因为这都包括在内。在您的例子中,您可能不想设置默认的ruby,只想使用.ruby版本为每个应用程序设置它。