0

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命令会出现这种行为......

4

2 回答 2

1

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

于 2016-06-03T19:05:42.970 回答
0

不要在 中指定版本约束Berksfile,而是使用metadata.rb。这也确保在运行时使用正确的版本chef-client

于 2016-06-03T13:51:23.410 回答