14

根据“berks help update”,该命令应该:

“更新 Berksfile 中指定的说明书(和依赖项)”

(是的......这就是它所说的!)。

但这究竟意味着什么?

Berksfile 中不同类型的“食谱”规范有何不同?

4

1 回答 1

14

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 食谱版本:

  • 1.0.5
  • 1.0.6
  • 1.0.8
  • 1.1.0
  • 2.0.0

berks update会将您的本地版本更新为1.0.8,因为这是仍然满足您的约束的最新发布版本。

于 2014-01-13T17:16:21.200 回答