如何在 asdf 中的同一红宝石版本上使用同一 gem 的两个版本?



我已经从 rvm 切换到 asdf,需要类似于 rvm 中的宝石集的行为。我有两个文件夹,其中包含同一项目 - 一个包含旧版本,另一个包含最新版本。它们具有相同的红宝石版本,但某些宝石的版本不同。在 asdf 中是否可以在例如 ruby 2.6 上运行并在两个项目上运行捆绑而不用担心冲突?

请记住,GemfileGemfile.lock应该可以安装同一 gem 的多个版本,并且将根据描述的任何约束选择正确的版本。

您唯一需要强制使用单个版本的情况是在处理命令行工具时(例如railsrake(,在任何给定时间只能有一个处于活动状态。

宝石镶嵌是 Bundler 和Gemfile之前的一段时间的副产品。

我刚刚遇到了同样的问题。我通过在 Gemfile.lock 中添加以下行来解决这个问题。但请注意,有时需要在 BUNDLED WITH 部分之前添加两个空行(没有任何空格(。

GEM
remote: https://rubygems.org/
specs:

BUNDLED WITH
1.17.3

将其添加到 Gemfile.lock 后,您从 rails 项目文件夹中 cd,然后重新 cd,您可以检查捆绑器版本是否已被 asdf 更改。

希望这有帮助。

最新更新