我有以下食谱:
require 'fileutils'
require 'zip'
#require 'rubygems'
#require 'progressbar'
oraclePath = "\\\\MyServ\\Oracle Client\\Oracle_11gR2\\win64_11gR2_client.zip"
begin
tmpDir = Dir.mktmpdir("ora-")
puts "#{tmpDir}"
FileUtils.cp_r("#{oraclePath}","#{tmpDir}")
Zip::File.open("#{tmpDir}/win64_11gR2_client.zip") do |zipfile|
zipfile.each do |file|
f_path = File.join("#{tmpDir}", file.name)
FileUtils.mkdir_p(File.dirname(f_path))
zipfile.extract(file, f_path)
end
end
#temporary for testing
FileUtils.cp("c:/myresp.rsp", "#{tmpDir}/client")
system("#{tmpDir}/client/setup.exe -silent -responseFile \"#{tmpDir}/client/myresp.rsp\" -logLevel finest")
ensure
# remove the temp directories
FileUtils.remove_entry_secure tmpDir
end
我的问题似乎是对setup.exe
的调用依次调用另一个cmd进程...所以我想我之前从原来的setup.exe
调用返回安装实际上已经完成。还有另一种方法吗?
答案 0 :(得分:1)
您可能希望使用Chef的执行资源,而不是Ruby的system
命令: