代码之家  ›  专栏  ›  技术社区  ›  Alexander Ponomarev

未找到Cookbook python

  •  0
  • Alexander Ponomarev  · 技术社区  · 10 年前

    我尝试用厨师solo安装python。

    为了做到这一点,我做到了

    chef-solo -c solo.rb -j chef.json
    

    solo.rb:

    file_cache_path "/tmp/chef-solo"
    cookbook_path   "/home/lamerman/.berkshelf/cookbooks"
    

    chef.json:

    {
        "run_list": [ "recipe[python]" ]
    }
    

    ls-l/home/lerman/.berkshelf/烹饪书

    ...
    drwxrwxr-x 8 lamerman lamerman 4096 Sep 15 13:16 python-1.4.6
    ...
    

    为什么我会

    ERROR: Cookbook python not found. If you're loading python from another cookbook, 
    make sure you configure the dependency in your metadata
    

    看来一切都是对的。

    1 回复  |  直到 10 年前
        1
  •  1
  •   Holger Just    10 年前

    Berkshelf和Chef本身使用的目录结构与Berkshel不同。主要区别在于Berkshelf可以安装多个版本的烹饪书,而厨师则不能。在厨师的世界里,食谱名称必须是目录名,不能添加任何内容。

    因此,不能只将solo.rb指向berkshelf目录。相反,您必须指示Berkshelf从其缓存中创建适合厨师的目录结构。这类似于从当前状态创建快照。

    因此,通常,您可以在您的厨师库(即包含您的 Berksfile )创建 cookbooks 适合厨师的目录:

    berks install --path /path/to/your/chef/repo/cookbooks
    

    然后,在您的 solo.rb ,您可以告诉厨师使用此快照目录

    file_cache_path "/tmp/chef-solo"
    cookbook_path   "/path/to/your/chef/repo/cookbooks"
    

    请注意 食谱 目录没有附加版本。这是厨师的要求。