【问题标题】:When downgrading a gem, can bundler automatically downgrade the gem's dependencies along with it?降级 gem 时,bundler 可以自动降级 gem 的依赖项吗?
【发布时间】:2012-08-10 04:40:31
【问题描述】:

之前我在我的 Rails 项目的 Gemfile 中更改了 gem 版本。我运行了 bundler update gemname,这安装了多个依赖项的最新版本,这让我有点吃惊。

现在,我需要降级到旧版本的 gem。我已经在我的 Gemfile 中改回了版本,并再次运行 bundler upgrade gemname (和 bundler install 来衡量),但现在之前升级的 gem(依赖项)仍然是较新的版本(我猜 gem没有指定版本,所以它只是使用最新的?)。

有没有办法将这些依赖项降级到升级 gem 之前的位置?

【问题讨论】:

    标签: ruby gem dependencies bundler downgrade


    【解决方案1】:

    如果依赖 gem 没有指定,Bundler 无法知道依赖 gem 的最大版本。除非降级 gem 确实改变了它的依赖关系,否则您唯一真正的选择是从版本控制中检出 gemfile.lock 的先前版本。否则不,你不能做你想做的事; Bundler 将尊重您当前的 gemfile.lock,除非您的 gem 的依赖项在降级时发生变化,否则它不会改变。

    【讨论】:

      【解决方案2】:

      您始终可以在 Gemfile 中使用所需的版本号指定依赖的 gem。这将迫使 bundler 重新评估依赖项并根据需要降级它们。这并不理想,但是一旦版本自行排序,您将来就可以删除指定的 gem。

      【讨论】:

        【解决方案3】:

        我会将此添加为评论,但由于我的声誉,我不能添加,所以我希望有人觉得这很有用。

        我也按照nmott 的建议做了。 只需在您的 Gemfile 中添加依赖项,例如: gem 'gem-name', '~> 1.5.0'

        然后运行bundle update gem-name

        然后,当您的依赖项被降级时,从 Gemfile 中删除该行并保持原样。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多