我正在使用RVM来管理我的本地Ruby安装,并使用Bundler来管理应用程序依赖项。
有些人建议为每个应用程序使用单独的RVM gemset,而有些人似乎认为没有必要。
那么当我使用Bundler时,为每个应用程序使用单独的RVM gemset有什么好处?不这样做有什么风险?
答案 0 :(得分:2)
我使用除了捆绑器之外的gemsets,原因如下:
bundle exec
(这已经过时使用binstubs)可能有更多理由使用它们,但我通常喜欢沙箱的想法!
答案 1 :(得分:2)
我发现如果你使用rails 2有rvm很有用。如果你需要使用具有旧代码的应用程序,RVM很棒。 Rails 2不使用Gemfile,因此bundle exec
不起作用。 RVM可以很容易地保持gem项目的正确性,并且可以切换回较新版本的rails并使用Gemfile指定版本。如果您有多个使用不同gem版本的应用程序,但使用相同版本的ruby,则可以方便地共享大多数gem,并在它们不同的Gemfile中指定它们。
我认为这种情况有所依赖。如果您发现两个应用程序之间存在大量版本问题,并且不断修改Gemfiles以使它们保持平直令人讨厌,那么请使用单独的gemsets。如果有足够的共同点,那么使用相同的gemset可能是有意义的
答案 2 :(得分:1)
RVM gemsets允许您在不加载捆绑器的情况下分离宝石 - 这样更快,加载宝石会更简单。
您应该使用gemsets将项目与助手宝石分开(例如gist
)。
但如果您认为gemsets对您没有帮助,您可以告诉RVM完全忽略gemsets:
echo "export rvm_ignore_gemsets_flag=1" >> ~/.rvmrc
答案 3 :(得分:1)
我可能会以快速/ globalcache_comment_test.sh中的rvm-test的形式将您引用到'globalcache'文档以及项目的Gemfile。
这也将减少对rubygems.org的网络流量。全局的初始装载,不能承受。