Ste*_*n C 14 chef-infra berkshelf berksfile
根据"berks help update",该命令应该是:
"更新Berksfile中指定的cookbook(和依赖项)"
(是的......这就是它所说的!).
但究竟是什么意思呢?
这会如何随着Berksfile中不同类型的"cookbook"规范而变化?
set*_*rgo 14
update命令将尝试查找每个cookbook的最新版本(仍满足您定义的任何版本要求).例如,假设您有以下Berksfile:
cookbook 'foo', '~> 1.0.0'
Run Code Online (Sandbox Code Playgroud)
这告诉Berkshelf接受该1.0.x系列中的任何版本.所以你运行berks install并(假设)foo-1.0.5安装到你当地的berkshelf.锁定文件将在版本1.0.5"锁定"foo的定义,因此其他开发人员和将来的安装将始终使用版本1.0.5(这是锁定文件的整个点).
(几个月过去......)
现在您要将菜谱更新到最新版本.但是由于SemVer,你想留在1.0.x系列中.运行berks update将解锁锁文件中的硬依赖关系,但将约束保留在Berksfile中.所以(假设),如果社区网站有以下foo cookbook版本:
berks update会更新您的本地版本1.0.8,因为这是仍然满足您的约束的最新发布版本.