我在
Windows上运行木偶,我想升级我使用msi安装的软件包(java).我使用安装包
package { 'java': ensure => installed,provider => 'msi',source => 'S:\jdk1.6.0_30.msi',install_options => { 'INSTALLDIR' => 'C:\tools\java' },}
现在我想升级到构建31,例如,我尝试运行
package { 'java': ensure => installed,source => 'S:\jdk1.6.0_31.msi',}
这实际上没有升级,因为已经安装了包’java’.当我尝试将“确保”值更改为最新值时,puppet表示提供者类型必须具有“可升级”功能.
这只是一个窗口限制吗?有没有办法使用msi包升级现有的Java安装?
Is this just a windows limitation?
与其他软件包提供商相比,MSI provider似乎相当有限.这肯定不是Windows / MSI的限制.我相信Windows提供了使这些选项有效所需的功能.
Is there a way to upgrade the existing Java install using msi
packages?
一种选择可能是放弃软件包msi提供程序,只需使用Exec语句完成所有操作. msiexec命令有很多选项.
您可能还想出一种安排事项的方法,这样如果需要进行升级,则首先清除旧版本.然后安装新版本,您可能必须跟踪某个文件或注册表中的版本,因为MSI提供程序不会向您提供有关该版本的任何信息.