При выполнении рецептов мне нужно использовать внешнюю зависимость. Я вижу 2 варианта решения этой проблемы:
include_recipe
внутри моих рецептов. В этом случае пользователь может быть застигнут врасплох из-за установленных дополнительных пакетов (или из-за того, что они установлены не так, как он планировал).run_list
явно.Есть мнения по этому поводу? Когда дело доходит до других систем управления зависимостями, таких как Maven, зависимость может иметь собственную (транзитивную) зависимость, но пользователь всегда может переопределить ее версию или исключить ее, чтобы иметь контроль над всеми транзитивными зависимостями. Не уверен в этом в Chef.
Это зависит от конкретной ситуации. Если вы четко указали это в README и имеете веские причины, то вы можете предоставить пользователю вашей кулинарной книги возможность добавить зависимость в кулинарную книгу или роль оболочки.
Однако в большинстве ситуаций я ожидал, что все зависимости будут объявлены в metadata.rb
и предварительные требования устанавливаются кулинарной книгой приложения. Это упрощает ведение кулинарной книги с помощью Беркшельф и Тест-Кухня.