如何清除Nix及NixOS中nix-env查询产生的缓存?
清除Nix/NixOS中
nix-env --query类命令产生的缓存方法 当你执行nix-env --query --json --available --file <远程nixpkgs URL>这类命令时,Nix会缓存远程拉取的nixpkgs归档文件,以及评估过程中生成的临时Store路径。以下是几种清理方式:
1. 彻底清理未被使用的Nix Store内容
执行垃圾收集命令,删除所有没有GC根引用的Store项(包括临时评估的nixpkgs派生):
nix-collect-garbage -d
-d参数会删除所有旧的生成代,确保彻底清理未被使用的缓存内容。
2. 清理下载的远程资源缓存
远程拉取的tar.gz归档文件默认存在用户级缓存目录,直接删除整个缓存目录即可:
rm -rf ~/.cache/nix
如果是用root权限执行的命令,对应的缓存路径是/var/cache/nix,清理命令:
sudo rm -rf /var/cache/nix
清理后不会影响已安装的包,下次执行查询命令时会重新拉取资源。
3. 清理特定哈希对应的缓存
如果只想清理某个特定commit哈希的nixpkgs缓存,可通过查找并删除相关文件:
HASH=a7cc81913bb3cd1ef05ed0ece048b773e1839e51 find ~/.cache/nix -name "*${HASH}*" -delete
替换${HASH}为目标commit哈希即可精准清理对应缓存。
内容的提问来源于stack exchange,提问作者Neil
相关产品推荐
相关产品推荐

