我正在开发一个系统自动化过程,它将使用 Powershell 安装 Chocolatey 以安装 Cygwin。随后我想安装 apt-cyg 的先决条件,这将允许我以编程方式从 cygwin 安装软件包。但是,我不知道与 Chocolatey 一起安装时,Cygwin 的 setup.exe 二进制文件放置在哪里。
我下载了cygwin软件包并检查了chocolateyInstall.ps1
. 看起来该包下载了exe
安装程序并传递了目标文件夹。
$binRoot = Get-BinRoot
$cygRoot = join-path $binRoot "cygwin"
$cygPackages = join-path $cygRoot packages
# https://cygwin.com/faq/faq.html#faq.setup.cli
$silentArgs = "-q -R $cygRoot -l $cygPackages -s http://mirrors.kernel.org/sourceware/cygwin/"
$validExitCodes = @(0)
Install-ChocolateyPackage "$packageName" "$installerType" "$silentArgs" "$url" "$url64" -validExitCodes $validExitCodes
Run Code Online (Sandbox Code Playgroud)
目标文件夹使用 Chocolatey“binroot”文件夹进行组合。这就是事情变得混乱的地方......这个文件夹有很多遗留位置。万无一失的方法是导入 Chocolatey 帮助程序模块并执行Get-BinRoot
. 您还需要找到 Chocolatey 安装文件夹。
PS> Import-Module $ENV:CHOCOLATEYINSTALL\chocolateyInstall\helpers\chocolateyInstaller.psm1; Get-BinRoot
Run Code Online (Sandbox Code Playgroud)
这将在我的系统上转储文件夹名称(以及大多数具有最新 Chocolatey 且无需手动更改该路径或任何其他环境变量的系统)
C:\tools
Run Code Online (Sandbox Code Playgroud)
所以,cygwin 二进制文件应该位于类似的路径下
C:\tools\cygwin
Run Code Online (Sandbox Code Playgroud)
仅供参考,cygwin 软件包确实建议为此类事情安装 cyg-get 软件包。