实现 Nix 符号链接 —— kokada

主要观点:使用 Nix 尤其是Home-Manager时,有时需测试或调试配置,避免 Home-Manager 配置重建很方便,为此作者在 Nix 配置中有个小脚本realise-symlinks
关键信息:

  • 脚本定义:{ pkgs, … }: let realise-symlink = pkgs.writeShellApplication { … }; in { home.packages = [ realise-symlink ]; }
  • 功能:可对 Nix 存储的符号链接进行操作,如将符号链接转换为实际文件,添加写权限,也可用于目录,完成测试后可删除文件并重新运行 Home-Manager 激活。
  • 示例:对.zshrczim-completion的操作,以及对系统文件/etc/nix/nix.conf的操作。
    重要细节:脚本通过循环处理符号链接,根据链接类型进行不同操作,如对于目录先创建临时目录再复制内容,对于文件直接复制并更改权限等。完成测试后可通过rm -rf删除相关文件,然后重启 Home-Manager 服务或运行home-manager switch
阅读 9
0 条评论