gpt4 book ai didi

ruby - 为什么 RVM 会为不同的 gemset 安装重复的 gem?

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:01 24 4
gpt4 key购买 nike

因此,我为我的每个 Rails 项目创建了一个单独的 rvm gemset。他们都使用相同版本的 ruby​​ 1.9.3

这会导致 bundle install 为两个项目完全安装一组新的 gem。另一个项目是否在另一个 gemset 中安装了完全相同的 gem 版本并不重要。我猜这对我来说是预期的行为,但它似乎是对硬盘空间和带宽的低效使用。

我知道我可以手动将其中一些 gem 移动到全局 gemset,但这对我来说似乎很乏味,而且如果我的依赖项针对特定项目发生变化,也很容易崩溃。

是否有更好的组织方式,或者让 rvm 自动检测何时安装了 gem 版本并只使用该副本?

或者我应该使用 RVM 的更好替代品。

最佳答案

这是设计使然。 Gemsets 允许您完全隔离使用的库,这样您就不会在项目之间有任何意外的交互。如果你不需要 isolate,你可以只使用没有 gemset 的解释器:

rvm use 1.9.3

如果您在所有项目中都使用了一些 gem,只需切换到解释器的全局 gemset:

rvm use 1.9.3@global

gem install 公共(public) gem,然后当您在 gemset 中时,它们将不再按项目重新安装。

虽然 gemsets 在带宽或 HD 空间方面肯定效率不高,但它们非常方便,因为您可以轻松地消除项目的所有依赖项,并随时从头开始重新bundle到。它们还完全消除了意外更改依赖项的版本。如果您不喜欢 gemset,在您的 Gemfile 中正确指定版本可以让您在没有它们的情况下走得更远。

就替代方案而言,rbenv是我要查看的主要内容。

关于ruby - 为什么 RVM 会为不同的 gemset 安装重复的 gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com