Windows系统下ghcup安装GHC 9.4.3失败的技术求助
GHCup安装GHC时遇到curl证书吊销检查错误的解决方案
问题详情
执行ghcup install ghc 9.4.3安装GHC时失败,错误核心为curl的证书吊销检查失败:
[ Warn ] 有可用的新版本cabal,执行`ghcup install cabal 3.8.1.0`进行升级 [ Info ] 正在验证gs.exe的摘要 [ Info ] 正在下载:https://downloads.haskell.org/~ghc/9.4.3/ghc-9.4.3-x86_64-unknown-mingw32.tar.xz 到文件 C:\ghcup\tmp\ghcup-ad812d90b7e92bc1\ghc-9.4.3-x86_64-unknown-mingw32.tar.xz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - 吊销函数无法检查证书的吊销情况。 [ Error ] 下载失败:进程 "curl" 参数为 ["-fL", "-o", [ ... ] "C:\\ghcup\\tmp\\ghcup-ad812d90b7e92bc1\\ghc-9.4.3-x86_64-unknown-mingw32.tar.xz.tmp", [ ... ] "https://downloads.haskell.org/~ghc/9.4.3/ghc-9.4.3-x86_64-unknown-mingw32.tar.xz"] 退出码35。 [ Error ] 同时可查看日志文件:C:\ghcup\logs
日志内容:
Debug: 识别到平台为:Windows Debug: 上次访问在9.7176814秒前,缓存间隔为300秒 Debug: 正在解码yaml文件:C:\ghcup\cache\ghcup-0.0.7.yaml Warn: 有可用的新版本cabal,执行`ghcup install cabal 3.8.1.0`进行升级 Info: 正在验证gs.exe的摘要 Debug: 请求安装GHC版本9.4.3 Info: 正在下载:https://downloads.haskell.org/~ghc/9.4.3/ghc-9.4.3-x86_64-unknown-mingw32.tar.xz 到文件 C:\ghcup\tmp\ghcup-ad812d90b7e92bc1\ghc-9.4.3-x86_64-unknown-mingw32.tar.xz Error: 下载失败:进程 "curl" 参数为 ["-fL", "-o", "C:\\ghcup\\tmp\\ghcup-ad812d90b7e92bc1\\ghc-9.4.3-x86_64-unknown-mingw32.tar.xz.tmp", "https://downloads.haskell.org/~ghc/9.4.3/ghc-9.4.3-x86_64-unknown-mingw32.tar.xz"] 退出码35。 Error: 同时可查看日志文件:C:\ghcup\logs
直接在PowerShell中执行curl命令(如下)也触发相同错误:
curl.exe -fL -o "C:\ghcup\tmp\ghcup-3da46c8d7d5a204f\ghc-9.2.5-x86_64-unknown-mingw32.tar.xz.tmp" "https://downloads.haskell.org/~ghc/9.2.5/ghc-9.2.5-x86_64-unknown-mingw32.tar.xz"
错误信息:curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - 吊销函数无法检查证书的吊销情况。
解决方法
方法1:临时禁用curl证书吊销检查
在当前PowerShell会话中设置环境变量,让ghcup调用curl时跳过吊销检查:
$env:GHCUP_CURL_OPTS="--ssl-no-revoke"
设置完成后重新执行ghcup install ghc 9.4.3即可。
若要永久生效,可将该环境变量添加到系统/用户环境变量:
- 打开「系统属性」→「高级」→「环境变量」
- 新建变量,变量名
GHCUP_CURL_OPTS,变量值--ssl-no-revoke - 重启PowerShell后执行安装命令
方法2:修复Windows证书服务
- 按下Win+R,输入
services.msc打开服务管理器 - 找到「Cryptographic Services」服务,确认其处于运行状态
- 若未运行则右键启动,若已运行则右键重启
- 重新尝试ghcup安装命令
方法3:手动下载安装包后重试
- 手动下载对应版本的GHC安装包(如
ghc-9.4.3-x86_64-unknown-mingw32.tar.xz) - 将下载的文件放到ghcup临时目录(路径可从错误信息中获取,如
C:\ghcup\tmp\ghcup-ad812d90b7e92bc1\) - 再次执行
ghcup install ghc 9.4.3,ghcup会检测到已下载文件并跳过下载步骤
内容的提问来源于stack exchange,提问作者orsnmkhl
相关产品推荐
相关产品推荐

