如何在Chocolatey包中将参数传递给安装程序?

Rag*_*hav 12 chocolatey

我从MSI创建了一个包.但是,我需要传递自定义参数.

/i SERVER='xx.yyy.com
Run Code Online (Sandbox Code Playgroud)

以下是我通过阅读choco命令规范尝试的一些事情,但没有一个工作.

> choco install foo -y --params "SERVER='xx.yyy.com'"
> choco install foo -y --params "SERVER=xx.yyy.com"
> choco install foo -y --params "SERVER= xx.yyy.com"
Run Code Online (Sandbox Code Playgroud)

如何将安装选项传递给安装程序?

fer*_*der 14

如果您要传递给本机安装程序,请使用--install-arguments而不是--package-parameters.

https://chocolatey.org/docs/commands-install#options-and-switches

 --ia, --installargs, --installarguments, --install-arguments=VALUE
 InstallArguments - Install Arguments to pass to the native installer in 
   the package. Defaults to unspecified.

-o, --override, --overrideargs, --overridearguments, --override-arguments
 OverrideArguments - Should install arguments be used exclusively without 
   appending to current package passed arguments? Defaults to false.

 --params, --parameters, --pkgparameters, --packageparameters, --package-parameters=VALUE
 PackageParameters - Parameters to pass to the package. Defaults to 
   unspecified.
Run Code Online (Sandbox Code Playgroud)

此外,您可能希望浏览有关如何传递选项和开关的文档 - https://chocolatey.org/docs/commands-reference#how-to-pass-options-switches:

  • 引用值:当您需要引用整个参数时,例如使用空格时,请使用双引号和撇号("'value'")的组合.在cmd.exe中你可以使用双引号("value")但在powershell.exe中你应该使用反引号(`"value`")或撇号('value').使用该组合允许两个shell无问题地工作,除非下一部分适用.
  • 在参数中传递引号:当您需要将引用的值传递给类似本机安装程序的东西时,您将获得一个充满乐趣的世界.在cmd.exe中,您必须像这样传递:-ia "/yo=""Spaces spaces""".在PowerShell.exe中,您必须像这样传递:-ia '/yo=""Spaces spaces""'.没有其他组合可行.在PowerShell.exe如果你在版本V3 +,你可以尝试--%之前-ia 刚刚通过传递ARGS原样,这意味着它不应该要求任何特殊的解决办法.

  • 他们真的应该将此作为手册页中的示例之一 (3认同)

spe*_*ter 6

我发现很难找到有关将值设置为 Choco 包参数的信息!

choco install -h 没有多大帮助。

作为设置包参数值的简单示例(与 MSI 参数相反 - 这是完全不同的),这是一个简单可行的示例:

choco install python2 --package-parameters='"/InstallDir:D:\Python2"'
Run Code Online (Sandbox Code Playgroud)

“/InstallDir”被记录为“python2”Choco 包的包参数。

请注意,“--package-parameters”有几个别名,如果您想节省输入,最短的是“--params”。

还要注意冒号的使用,而不是“=”,其中分配了值。

如果值中需要空格,请用额外的双引号将值括起来 - 即需要四个新字符。

...我在 Choco 论坛上要求改进文档。

  • “我已要求 choco 论坛改进文档。” 哈哈,我同意,他们的文件很糟糕。 (3认同)