所以,我为每个rails项目创建了一个单独的rvm gemset.他们都使用相同版本的红宝石1.9.3.
这导致bundle install为两个项目完全安装一组新的宝石.如果另一个项目具有与另一个gemset中安装的完全相同的gem版本,则无关紧要.我猜这是我预期的行为,但它似乎是对硬盘空间和带宽的低效使用.
我知道我可以手动将这些宝石中的一些移植到全局宝石集中,但这对我来说似乎很乏味,并且如果我的依赖关系因特定项目而改变,也容易破坏.
是否有更好的方法来组织事物,或者在已安装gem版本时使用rvm自动检测并只使用该副本?
或者我是否应该使用更好的RVM替代方案.
这是设计的.Gemsets允许您完全隔离所使用的库,因此您不会在项目之间进行任何意外交互.如果你不需要隔离,你可以使用没有gemset的解释器:
rvm use 1.9.3
Run Code Online (Sandbox Code Playgroud)
如果您在所有项目中使用了一些宝石,只需切换到解释器的全局gemset:
rvm use 1.9.3@global
Run Code Online (Sandbox Code Playgroud)
gem install 常见的宝石,然后当你在宝石集中时,它们将不会再为每个项目重新安装.
尽管gemsets在带宽或高清空间方面肯定效率不高,但它们非常方便,因为您可以轻松地吹掉项目的所有依赖项,并bundle随时从头开始重新创建.它们还完全消除了偶然更改的依赖项版本.如果您不喜欢gemsets,那么正确指定版本中的版本Gemfile可以让您在没有它们的情况下获得相当大的优势.
至于替代品,rbenv是我要检查的主要产品.
| 归档时间: |
|
| 查看次数: |
315 次 |
| 最近记录: |