我的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
命令...
答案 0 :(得分:1)
因为您已删除版本约束,Berks现在将找到并使用最新的可用版本,该版本将满足其管理的cookbook指定的所有版本要求。显然,在您的情况下,apt 4.0版满足您的所有第三方依赖版本要求。
答案 1 :(得分:0)
请勿在{{1}}中指定版本约束,而是使用Berksfile
。这还可确保在运行metadata.rb
时使用正确的版本。