Gemfile
在和使用中指定第三方库的确切版本有什么区别Gemfile.lock
吗?
如果我使用确切的版本,Gemfile
它会与分发相同Gemfile.lock
吗?
Gemfile
在和使用中指定第三方库的确切版本有什么区别Gemfile.lock
吗?
如果我使用确切的版本,Gemfile
它会与分发相同Gemfile.lock
吗?
不,精确指定Gemfile
的 a 和使用 aGemfile.lock
是不一样的。
您Gemfile
可能包括您在特定版本中使用的所有 gem。但它Gemfile.lock
还将包括所有与您使用的 gem 相关的 gem。这意味着一个典型的Gemfile.lock
将包含更多的宝石Gemfile
。
此外:您可能有Gemfile
彼此不兼容的 gem 或 gem 版本。AGemfile.lock
由 bundler 生成,代表一组相互兼容的 gem 版本。如果 bundler 无法满足所有必需的依赖项,那么它将不会生成Gemfile.lock
.
也就是说:Gemfile
由于应用程序的版本要求,您需要固定的版本。让 bundler 找到一个有效的组合并将其检查Gemfile.lock
到版本控制系统中。
如果我将 Gemfile.lock 重命名为 Gemfile,则会bundle install
因语法错误而失败。