【发布时间】:2021-12-02 07:19:58
【问题描述】:
我想复制一个较旧的应用程序,但 bundle install 失败,因为 Gemfile 已过时并且不再捕获兼容版本。我想我可以通过 err 和 Trial 尝试正确的 Gemfile,但我可以以某种方式使用在另一个较旧且有效的安装中自动生成的 Gemfile.lock 来获取有关兼容版本的信息吗?
有没有办法从 Gemfile.lock 生成 Gemfile(具有精确版本)或更新现有的?看起来这个文件使用了与 Gemfile 不同的语法。
更新。我没有找到任何从 Gemfile.lock 构建 Gemfile 的脚本,但是在我从工作安装中复制 Gemfile.lock 之后 build install 工作
【问题讨论】:
-
我不清楚你的情况。请显示您遇到的错误。如果您的 Gemfile 丢失,当您
bundle install时,您会看到“Could not locate Gemfile”,所以我不知道您将如何得到找不到 gem 版本的错误。如果 Gemfile.lock 中的 gem 版本不在 gem 源中,生成 Gemfile 不会改变它;您需要找到 gem 版本或使用不同的版本。 -
我不确定从什么错误开始。我假设现有安装中的 Gemfile.lock 对于给定的 ruby 版本具有工作/可通过的 gem 版本。所以我希望建立一个相同版本的Gemfile。将 Gemfile.lock 重命名为 Gemfile 不起作用,
bundle install报告语法错误。 -
不,这不是 Gemfile.lock 的工作方式。如果您没有使用 Bundler 出售您的 gem,那么 Gemfile.lock 所做的只是指定您需要的版本,而不是您拥有的版本。
-
不确定我是否理解供应商一词。是不是代表
bundle install命令安装? -
根据文档,在开发应用程序一段时间后,将应用程序连同 Gemfile 和 Gemfile.lock 快照一起签入。现在,您的存储库记录了您上次使用的所有 gem 的确切版本,您确定应用程序可以正常工作...
标签: ruby bundler gemfile gemfile.lock