You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac OSX 10.8下安装idris遇Cabal/Stack多问题求助

解决Mac OS X 10.8下安装Idris的一系列问题

我来逐个拆解你遇到的问题,这些都是旧系统(OS X 10.8)搭配老版本Haskell工具链常见的兼容性坑:

1. Cabal update 503错误,陷入更新循环

原因

Hackage早在多年前就强制要求HTTPS访问,但你使用的旧版Cabal默认还是走HTTP地址http://hackage.haskell.org,服务器直接返回503拒绝请求;另外OS X 10.8自带的OpenSSL版本过旧,即便改成HTTPS,也可能因为不支持TLS 1.2+无法建立安全连接。

解决办法

  • 先修改Cabal配置强制用HTTPS:
    编辑~/.cabal/config,找到remote-repo行,把地址替换成https://hackage.haskell.org/
  • 如果修改后仍失败,先升级Cabal本身:
    尝试运行cabal install cabal-install,如果这个命令也失败,手动下载兼容OS X 10.8的Cabal二进制包,替换系统里的旧版本。

2. regex-base安装失败,日志文件不存在

原因

旧版本Cabal存在bug:构建失败时会声称日志写入指定文件,但实际上要么~/.cabal/logs目录没创建,要么你没有该目录的写入权限,导致日志根本没生成。

解决办法

  • 先手动创建日志目录:
    mkdir -p ~/.cabal/logs
    
    之后再重新运行cabal install idris
  • 如果还是不行,加上--verbose参数执行命令,这样构建日志会实时输出到终端,不用依赖本地日志文件,方便排查具体编译错误。

3. Stack工具链的各类错误

原因

两个Stack问题的核心都是版本不兼容:

  • 你安装的Stack 1.1.2太老旧,无法解析新版本snapshot的YAML配置(比如extra-deps格式、新的flag命名规则)
  • OS X 10.8自带的OpenSSL不支持TLS 1.2,导致无法从GitHub下载新的Stack二进制包——GitHub早已禁用TLS 1.0/1.1协议。

解决办法

先搞定Stack的安装/升级

  • 手动下载兼容OS X 10.8的旧版Stack:找Stack 1.6.x或更早的版本(这些版本的下载链接还支持旧TLS协议,或者用浏览器直接下载对应二进制包,浏览器可能有更新的SSL支持),解压后把stack二进制放到/usr/local/bin覆盖旧版本。
  • 或者用Homebrew安装支持TLS 1.2的OpenSSL,再重新编译curl:
    brew install openssl@1.0
    export PATH="/usr/local/opt/openssl@1.0/bin:$PATH"
    export LDFLAGS="-L/usr/local/opt/openssl@1.0/lib"
    export CPPFLAGS="-I/usr/local/opt/openssl@1.0/include"
    
    之后再重新运行Stack的安装脚本。

用Stack安装Idris

安装好兼容的Stack版本后,指定一个适配OS X 10.8的旧snapshot(lts-10+的依赖库大多不再支持旧系统),比如:

stack --resolver lts-9.21 install idris

4. Curl下载Stack失败的SSL错误

原因

OS X 10.8自带的curl依赖系统旧版OpenSSL,不支持TLS 1.2,而GitHub现在只允许TLS 1.2及以上的连接,导致握手失败。

解决办法

  • 用浏览器打开Stack的发布页面,找到适配OS X 10.8的旧版本(比如stack-1.6.5-osx-x86_64.tar.gz),手动下载解压后,把stack二进制放到/usr/local/bin覆盖旧版本。
  • 或者按照上面的方法,用Homebrew安装新的OpenSSL和curl,再重新运行安装脚本。

另外提一句:OS X 10.8确实太老旧了,很多现代软件的官方支持都已停止,如果条件允许,升级到更高版本的macOS会从根本上解决这类兼容性问题。

内容的提问来源于stack exchange,提问作者Dmitri Zaitsev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:41:09