目前可以通过 CLJ_CACHE 或 CLJ_CONFIG (以及 XDG..) 环境变量自定义用户缓存,
但项目目录内部路径由 clojure 工具 Bash 脚本中的以下代码设置:
`
确定是否使用用户或项目缓存
if [[ -f deps.edn ]]; then
cache_dir=.cpcache
else
cache_dir="$user_cache_dir"
fi
`
这使得在写保护的文件系统上运行 deps.edn 项目变得不可能。
可以通过重命名 deps.edn 并通过例如 "-Sdeps $(cat xdeps.edn)" 加载它来当前覆盖,
使用 CLJ_CACHE 环境变量,这反过来可能导致其他连锁问题,特别是在像 systemd 这样的引号敏感环境中。
提议:引入可选环境变量,以便为项目缓存目的地指定,例如
`
确定是否使用用户或项目缓存
if [[ -f deps.edn ]]; then
if [[ -n "$CLJ_PROJECT_CACHE" ]]; then
cache_dir="$CLJ_PROJECT_CACHE"
elif [[ -n "$XDG_PROJECT_CACHE" ]]; then
cache_dir="$XDG_PROJECT_CACHE"
else
cache_dir=.cpcache
fi
else
cache_dir="$user_cache_dir"
fi
`