web-dev-qa-db-ja.com

Chocolateyパッケージでインストーラにパラメータを渡すにはどうすればよいですか?

MSIからパッケージを作成しました。ただし、カスタムパラメータを渡す必要があります。

/i SERVER='xx.yyy.com

ここに私が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"

インストーラにインストールオプションを渡すにはどうすればよいですか?

13
Raghav

ネイティブインストーラーに渡す場合は、--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.

さらに、オプションとスイッチを渡す方法に関するドキュメントを調べることもできます- https://chocolatey.org/docs/commands-reference#how-to-pass-options-switches

  • 値の引用:スペースを使用する場合など、引数全体を引用する必要がある場合は、二重引用符とアポストロフィ("'value'")を組み合わせて使用​​してください。 cmd.exeでは二重引用符("value")を使用できますが、powershell.exeではバッククォート( `" value` ")またはアポストロフィ('value')を使用する必要があります。組み合わせを使用すると、次のセクションが適用される場合を除いて、両方のシェルが問題なく動作することができます。
  • 引数に引用符を渡す:引用符で囲まれた値をネイティブインストーラーのようなものに渡す必要があるとき、あなたは楽しい世界にいます。 cmd.exeでは、-ia "/yo=""Spaces spaces"""のように渡す必要があります。 PowerShell.exeでは、次のように渡す必要があります:-ia '/yo=""Spaces spaces""'。他の組み合わせは機能しません。 PowerShell.exeでバージョンv3 +を使用している場合は、--%の前に-iaを試して、引数をそのまま渡すことができます。つまり、特別な回避策は必要ありません。
14
ferventcoder

Chocoパッケージのパラメーターに値を設定する方法についての情報を見つけるのは非常に困難です。

choco install -hはあまり役に立ちません。

(まったく異なるMSIパラメーターではなく)パッケージパラメーターの値を設定する簡単な例として、簡単で実行可能な例を次に示します。

choco install python2 --package-parameters='"/InstallDir:D:\Python2"'

「/ InstallDir」は、「python2」Chocoパッケージのパッケージパラメータとして記載されています。

「--package-parameters」にはいくつかのエイリアスがあることに注意してください。入力を節約したい場合は、「-params」が最短です。

また、値が割り当てられている「=」ではなく、コロンが使用されていることに注意してください。

値にスペースが必要な場合は、追加の二重引用符のペアで値を囲みます。つまり、4つの新しい文字が必要です。

...私はドキュメントを改善するためにChocoフォーラムに依頼しました。

4
spechter