如何在Windows 10安装Haskell Stack时彻底避开%APPDATA%目录?
完全自定义Haskell Stack路径(彻底避开%APPDATA%)
1. 预先创建自定义目录结构
在MSYS2 bash中执行命令,在目标目录下建立Stack所需的子目录:
mkdir -p /c/HaskellStack/{root,config}
其中root用于存放快照、编译器、下载的包文件,config用于存储Stack的配置文件。
2. 编写自定义配置文件
在/c/HaskellStack/config/config.yaml路径下创建配置文件,写入以下内容强制所有路径指向自定义目录:
# 指定全局配置目录 global-config: /c/HaskellStack/config # 指定栈根目录,与后续环境变量保持一致 root: /c/HaskellStack/root # 自定义用户配置文件路径 user-config: /c/HaskellStack/config/user-config.yaml # 缓存目录也放在自定义路径下 cache-dir: /c/HaskellStack/root/cache # 自定义本地二进制文件输出路径 local-bin-path: /c/HaskellStack/bin
如果不需要单独的用户配置,Stack会自动生成user-config.yaml到指定路径,无需手动创建。
3. 配置MSYS2 bash的永久环境变量
编辑MSYS2用户目录下的~/.bashrc文件,添加以下环境变量配置:
# 设定Stack核心路径变量,彻底避开AppData export STACK_ROOT="/c/HaskellStack/root" export STACK_CONFIG_PATH="/c/HaskellStack/config/config.yaml" export STACK_GLOBAL_CONFIG="/c/HaskellStack/config/config.yaml" # 可选:若用到Cabal工具,同步配置其路径 export CABAL_CONFIG="/c/HaskellStack/config/cabal.config" export CABAL_DIR="/c/HaskellStack/cabal"
保存文件后,重启MSYS2 bash或执行source ~/.bashrc让配置立即生效。
4. 验证配置有效性
运行以下命令检查Stack的路径配置:
stack path --root stack path --config-location stack path --global-config
所有输出应指向C:\HaskellStack下的对应目录,而非%APPDATA%路径。
此后执行stack ghci或其他Stack命令时,所有下载、安装、配置文件都会存储在自定义目录中,不会再触碰%APPDATA%。若之前%APPDATA%下有Stack残留文件,可手动删除C:\Users\[USER]\AppData\Roaming\stack目录避免干扰。
内容的提问来源于stack exchange,提问作者sdbbs
相关产品推荐
相关产品推荐

