Berksfile.lock被忽略了吗?

时间:2016-06-03 13:31:43

标签: chef berksfile

我的Berksfile目录中有以下app/

source "https://supermarket.chef.io"
cookbook "apt", "~> 3.0.0"
cookbook "nodejs", "~> 2.2"

当我运行berks install(版本4.3.3)时,我得到:

Resolving cookbook dependencies...
Fetching cookbook index from https://supermarket.chef.io...
Using apt (3.0.0)
...

我的应用目录包含Berksfile.lock,其中包含以下行

apt (3.0.0)

在我的初始Berksfile中,我删除了cookbook apt行(第2行)。我希望berks能够使用我的Berksfile.lock。但相反,当我再次运行berks install时,我得到:

Resolving cookbook dependencies...
Fetching cookbook index from https://supermarket.chef.io...
Using apt (4.0.0)

我的Berksfile.lock使用新的apt版本进行了更新。 这是预期的行为吗?我期望这种行为与berks update命令...

2 个答案:

答案 0 :(得分:1)

因为您已删除版本约束,Berks现在将找到并使用最新的可用版本,该版本将满足其管理的cookbook指定的所有版本要求。显然,在您的情况下,apt 4.0版满足您的所有第三方依赖版本要求。

答案 1 :(得分:0)

请勿在{{1​​}}中指定版本约束,而是使用Berksfile。这还可确保在运行metadata.rb时使用正确的版本。