为何全新安装Haskell-Stack与GHC占用存储空间如此庞大?
聊聊Haskell Stack安装后
.stack目录体积超标的问题 嘿,我完全懂这种诧异的感觉!当初用官方脚本全新安装Haskell Stack后,一看$HOME/.stack/目录直接占了1.5GB,可安装包明明才120多MB,后续做了些项目操作后,这目录居然涨到2.5GB了。
作为一个常年跟Java打交道的开发者(毕竟Java因为兼容和全功能覆盖,一直被吐槽体积大),我特意对比了下自己的Java环境:包含JDK、独立JDK,再加上带JDK源码的IDE,加起来也就1.5GB左右——这对比下来,Stack的目录体积确实有点夸张。
为啥.stack目录这么大?
主要是这几个原因在撑体积:
- GHC编译器本身:Stack会自动下载适配的GHC(Glasgow Haskell Compiler)版本,GHC本身就不算小,还得附带完整的标准库和依赖组件,这是体积的核心来源。
- 本地包缓存:Stack会把你所有项目用到的Hackage包都缓存到本地,方便后续新项目直接复用,用的包越多、版本越多,缓存就越大。
- 构建中间产物:部分项目的临时构建文件、编译输出也会存在这个目录里,日积月累下来也会占不少空间。
怎么清理空间?
如果你觉得空间占用太离谱,可以试试这些命令:
- 清理当前项目的旧构建产物:
stack clean - 删除所有未被现有项目引用的缓存包:
stack purge - 移除不再使用的旧版本GHC:
stack ghc-prune
不过要提醒一句,stack purge和stack ghc-prune会删掉缓存的包和旧GHC,下次需要用到的时候得重新下载,所以要根据自己的情况权衡空间和构建速度哦。
内容的提问来源于stack exchange,提问作者Klorax
相关产品推荐
相关产品推荐

