Berksfile.lock игнорируется?
У меня есть следующее 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 ответа
Поскольку вы сняли ограничение версии, Berks теперь найдет и будет использовать новейшую доступную версию, которая будет отвечать всем требованиям к версии, указанным в поваренных книгах, которыми он управляет. Очевидно, что в вашем случае apt version 4.0 удовлетворяет всем требованиям сторонней версии зависимостей.
Не указывайте ограничения версии в Berksfile
, но использовать metadata.rb
вместо. Это также гарантирует, что правильная версия используется при запуске chef-client
,