GitHub Actions中Windows Server 2022调用curl.exe遇UNIX证书存储错误
解决GitHub Actions Windows环境下curl证书路径错误问题
问题原因
GitHub的Windows Server 2022 runner预装了Git,Git Bash中的curl会被优先加入系统PATH。这个版本的curl默认带有UNIX风格的证书路径配置,即使添加了--ca-native参数,仍会被原有配置干扰,导致出现查找/usr/ssl/certs/ca-bundle.crt的错误。
解决方案
方案1:指定系统自带curl的完整路径
Windows系统自带的curl位于C:\Windows\System32\curl.exe,直接调用这个版本即可避开Git Bash的curl干扰:
- name: Install jags (Windows) if: runner.os == 'Windows' run: | C:\Windows\System32\curl.exe --ca-native -o wjags.exe --url https://deac-fra.dl.sourceforge.net/project/mcmc-jags/JAGS/4.x/Windows/JAGS-4.3.1.exe wjags.exe /S del wjags.exe shell: cmd
方案2:改用PowerShell的下载命令
直接使用PowerShell的Invoke-WebRequest替代curl,完全避免curl版本冲突问题:
- name: Install jags (Windows) if: runner.os == 'Windows' run: | Invoke-WebRequest -Uri "https://deac-fra.dl.sourceforge.net/project/mcmc-jags/JAGS/4.x/Windows/JAGS-4.3.1.exe" -OutFile "wjags.exe" Start-Process -FilePath "wjags.exe" -ArgumentList "/S" -Wait Remove-Item "wjags.exe" shell: powershell
内容的提问来源于stack exchange,提问作者Lukas D. Sauer
相关产品推荐
相关产品推荐

