Ruby on rails 五月";“捆绑安装”;更新gems for rails应用程序?

Ruby on rails 五月";“捆绑安装”;更新gems for rails应用程序?,ruby-on-rails,ruby,rubygems,bundler,Ruby On Rails,Ruby,Rubygems,Bundler,My bundle文件包含如下gem描述: gem 'turbolinks', '~> 5' gem 'kaminari' 在过去的一年中,这些gem被更新,失去了向后兼容性。之后,如果我在一台没有gems的新机器上运行bundle install,我担心它会安装所有最新版本的gems,我的代码会因此而崩溃 我说得对吗?什么是避免此问题的解决方案 我担心它会在最新版本中安装所有gems,我的代码会因此而崩溃 如果您使用了Gemfile.lock以及Gemfile捆绑安装不会破坏您的代码。

My bundle文件包含如下gem描述:

gem 'turbolinks', '~> 5'
gem 'kaminari'
在过去的一年中,这些gem被更新,失去了向后兼容性。之后,如果我在一台没有gems的新机器上运行
bundle install
,我担心它会安装所有最新版本的gems,我的代码会因此而崩溃

我说得对吗?什么是避免此问题的解决方案

我担心它会在最新版本中安装所有gems,我的代码会因此而崩溃


如果您使用了
Gemfile.lock
以及
Gemfile
捆绑安装
不会破坏您的代码。
Gemfile.lock
文件是Bundler记录已安装(或必须安装)的确切版本的地方。否则,您可能会遇到版本问题

在新机器上尝试
bundle安装
会出现什么问题?值得注意的是,运行
bundle update
而不是
bundle安装
(或者只是
bundle
)可能会导致问题。因此,如果有人意外运行bundle更新,他会丢失原始的gem版本吗?在Gemfile中指定确切的版本是个好主意吗?在Gemfile中指定版本是个好主意,如果有人意外地运行了bundle update,而您不使用VCS,您将丢失原始gem版本。我认为您应该避免使用
Gemfile
中的版本号,因为如果您想要或需要更新应用程序,将gems固定在
Gemfile
中会使更新变得非常困难。此外,版本号将保留在
Gemfile.lock
中。如果
bundle update
中断了应用程序,只需从版本控制还原
Gemfile.lock
。@spickermann我更喜欢在Gemfile中设置版本,没有任何问题。