首页 > 解决方案 > 包资源中only_if 验证包是否安装

问题描述

要验证是否安装了软件包,然后运行命令以删除该软件包,可以通过以下脚本完成

execute 'yum -y remove prelink' do
  only_if "rpm -qa | grep 'prelink'"
end

但是,这看起来像是一种解决方法,而我想在本地使用Chef 中的资源。

我可以这样做:

package 'remove prelink package' do
  package_name 'prelink'
  action :remove
end

但是,我不知道在action :remove执行之前是否进行检查。如果不是,我希望有类似的东西,only_if { ::Package.installed?(‘prelink’) }但这似乎不是受支持的声明

标签: rubychef-infra

解决方案


推荐阅读