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

如何修复WSL Ubuntu环境下使用ghcup安装GHC的报错问题

报错原因
  • 直接触发原因可从报错日志定位:安装过程调用的strip工具无法识别Linux 64位ELF二进制,导致处理后的GHC相关文件结构异常,后续ghc-pkg工具无法正常修改包数据库,最终make安装流程失败。
  • 根因分为三类:
    1. WSL默认将Windows系统路径加入到Linux环境的PATH中,安装时优先调用了Windows原生的strip程序,而非WSL Ubuntu自带的GNU strip,Windows版本的strip无法处理Linux格式的二进制文件。
    2. 若当前使用WSL1,其对Linux系统调用的兼容度不足,无法支持GHC安装过程中的部分文件操作逻辑。
    3. 之前安装残留的异常文件、~/.ghcup目录权限不足,也会导致写入失败。
解决方法

按优先级尝试以下方案:

方案1:临时屏蔽Windows路径+禁用strip安装

  • 先执行命令清理历史残留:
rm -rf ~/.ghcup
rm -rf /tmp/ghcup-*
  • 临时修改PATH变量,仅保留Linux系统路径:
    export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • 重新执行安装命令,额外添加--no-strip参数跳过strip处理:
    ghcup install ghc recommended --no-strip
  • 安装完成后执行ghcup set ghc 8.10.7即可正常使用。

方案2:升级WSL版本

若方案1无效,在Windows CMD/PowerShell中执行命令检查WSL版本:
wsl --list --verbose
如果对应Ubuntu子系统的版本为1,建议升级到WSL2,升级完成后重新执行方案1的安装步骤即可。

方案3:使用系统源安装

若不需要灵活切换GHC版本,可直接使用Ubuntu官方源安装:
sudo apt update && sudo apt install -y ghc cabal-install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:45:01