看到网上有很多关于Bundle install与bundle update, Gemfile与Gemlock的解释,看了半天也没怎么看明白。这里理一下:
- 初次运行,bundle install, 会按照Gemfile安装对应版本的Gem,并保存下来其具体的版本信息,保存为Gemfile.lock文件。
- Gemfile.lock文件是防止发布后别的用户在其自己的电脑上安装时版本不对造成的bug。也就是说,如果你的项目内包含gemfile.lock文件,在你执行bundle install时,bundle会直接按照gemfile.lock去安装对应版本的gem.
- bundle update用来更新bundle的版本。如果gemfile里没有指定Gem的版本或者版本里指定的是
~>
那么bundle将会把gem升级到 可以升级的最新版本,意思就是如果没有指定版本,将会升级到最新版,如果是~>
,将会升级到最后一位最新的版本。比如~> 1.4.4
的意思是最高可以升级到1.4.9,而不会升级到1.5.1. - 使用bundle update升级完成后,bundle将会把最新的gem和版本信息更新到gemfile.lock
总结
- 发布工程时最好加上gemfile.lock</