使用 chef 删除 ubuntu 软件包

使用 chef 删除 ubuntu 软件包

旧版本的食谱安装了一个我不再需要的软件包。我的理解是,chef 没有直接的方法来明确删除软件包,所以我求助于以下粗暴的方法execute

execute "Remove nasty perl gearman-server" do
    command "apt-get -y remove gearman-server"
    ignore_failure true
end

但这失败了,我猜是因为 chef 本身锁定了 dpkg?

STDERR: E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

我如何以编程方式确保此包不再存在于我的机器上?如果不清楚,我对仅限 ubuntu 的解决方案非常满意。

答案1

大厨包资源允许以独立于发行版的方式删除或清除软件包:

package "gearman-server" do
  action :remove
end

如果已安装该包,此代码将删除该包;如果未安装该包,则不执行任何操作。

相关内容