请告诉我,这可能删除带有<{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支持静默卸载。
那么 - 为了正确卸载软件包,我应该怎么做?这甚至可能吗?
非常感谢您的帮助。
规格:
如果您需要其他信息,请随时提出。
答案 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
得到了这个想法