如果配方中的rpm包可能与其相关联,那么如何删除它?
我的用例是我是测试人员,并使用厨师来设置/升级/降级我的测试环境。为了确保升级时我有一个干净的环境,我删除了使用以下命令安装的应用程序:
rpm_package rpmName do
action[:remove]
end
但是,有时我的环境还会安装额外的“插件”rpm,这取决于主应用程序的rpm。当我运行chef并运行remove main app的package命令时,由于依赖性问题,chef失败了:
Chef::Exceptions::Exec
----------------------
rpm -e <main app> returned 1, expected 0
在服务器上:
[root@qa ~]# rpm -e <main app>
error: Failed dependencies:
<main app> >= X.x.x is needed by (installed) <plugin rpm>
我查看了rpm_package的Chef文档,但没有遇到任何可以帮助我的东西。有没有人有任何建议?
答案 0 :(得分:1)
不幸的是,这是RPM的副产品,而不是Chef。您需要查询RPM以确定哪些包将其用作依赖项并首先卸载它们。它就像反向依赖管理一样。
答案 1 :(得分:1)
是否有使用yum的厨师规则(或其他任何名称)?要求yum删除另一个包依赖的包将要求删除依赖包,只有在被告知不要时才会失败。