据“伯克斯帮助更新”,该命令应该:“berks更新<cookbook-name>”究竟做了什么?
“更新在Berksfile指定的食谱(和依赖性)”
(是的......这一切都表示, !)。
但究竟是什么意思?
这是如何随Berksfile中不同种类的“食谱”规范而变化的?
据“伯克斯帮助更新”,该命令应该:“berks更新<cookbook-name>”究竟做了什么?
“更新在Berksfile指定的食谱(和依赖性)”
(是的......这一切都表示, !)。
但究竟是什么意思?
这是如何随Berksfile中不同种类的“食谱”规范而变化的?
更新命令将尝试查找每个烹饪书的最新版本(仍然符合您定义的任何版本要求)。例如,假设您有以下Berksfile:
cookbook 'foo', '~> 1.0.0'
这告诉Berkshelf接受在1.0.x
系列中的任何版本。所以你运行berks install
和(假设)foo-1.0.5
被安装到你的本地berkshelf。 lockfile将在1.0.5版本中“锁定”foo的定义,因此其他开发人员和将来的安装将始终使用版本1.0.5(这是lockfile的整个要点)。
(几个月路过...)
现在你要更新的食谱到最新版本。但是由于SemVer,你想保留在1.0.x系列中。运行berks update
将解锁lockfile中的硬依赖项,但将约束保留在Berksfile中。所以,(假设),如果社区网站有以下富食谱版本:
berks update
会将您的本地版本更新为1.0.8
,因为这是最新发布的版本,仍然可以满足您的约束条件。
它是否在VM中放置了食谱副本? – Seperman
什么VM?我没有看到你在哪里提到过虚拟机? – sethvargo
我很好奇,如果'berks update'在Vagrant Box里面做了什么,就像在/ etc/chef /中一样将食谱复制到VM。在做了更多的研究之后,我发现它没有那样做。但我仍然很好奇厨师独奏找到食谱的位置。 – Seperman