RVM可以隐藏全局gemset中的gem吗?

时间:2012-01-09 23:24:20

标签: rvm

我即将工作的项目要求捆绑器版本1.0.10和rake版本0.8.7。我的全球宝石集拥有这些宝石的略微更新版本。即,新项目的安装说明如下:

rvm gemset use rails3
gem uninstall -x bundler
gem install bundler -v 1.0.10
gem uninstall -x rake
gem install rake -v 0.8.7 # Rake needs to be at 0.8.7

当我进入这个新的rails3 gemset时,我无法卸载现有的gem(我个人不想),因为它们存在于全局gemset中。

所以,问题:我可以以某种方式隐藏全球gemset中存在的那两个宝石吗?

我可以列出宝石:

$ gem list
*** LOCAL GEMS ***
addressable (2.2.6)
archive-tar-minitar (0.5.2)
awesome_print (1.0.1)
bundler (1.0.21, 1.0.10)
...
rake (0.9.2.2, 0.8.7)
...

也许一个辅助问题是:因为我已经将旧版本安装到rails3 gemset中,所以rvm更喜欢那些因为它们是以某种方式专门安装的事实覆盖全局版本,或者将rvm拿出版本号最高的宝石?

1 个答案:

答案 0 :(得分:0)

bundle之外的任何命令都应以bundle exec为前缀,这将确保使用正确版本的gem(使用Gemfile

您可以避免使用我的宝石rubygems-bundler

始终写bundle exec

用于运行bundle命令 - 如果您没有指定一个ex,rubygems将选择最新的可用版本。 bundle _1.0.10_ exec rake db:create