如何在 asdf 中的相同 ruby 版本上使用相同 gem 的两个版本?

How to use two versions of the same gem on the same ruby version in asdf?

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

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

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

Gemsets 是 Bundler 和 Gemfile 之前一段时间的副产品。

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

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


BUNDLED WITH
   1.17.3

添加到Gemfile.lock后,你cd出rails项目文件夹,然后cd回来,你可以检查asdf是否改变了bundler版本。

希望对您有所帮助。