2016-06-03 4 views
0

У меня есть следующие Berksfile в моем app/ каталоге:Berksfile.lock игнорируется?

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, который содержит следующие line

apt (3.0.0) 

В моих начальных Berksfile я удаляю линия cookbook apt (строка 2). Я ожидаю, что берки будут использовать мой 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

Не указывайте ограничения версии в Berksfile, но вместо этого используйте metadata.rb. Это также гарантирует правильную версию при запуске chef-client.

1

Поскольку вы устранили ограничение версии, Berks теперь найдет и использует новейшую доступную версию, которая удовлетворит все требования к версии, указанные в кулинарных книгах, которыми он управляет. Очевидно, что в вашем случае apt версия 4.0 удовлетворяет всем вашим требованиям к версии зависимостей сторонних разработчиков.

+1

Более конкретно изменение ограничения приводит к тому, что это ограничение необходимо повторно решить. – coderanger