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

如何将Haskell Stack及构建产物安装到非C盘(Windows环境)

解决Windows下Haskell Stack迁移至非C盘及本地项目构建问题

1. 迁移Haskell Stack安装目录

  • 卸载Chocolatey安装的Stack:打开管理员PowerShell执行
    choco uninstall haskell-stack -y
    
  • 下载对应版本(2.11.1)的Windows二进制包,解压到D:\HaskellStack\stack,确保stack.exe在该目录下
  • 编辑用户环境变量Path,添加D:\HaskellStack\stack,移除原C盘Stack的路径
  • 验证:新开PowerShell执行stack --version,确认版本与路径正确

2. 迁移全局存储目录(C:\sr)

  • 关闭所有Stack进程,复制C:\sr到D:\HaskellStack\sr
  • 删除原C:\sr目录(复制完成后操作)
  • 配置全局存储路径:
    方法一:添加用户环境变量STACK_ROOT,值设为D:\HaskellStack\sr
    方法二:执行PowerShell命令
    stack config set root D:\HaskellStack\sr --global
    
  • 验证:执行stack path --root,输出应为D:\HaskellStack\sr

3. 配置本地项目构建,避免全局环境写入

针对小型项目,可让所有构建产物、依赖局限在项目目录内:

  • 初始化项目时指定本地配置:
    stack init --resolver lts-21.25 --local-bin-path ./bin --work-dir ./stack-work
    
    (lts-21.25可替换为适配的快照版本,./bin为本地二进制输出目录,./stack-work为构建临时文件目录)
  • 编辑项目根目录的stack.yaml,添加以下配置强制本地化:
    package-indices:
      - download-prefix: https://hackage.haskell.org/package/
        hackage-security:
          keyids:
            - 0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d
            - 1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42
            - 280b10153a522681163658cb49f632cde3f38d768b736ddbc901d99a1a772833
            - 2a96b1889dc221c17296fcc2bb34b908ca9734376f0f361660200935916ef201
            - 2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3
            - 51f0161b906011b52c6613366b9b610b6e3c31748276e4a6f934c12f00d0645c
            - 772e9f4c7db33d251d5c6e357199c819e569d130857dc225549b40845ff0890d
            - aa315286e6ad281ad61182235533c41e806e5a78a92a4fdfb6c0b928cf92d106
            - fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0
          key-threshold: 3
    work-dir: ./stack-work
    local-bin-path: ./bin
    install-global: false
    
  • 后续构建、测试直接在项目目录执行:
    stack build
    stack test
    
    所有产物将存放在项目目录的stack-work和bin中,不会写入C盘或全局环境

4. 验证配置

执行stack path,检查输出中的root、local-bin-path、work-dir是否符合预期;构建项目后确认C盘原Stack路径无新增文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 20:55:53