【发布时间】:2023-04-05 19:38:02
【问题描述】:
我在安装包时遇到了一些问题。
当我们运行 'bundle install' 时,Gemfile.lock 中的依赖 gem 之一会自动升级。 根据理论,“捆绑安装”将查找 Gemfile.lock 的版本并且不会解析版本并且将安装相同的版本。只有在没有 Gemfile.lock 或我们给出“bundle update”时才会解决。
在我们的服务器中,我们有 Gemfile.lock 但“捆绑安装”更新了提到 gemfile.lock 的特定 gem(它是一个依赖 gem,所以我们没有在 gemfile 中指定),它不应该这样发生,因为已经锁定文件中存在的版本,即使该版本是自动更新的,由于这次升级,网站中的一些主要功能被破坏了。
供您参考: 捆绑器版本 - 1.17.2 红宝石版本 - 2.5.3 宝石版本 - 2.7.6 导轨版本 - 5.2.3 该依赖项gem名称为“nokogiri”,此gem锁定为1.11.7,但是当我提供“bundle install”时它已更新为“1.12.1”
有什么想法可以防止以后出现这个问题吗?
【问题讨论】:
-
它是依赖 gem 之一,它单独存在于 Gemfile.lock 文件中,我们没有在 gemfile 中提及它,当我们在一个月前进行捆绑安装时,它现在为 1.11.7 , 我们又在 2 天前做了 bundle install ,那时它已解析为 1.12.1。
-
是的,明白了你在这里所说的意思,但我的问题是在我上次升级的“捆绑安装”nokogiri 中,将来有可能升级相同的 gem 或任何其他 gem。我的意思是它可能是 nokogiri 宝石任何其他宝石。从我的角度来看,当发生类似问题时,在 gemfile 中提及这些具有确切版本的 gem 并不好。如果自动升级是在我们不知情的情况下发生的,那么我们将如何克服这一点。
-
这个问题是由于捆绑器还是什么,因为像“捆绑安装”这样的阅读不会自动更新它将安装锁定文件中提到的依赖项的gem,因为存在与相关的讨论这个问题差不多 6 年前了。财政年度:github.com/rubygems/bundler/issues/3175
-
您需要提供更多详细信息。你加了什么宝石?
-
当然,目前无法查看此部署期间 gemfile 上发生的确切情况,很快就会更新您。
标签: ruby-on-rails rubygems bundler gemfile gemfile.lock