在食谱本身中安装食谱的依赖项?

在食谱本身中安装食谱的依赖项?

在执行配方时,我需要使用外部依赖项。我看到两种解决方法:

  • 在我的食谱中使用include_recipe。在这种情况下,用户可能会因为安装了额外的软件包(或以不同于他想要的方式安装它们)而感到惊讶。
  • 将其声明为依赖项,但让用户代码来安装它。在这种情况下,用户将无法立即使用我的食谱,并且将被迫将其run_list明确包含在内。

对此有什么看法?对于 Maven 等其他依赖管理系统,依赖项可以有自己的(传递)依赖项,但用户始终可以覆盖其版本或排除它,以便控制所有传递依赖项。不确定 Chef 中是否如此。

答案1

这取决于具体情况。如果您在 README 中明确说明并有充分理由,那么您可以让食谱的用户在包装器食谱或角色中添加依赖项。

但是,在大多数情况下,我期望所有依赖项都在应用程序食谱中声明metadata.rb,并且先决条件已由应用程序食谱安装。这使得在以下情况下运行食谱变得更容易:伯克斯架测试厨房

相关内容