根据“berks help update”,该命令应该:
“更新 Berksfile 中指定的说明书(和依赖项)”
(是的......这就是它所说的!)。
但这究竟意味着什么?
Berksfile 中不同类型的“食谱”规范有何不同?
根据“berks help update”,该命令应该:
“更新 Berksfile 中指定的说明书(和依赖项)”
(是的......这就是它所说的!)。
但这究竟意味着什么?
Berksfile 中不同类型的“食谱”规范有何不同?
update 命令将尝试查找每个说明书的最新版本(仍然满足您定义的任何版本要求)。例如,假设您有以下 Berksfile:
cookbook 'foo', '~> 1.0.0'
这告诉 Berkshelf 接受该1.0.x
系列中的任何版本。因此,您运行berks install
并(假设)foo-1.0.5
安装到您当地的 berkshelf 中。锁定文件会将 foo 的定义“锁定”在 1.0.5 版本,因此其他开发人员和未来的安装将始终使用 1.0.5 版本(这是锁定文件的全部要点)。
(几个月过去了……)
现在您要将食谱更新到最新版本。但是因为SemVer,你想留在 1.0.x 系列。运行berks update
将解锁 lockfile 中的硬依赖,但保留 Berksfile 中的约束。所以(假设),如果社区网站有以下 foo 食谱版本:
berks update
会将您的本地版本更新为1.0.8
,因为这是仍然满足您的约束的最新发布版本。