$ Bundle install和$ Bundle update之间的区别

时间:2013-05-11 09:20:38

标签: ruby-on-rails

你能告诉我,它们之间的区别是什么:

$Bundle update

$Bundle install

2 个答案:

答案 0 :(得分:76)

bundle updatebundle install都可以安装您在Gemfile中指定但在宝石中缺失的宝石。

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

  1. 如果Gemfile中指定的gem没有版本,它将升级到最新版本。
  2. 如果Gemfile中指定的gems版本控制为~>,它将升级到最新数字的最新

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

    'foo_gem', '~> 2.1.0'
    

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

  3. 我认为更好的做法

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

    2. 在大多数情况下,坚持bundle install(或bundle默认为install)。只有在真正需要的时候bundle update,你才能为结果做好充分的准备。

答案 1 :(得分:6)

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