主要观点:使用 Nix 尤其是Home-Manager时,有时需测试或调试配置,避免 Home-Manager 配置重建很方便,为此作者在 Nix 配置中有个小脚本realise-symlinks
。
关键信息:
- 脚本定义:
{ pkgs, … }: let realise-symlink = pkgs.writeShellApplication { … }; in { home.packages = [ realise-symlink ]; }
。 - 功能:可对 Nix 存储的符号链接进行操作,如将符号链接转换为实际文件,添加写权限,也可用于目录,完成测试后可删除文件并重新运行 Home-Manager 激活。
- 示例:对
.zshrc
和zim-completion
的操作,以及对系统文件/etc/nix/nix.conf
的操作。
重要细节:脚本通过循环处理符号链接,根据链接类型进行不同操作,如对于目录先创建临时目录再复制内容,对于文件直接复制并更改权限等。完成测试后可通过rm -rf
删除相关文件,然后重启 Home-Manager 服务或运行home-manager switch
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。