M1 Max Mac安装iHaskell依赖magic-1.1失败求助
解决Stack安装magic库时找不到libmagic的问题
1. 确认libmagic已安装
首先确保Homebrew版的libmagic已经安装到位:
brew install libmagic
如果已经安装过,执行brew reinstall libmagic确保文件完整。
2. 配置pkg-config路径(关键)
M1芯片的Homebrew默认安装在/opt/homebrew,而系统默认的pkg-config搜索路径不包含这里,导致无法找到libmagic的配置文件。在fish shell中临时设置环境变量:
set -x PKG_CONFIG_PATH /opt/homebrew/lib/pkgconfig:$PKG_CONFIG_PATH
如果需要永久生效,把这条命令添加到~/.config/fish/config.fish文件末尾,下次启动shell自动加载。
3. 重新安装magic库
路径配置好后,直接用Stack安装即可,无需手动指定--extra-include-dirs和--extra-lib-dirs,pkg-config会自动处理依赖路径:
stack install magic-1.1
4. 验证配置是否正确
执行以下命令检查pkg-config能否识别libmagic:
pkg-config --modversion libmagic
如果输出具体版本号(比如5.44),说明路径配置成功。
备选方案:用cabal兜底
如果Stack仍有问题,可以先通过cabal安装magic库:
cabal install magic-1.1
再让Stack读取cabal的用户包数据库:
stack install magic-1.1 --package-db=user
内容的提问来源于stack exchange,提问作者Ricky Pang
相关产品推荐
相关产品推荐

