我目前在我的开发机器上使用 rvm
在 rubies(主要是 1.9.x 和 1.8.7)之间切换。然后我遇到了chruby
并发现“不 Hook 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
如何实现?
最佳答案
由于我使用 Chruby 和 Chgems,所以我将尝试解决这个问题。我在 Mac OS X 上,并且通过 Homebrew 安装了 chruby。
在我的 .bashrc
文件中:
source /usr/local/share/chruby/chruby.sh
chruby ruby-2.0.0-p195
源代码行是 configuration 的一部分对于 Chruby。
第二行设置了一个default version用于我的系统的 Ruby(在我的例子中是 Ruby 2.0.0)。 注意:从 Chruby 0.3.6 开始,它属于 .bashrc
而不是 .bash_profile
。
在我的 .bash_profile
中:
source /usr/local/share/chruby/auto.sh
这一行设置Auto-switching 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 功能方面做得很好。我强烈建议您阅读 Chruby 的文档和 Chgems项目,因为这都涵盖了。在您的情况下,您可能不想设置默认的 Ruby,而只是使用 .ruby-version 为每个应用程序设置它。
关于ruby - chruby 和 chgems 能代替 rvm 的 gemset 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17150623/