旧版本的食谱安装了一个我不再需要的软件包。我的理解是,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
如果已安装该包,此代码将删除该包;如果未安装该包,则不执行任何操作。