Ruby on rails RVM:创建一个没有';你不能继承全球遗产吗?

Ruby on rails RVM:创建一个没有';你不能继承全球遗产吗?,ruby-on-rails,ruby,rvm,Ruby On Rails,Ruby,Rvm,我正在着手一个用Rails 2编写的项目。看起来它需要一个旧版本的Rake,它在我的Ruby 1.8.7全局gemset中。我希望避免仅为这一个应用卸载global 1.8.7 rake 我是否可以创建一个忽略全局gemset的gemset 编辑:我想要避免的最明显的解决方案是从全局gems集中卸载gems。在我的特殊情况下,我开始了一些关于遗留应用程序的工作。它用rake 0.9.3和我的调试宝石(awesome_print、hirb、wirb等)来破坏。虽然我目前的解决方案(在下面的评论中)

我正在着手一个用Rails 2编写的项目。看起来它需要一个旧版本的Rake,它在我的Ruby 1.8.7全局gemset中。我希望避免仅为这一个应用卸载global 1.8.7 rake

我是否可以创建一个忽略全局gemset的gemset


编辑:我想要避免的最明显的解决方案是从全局gems集中卸载gems。在我的特殊情况下,我开始了一些关于遗留应用程序的工作。它用rake 0.9.3和我的调试宝石(awesome_print、hirb、wirb等)来破坏。虽然我目前的解决方案(在下面的评论中)是一个黑客,但它似乎是我想要的最少工作量。我希望有一些我不知道的gemset异常命令。

可以。您需要运行
rvm gemeset create{gemeset\u name}

这将创建一个空的gemset,您必须在其中安装所有gems及其版本(仅gem安装…,不带sudo)。

您应该能够在新创建的gemset上运行
rvm gemset empty test
以删除所有gems(本地和全局),然后,
捆绑安装
应该只安装gemfile gems

我刚刚运行了
rvm gemset create{test}
,而{test}gem仍然从全局gemset继承gems。它不应该…在没有括号的情况下运行它。我认为你错了。RVM为您安装的每个解释器创建一个@global gemset,即ruby-1.8.7-p299@global. 此解释器中安装的任何gemset都将拥有自己的gems以及全局gemset中的gems。我想做的是安装一个忽略一个或多个来自全局的gems的gems集。这不是问题的解决方案。这种方法仍然会导致gems从全局gemsetMy当前的解决方案中通过:安装下一个最新的补丁级别。目前这是1.8.7-p299。我的主要课程是1.8.7-p352。这是因为p299和p352解释器不共享全局宝石集。不过,这感觉非常像一个黑客,所以如果可能的话,我仍然希望看到一个更干净的解决方案。这很有用,但是
rvm gemset empty
不会删除全局gems,除非我先切换到全局gemset。这是一个比我现在拥有的更少的意大利面条式的选择,所以它很有趣。对于需要相同核心gems/版本(即rake、ruby debug等)的N个项目,我必须为这些N个项目重新安装gems,以便在1中没有它们。