使用Chef删除包

时间:2015-08-05 07:44:59

标签: java package chef uninstall

请告诉我,这可能删除带有<{1>}的 Chef 的Java JDK 包,或者我必须执行命令以静默卸载?更好的是第一种选择。

我试过这种方式:

windows_package

甚至添加了选项windows_package node['name']['JDK1.6'] do action :remove end ,仍然出现此错误:

installer_type       :custom

好吧,我没有想法。在official Opscode site我已找到此信息:

FATAL: Mixlib::ShellOut::ShellCommandFailed: windows_package[Java(TM) SE Development Kit 6 Update 35] (line 4) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0, 42, 127], but received '1603' ---- Begin output of MsiExec.exe /I{32A3A4F4-B792-11D6-A78A-00B0D0160350} /qn ---- STDOUT: STDERR: ---- End output of MsiExec.exe /I{32A3A4F4-B792-11D6-A78A-00B0D0160350} /qn ---- Ran MsiExec.exe /I{32A3A4F4-B792-11D6-A78A-00B0D0160350} /qn returned 1603

但据我所知,JDK支持静默卸载。

那么 - 为了正确卸载软件包,我应该怎么做?这甚至可能吗?

非常感谢您的帮助。

规格:

  • Chef 12.4.1
  • Windows 7
  • Java JDK版本:6u35,7u79,8u45

如果您需要其他信息,请随时提出。

2 个答案:

答案 0 :(得分:0)

这看起来可能不是厨师问题。由于某种原因,卸载程序正在出错。尝试谷歌搜索“java安装错误1603”,你会看到一堆帖子,包括一个显然是目前正在调查的错误https://www.java.com/en/download/help/error_1603.xml - 虽然听起来可能是安装而不是卸载。

尝试手动删除它并进行调试,然后一旦理解了它就可以为它做主厨。

答案 1 :(得分:0)

我做了类似于你答案的事情,但它只需要包名而不是注册表中的代码。

execute 'uninstall_jdk8u72' do
  command "wmic product where name=\"#{node[:java8u72][:package_name]}\" call uninstall"
end

我从https://github.com/chef-cookbooks/windows/issues/89

得到了这个想法