当前位置:  开发笔记 > 前端 > 正文

厨师:没有名为"httpd"的公式

如何解决《厨师:没有名为"httpd"的公式》经验,为你挑选了1个好方法。

我正在学习厨师,在尝试安装httpd包时我遇到了困难.我有一个简单的方法在Mac OS上安装httpd包.我安装了ChefDK.

webserver.rb

package 'httpd' 

当我跑chef-apply webserver.rb,它会抛出错误:

    Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of brew info --json=v1 httpd ----
STDOUT: 
STDERR: Error: No available formula with the name "httpd"
---- End output of brew info --json=v1 httpd ----
Ran brew info --json=v1 httpd returned 1

Resource Declaration:
---------------------
# In webserver.rb

  1: package 'httpd'

Compiled Resource:
------------------
# Declared in webserver.rb:1:in `run_chef_recipe'

homebrew_package("httpd") do
  action [:install]
  retries 0
  retry_delay 2
  default_guard_interpreter :default
  package_name "httpd"
  declared_type :package
  cookbook_name "(chef-apply cookbook)"
  recipe_name "(chef-apply recipe)"
end

有人可以告诉我在这里错过了什么.谢谢.



1> coderanger..:

那么让我们来看看你正在做的每一件事:

chef-apply采用单个Chef配方并在本地运行.这意味着发生的一切都在Mac笔记本电脑上.

此配方使用package资源来安装调用的东西'httpd'.Chef包括一堆package资源提供者,所以在Ubuntu上它使用APT,在CentOS上它使用YUM,而在OS X上它使用Homebrew(即brew install).

在安装软件包之前,Chef会检查它是否已安装并收集软件包上的其他详细信息.对于Homebrew,它brew info用于此.因此,您最终brew info httpd得到命令,提供或获取JSON输出格式参数以使其更容易解析.Homebrew没有命名的包(公式),'httpd'因此它返回一个错误,然后Chef将链引发.

在更深层次上,Homebrew没有包装Apache(我认为你试图安装),因为它默认出现在OS X中.即使它确实如此,大多数包装系统都会调用它apache2.只有RHEL/CentOS衍生产品httpd仍会调用该软件包.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有