根据“berks help update”,命令应该是:
“更新Berksfile”
中指定的cookbook(和依赖项)
(是的......就是这样!)。
但究竟是什么意思?
这与Berksfile中不同类型的“cookbook”规范有何不同?
答案 0 :(得分:14)
update命令将尝试查找每个cookbook的最新版本(仍满足您定义的任何版本要求)。例如,假设您有以下Berksfile:
cookbook 'foo', '~> 1.0.0'
这告诉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
,因为这是仍然满足您约束条件的最新发布版本。