64

你能告诉我,有什么区别:

$Bundle update

$Bundle install
4

2 回答 2

87

bundle update并且bundle install都可以安装您在 Gemfile 中指定但在 gems 中缺少的 gem。

但是bundle update还有一件事要升级:

  1. 如果 Gemfile 中指定的 gem 没有版本,它将升级到最新版本。
  2. 如果 Gemfile 中指定的 gem 有版本控制,它会在最后一位,补丁版本处~>升级到最新版本。

    例如,如果您在 Gemfile 中有一个 gem

    'foo_gem', '~> 2.1.0'
    

    bundle update将检查 2.1.x 的较新版本是否在云中可用。假设您当前的版本是 2.1.2,而云中的最新版本是 2.1.5,它将安装 2.1.5。但如果2.2.6是最新的,它不会做任何事情。

我认为更好的做法

  1. 始终将版本添加到关键 gem,例如rails.

  2. 在大多数情况下坚持bundle install(或bundle默认为)。installbundle update在确实有必要并且您已为结果做好充分准备时才这样做。

于 2013-05-11T11:08:46.380 回答
6

Bundle Updates 指定的 gem(所有 gem,如果没有指定),忽略 Gemfile.lock 中指定的先前安装的 gem。通常,您应该使用bundle install跨机器安装完全相同的 gems 和版本。

于 2013-05-11T09:32:32.697 回答