依赖项的厨师食谱依赖项

Jef*_*f V 7 chef cookbook

这可能是一个简单的问题 - 我正在尝试安装一本食谱(gitlab

我将食谱克隆到本地驱动器上的一个文件夹中并运行

knife cookbook upload gitlab.
Run Code Online (Sandbox Code Playgroud)

它立即抛出一个错误:

Cookbook gitlab depends on cookbook postgresql version >= 0.0.0
Run Code Online (Sandbox Code Playgroud)

所以我跑了

knife cookbook site download postgresql
Run Code Online (Sandbox Code Playgroud)

它有一些依赖项,还有更多的依赖项,现在我正在安装我知道我不需要的食谱(dmg、windows 等)

我的印象是这些东西会像 aptitude 或 yum 一样自动解决。我是否错过了食谱依赖解析器的一些关键步骤?

Hol*_*ust 6

您可以使用已建立的食谱依赖管理器之一,即LibrarianBerkshelf

这两个工具都旨在从互联网上检索食谱,例如从 github 等代码存储库或community.opscode.com站点,并将它们放到您的本地系统上。这些收费将自动解决递归依赖项和版本要求,并拉下所有必需的食谱。一旦您在本地获得了所有这些,您就可以将它们全部上传到服务器,例如使用

knife cookbook upload -a
Run Code Online (Sandbox Code Playgroud)

  • 这两个工具都使用 `metadata.rb` 文件进行依赖管理,无论如何都应该出现在每个食谱中(因为厨师服务器需要它)。所以不,大多数时候,你不需要在你的食谱中做任何特别的事情。唯一可能的例外是如果您的依赖项在 community.opscode.com 上不可用。然后,您需要明确说明在您的“Cheffile”或“Berksfile”中的何处找到这些文件。 (3认同)

Mac*_*cki 5

使用knife cookbook site install,它解决了依赖关系。