我在捆绑安装方面遇到了一些问题。
当我们运行“捆绑安装”时,Gemfile.lock中的依赖宝石之一是get自动升级。根据理论,“包安装”将查找Gemfile.lock的版本,不会解析版本,并将安装相同的版本。只有当没有Gemfile.lock或我们提供“包更新”时,它才会解决。
在我们的服务器中,我们有Gemfile.lock,但是"bundle install“是更新了特定的创业板提到的gemfile.lock(它是一个依赖的创业板,所以我们没有在gem文件中指定),它不应该这样发生,因为这个版本已经出现在锁文件中,即使该版本是自动更新的,因为这个升级导致站点中的一些主要功能被破坏了。
对于您的参考: bundler版本- 1.17.2 ruby版本- 2.5.3宝石版本- 2.7.6 rails版本- 5.2.3依赖的宝石名是"nokogiri",这个宝石锁定为1.11.7,但是当我给出"bundle install“时,它被更新为"1.12.1”。
有什么办法防止将来发生这个问题吗?
发布于 2021-08-17 11:59:04
首先,如果您能够共享Gemfile.lock错误,以便知道我所特别指出的可能导致升级的原因,那就太好了。但是从远处看,我认为正如您所说的,这个宝石是一个依赖的宝石,它没有在您的宝石文件中声明。可能是另一个创业板也依赖于这个创业板,并且根据这一要求,它甚至在运行假定的创业板行之前就会触发升级,这可能会导致错误。彻底阅读错误,您可以识别导致此错误的gem(s)。
在你的更新后,我已经读到了这方面的内容。如前所述,这些宝石之一可能就是为什么您的特定创业板会在每一个绑定器安装中得到更新。不幸的是,没有真正的转身来解决这个问题,但是邦德勒确实给出了一个解决办法。您可以使用-冻结选项与邦德勒,它冻结您的gemfile.lock到当前版本的每个创业板,不更新任何宝石,但只安装新的宝石,你有。不幸的是,这已被废弃,只能在/..bundle/config中完成。这可以通过项目根目录中的命令行完成。运行bundle config frozen true以冻结gemfile.lock中更新宝石的绑定程序,您可能必须向用户授予写权限才能编辑包配置。我也找到了这篇文章,来自bigbinary.com
https://stackoverflow.com/questions/68814346
复制相似问题