Chef infra 解析cookbook时出错

Chef infra 解析cookbook时出错,chef-infra,chef-recipe,aws-opsworks,cookbook,Chef Infra,Chef Recipe,Aws Opsworks,Cookbook,我经历了许多类似的问题,但没有一个能回答我的问题。我有。当我在opsworks中运行它时,我给出了这个错误。当我在本地ubuntu上运行类似的配方时,效果很好。我对依赖项的版本号做了一些重大调整,但仍然没有解决方案。这个问题的原因是什么? 我的朋友在github ================================================================================ Error Resolving Cookbooks for

我经历了许多类似的问题,但没有一个能回答我的问题。我有。当我在opsworks中运行它时,我给出了这个错误。当我在本地ubuntu上运行类似的配方时,效果很好。我对依赖项的版本号做了一些重大调整,但仍然没有解决方案。这个问题的原因是什么?
我的朋友在github

    ================================================================================
    Error Resolving Cookbooks for Run List:
    ================================================================================


    Missing Cookbooks:
    ------------------
    Could not satisfy version constraints for: mysql

你的
数据库版本需要,但你有
4.1.2

你的
数据库版本需要,但你有
4.1.2

除了@coderanger给你的解决方案之外,还有一个很好的实践来避免类似的问题 这和逃避依赖地狱这是使用某种烹饪书 管理器(烹饪书的依赖关系管理器)

有一些选择,例如 , Berkshelf更受欢迎,甚至包括在 ,所以如果你使用它 您不需要单独安装它

所以基本上,这背后的想法是有一个地方,你定义你的酸痛 在所有的烹饪书中,默认的一本是 或者,如果需要,可以使用自定义位置或git repo作为源

定义来源后,您只需定义您想要的烹饪书(带或不带) 没有)您想要的版本或标签,cookbook manager将解决 所有已定义烹饪书的依赖项,它将为您安装它们, 如果你愿意,你也可以出售

有关如何使用这些工具的更多信息,请咨询官方网站:


除了@coderanger为您提供的解决方案之外,还有避免类似问题的良好实践 这和逃避依赖地狱这是使用某种烹饪书 管理器(烹饪书的依赖关系管理器)

有一些选择,例如 , Berkshelf更受欢迎,甚至包括在 ,所以如果你使用它 您不需要单独安装它

所以基本上,这背后的想法是有一个地方,你定义你的酸痛 在所有的烹饪书中,默认的一本是 或者,如果需要,可以使用自定义位置或git repo作为源

定义来源后,您只需定义您想要的烹饪书(带或不带) 没有)您想要的版本或标签,cookbook manager将解决 所有已定义烹饪书的依赖项,它将为您安装它们, 如果你愿意,你也可以出售

有关如何使用这些工具的更多信息,请咨询官方网站:


另一个可以查看的地方是您的环境文件
cookbook\u版本
属性。如果其中指定了cookbook版本,则可能与其他版本规范冲突


另一个可以查看的地方是您的环境文件
cookbook\u版本
属性。如果其中指定了cookbook版本,则可能与其他版本规范冲突



@ratasheep,我仍然需要提到依赖关系的版本。我遇到的问题是这些依赖项的版本。另外,当我将Berkshell与Aws-opsworks一起使用时,它是否工作,因为我只需要将它与Aws-opsworks一起使用。如果使用最新的opsworks堆栈,它包括对Berkshell.ok的支持。thanx。。但同样的问题是“我仍然必须提到依赖项的版本。我遇到的问题是这些依赖项的版本。”@coderanger,请为我澄清另一个疑问。比如说:我有一个配方a,它依赖于配方B和配方C。现在这个配方B依赖于配方D,配方C依赖于配方E。如果我在我的berksfile上只提到配方B和C,它会自动管理配方D和E吗?我也必须在berksfile中提到它们的名字吗?@Subham Tripathi它会自动解决依赖关系,因此,您不需要指定确切的依赖项,只需要指定顶级食谱。在本例中,只添加配方A是完全正确的,它的所有依赖项(食谱B、C、D和E)都将被解析和安装。关于版本,如果您不需要顶级烹饪书的任何特定版本,您也不需要指定版本,在这种情况下,Berkself将使用最新版本。@ratasheep,我仍然需要提到依赖项的版本。我遇到的问题是这些依赖项的版本。另外,当我将Berkshell与Aws-opsworks一起使用时,它是否工作,因为我只需要将它与Aws-opsworks一起使用。如果使用最新的opsworks堆栈,它包括对Berkshell.ok的支持。thanx。。但同样的问题是“我仍然必须提到依赖项的版本。我遇到的问题是这些依赖项的版本。”@coderanger,请为我澄清另一个疑问。比如说:我有一个配方a,它依赖于配方B和配方C。现在这个配方B依赖于配方D,配方C依赖于配方E。如果我在我的berksfile上只提到配方B和C,它会自动管理配方D和E吗?我也必须在berksfile中提到它们的名字吗?@Subham Tripathi它会自动解决依赖关系,因此,您不需要指定确切的依赖项,只需要指定顶级食谱。在本例中,只添加配方A是完全正确的,它的所有依赖项(食谱B、C、D和E)都将被解析和安装。关于版本,如果你不需要顶级烹饪书的任何特定版本,你也不需要指定版本,那样的话,Berkself将使用最新版本。你能告诉我你是怎么知道的吗?那真的很有帮助!我在你的代码中搜索了所有的行,比如“依赖‘mysql’”,以找出哪些约束没有得到满足。使用grep?命令是什么。。我使用的是grep-rcl“dependens'mysql\”,但它对我不起作用。我只是在github上使用它,以避免在本地克隆您的repo。你能告诉我你是怎么知道的吗?那真的很有帮助!我在你的代码中搜索了所有的行,比如“依赖‘mysql’”,以找出哪些约束没有得到满足。使用grep?命令是什么。。我用的是grep-rcl“dep”