厨师在Ubuntu 14.04上安装readline软件包失败



我正在尝试使用Chef:在Ubuntu节点上安装PostgreSQL(服务器)

角色定义(角色/base_server.rb):

run_list(
  "recipe[apt]",
  "recipe[postgres::server]"
)
default_attributes(
  postgresql: {
    version:  "9.3.4",
     config: {
      shared_buffers_mb: "12000"
  }
}

设置

系统:Ubuntu 14.04 LTS(GNU/Linux 3.13.0-24-generic x86_64)

厨师版本:11.14.6

Postgres食谱:[3.4.1](https://github.com/hw-cookbooks/postgresql)

运行引导程序命令

knife bootstrap IPADDRESS-x USER-r"角色[base_server]"--sudo

导致以下错误:

* package[readline] action install
  * No version specified, and no candidate version available for readline
  ================================================================================
  Error executing action `install` on resource 'package[readline]'
  ================================================================================
  Chef::Exceptions::Package
  -------------------------
  No version specified, and no candidate version available for readline
  Resource Declaration:
  ---------------------
  # In /var/chef/cache/cookbooks/postgres/recipes/build.rb
   29:   package package_name do
   30:     action :install
   31:   end
   32: end
  Compiled Resource:
  ------------------
  # Declared in /var/chef/cache/cookbooks/postgres/recipes/build.rb:29:in `block in from_file'
  package("readline") do
    action [:install]
    retries 0
    retry_delay 2
    guard_interpreter :default
    package_name "readline"
    timeout 900
    cookbook_name "postgres"
    recipe_name "build"
  end

我已经尝试通过手动安装readline库来解决这个问题,但没有成功。有人知道如何解决这个问题吗?

正如StephenKing所说,问题不在于Chef,而是包真的不存在。您需要修改配方代码才能使用正确的包名称。