以下choco install命令可以正常工作:
choco Install 'InstallTest' -y --source 'C:\installtest' --params="'/serverinstance:MyServer /buildtype:OTP'"
我现在在Puppet清单中有以下内容:
package { 'InstallTest':
ensure => installed,
install_options => ['-params','"', /serverinstance:MyServer, /buildtype:OTP, '"'],
source => 'c:\installtest',
}
我认为我用逗号等正确覆盖空格,但是木偶解析器会抛出以下错误:
puppet : [1;31mError: Could not parse for environment production: invalid byte sequence in UTF-8[0m
没有install_options行,它编译得很好。
正确的语法应该是什么?
答案 0 :(得分:0)
问题在于:
install_options => ['-params','"', /serverinstance:MyServer, /buildtype:OTP, '"'],
虽然Puppet可以接受bare words as strings,但这些字符串的内容存在限制。这里的相关内容是他们必须
以小写字母开头,仅包含字母,数字,连字符(
-
)和下划线(_
)。
因此,您正在寻找这个:
install_options => ['-params', '"', '/serverinstance:MyServer', '/buildtype:OTP', '"'],
总体而言,无论是否需要,它都能更好地引用所有字符串。那更清楚了,它会让你免于麻烦。