gpt4 book ai didi

django - 使用 python_application Chef Recipe

转载 作者:行者123 更新时间:2023-12-02 01:56:44 25 4
gpt4 key购买 nike

我正在尝试使用 application_python 说明书提供的 django 资源:https://github.com/opscode-cookbooks/application_python

如果遵循中提供的示例 https://github.com/opscode-cookbooks/application_python/blob/master/examples/recipes-packaginator.rb并在 mt 元数据上声明 depends application_python 后,出现以下错误:

没有找到 django 的资源。尝试过 application_django、application_python_django、django

所以我尝试遵循 Including a Chef LWRP from another cookbook 中的建议使用“application_python_django”资源而不仅仅是“django”。我得到了:

没有找到 application_python_django 的资源。尝试过 application_application_python_django、application_python_application_python_django、application_python_django

有趣的是,如果我删除应用程序资源并只保留 application_python_django 资源,则提示是:

声明 application_python_django 资源时必须提供名称

!!!所以似乎找到了资源。因此,如果声明了资源名称,则会执行配方,但不会对 django 资源执行任何操作(实际上,应用程序资源中缺少很多参数)。

啊,如果我删除应用程序并只将资源保留为 django,还会得到:

在 ubuntu 版本 12.04 上找不到 django 的资源

好吧,我完全迷路了。

我的 Recipe 最初尝试是:

application 'radar_parlamentar' do
path '$HOME/radar_parlamentar'
owner 'radar'
repository 'https://github.com/leonardofl/radar_parlamentar.git'
revision 'master'

django do
debug true
collectstatic 'build_static --noinput'
database do
database 'radarparlamentar'
adapter 'mysql'
username 'radarparlamentar'
password 'secret'
end
end

gunicorn do
only_if { node['roles'].include? 'packaginator_application_server' }
app_module :django
port 8080
end
end

谢谢,莱昂纳多

最佳答案

尝试在依赖“application_python”说明书之后添加对“application”说明书的依赖。

终于找到了这样做的原因。与metadata.rb中的依赖相关。

要解决这个问题,您必须确保您的 cookbook 中依赖项的版本与依赖的 cookbook 中的版本不冲突。

在 _application_python_ 说明书中,指定了对应用程序 说明书的依赖:

depends "application", "~> 3.0"

如果您的 cookbook metadata.rb 将依赖项指定为

depends "application", "~> 4.0"
depends "application_python", "~>3.0.1"

然后 Chef 将无法加载 application cookbook 作为 application 冲突的依赖项。 _application_python_ cookbook 中的一个要求版本大于或等于 3.0 且低于 4.0。您的 Recipe 中的那个要求版本高于或等于 4.0 且低于 5.0。

如果您没有在说明书中指定版本,您仍然会遇到冲突,因为 Berkshelf(或其他依赖管理器)将下载最新版本。

所以你需要让你的 metadata.rb 看起来像:

depends "application", "~> 3.0"
depends "application_python", "~>3.0.1"

让它发挥作用。

这个答案也适用于那些有同样问题的人:

  • application_ruby
  • 应用程序_java

或任何其他具有您的依赖项的 Recipe 。

关于django - 使用 python_application Chef Recipe ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19573334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com