4

我正在尝试在厨师中做到这一点:

package("libreadline5-dev") do
  package_name "libreadline5-dev"
  retry_delay 2
  retries 0
  recipe_name "default"
  cookbook_name :"nginx-passenger"
  action :install
end

它给出以下错误:

================================================================================
Error executing action `install` on resource 'package[libreadline5-dev]'
================================================================================

Chef::Exceptions::Package
-------------------------
libreadline5-dev has no candidate in the apt-cache

Resource Declaration:
---------------------
# In /var/chef/cookbooks/nginx-passenger/recipes/default.rb

 15: package "libreadline5-dev"
 16: package "build-essential"

Compiled Resource:
------------------
# Declared in /var/chef/cookbooks/nginx-passenger/recipes/default.rb:15:in `from_file'

版本:

红宝石 1.8.7

厨师:10.16.2

ubuntu:12.04(EC2 实例)

有人可以帮我解决这个问题吗?我试过这个,但它没有解决问题。

4

3 回答 3

4

AFAIK,libreadline5-dev不再包含在 Ubuntu 12.04 中。

您不妨尝试使用libreadline-dev

于 2013-01-19T01:55:23.473 回答
0

我对 ntp 食谱安装的 ntp 包也有同样的问题。

执行后

apt-get check
apt-get update
chef-client

在 debian 机器上的 shell 中手动对我有用,但我无法找出导致问题的原因。也许有人有想法?

希望有帮助。

于 2013-01-09T07:24:02.263 回答
0

我真的迟到了,但是在搜索这个错误时我并没有真正找到任何结果,除了这个问题。我遇到了同样的问题,这是由一个旧的过时的 apt-get 进程引起的,该进程阻止了 apt-purge 获得锁。您可以通过尝试 apt-get update 来确认:

$ sudo apt-get update
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the list directory

$ ps auxww | grep apt
root     23488  0.0  0.0  19408  2336 ?        S    Jun03  28:42 /usr/bin/apt-get -q -y --force-yes -o Dpkg::Options::=--force-confold update

在手动杀死该 apt-get 进程并运行 apt-get update 后,厨师成功运行。

于 2013-11-21T19:04:24.610 回答