如何引用 Nix 包的存储路径?

Chr*_*ski 9 nix

我想添加与awscli命令完成相关的功能。

在我的特殊情况下,我需要从 获取脚本/nix/store/hvx7xqvjz7r08nsb9kssh1d9s302v3sp-awscli-1.16.106/share/zsh/site-functions/aws_zsh_completer.sh

如何获取/nix/store/hvx7xqvjz7r08nsb9kssh1d9s302v3sp-awscli-1.16.106包 ( awscli) 的存储路径 ( )?因为我不认为硬编码这个参考是理想的。

Emm*_*osa 6

您可以使用它configuration.nix来创建一个符号链接,/etc指向您想要获取的文件。然后你只需获取所述符号链接即可。例如,这样的事情......

配置.nix

environment.etc."zsh/zshrc".source = "${pkgs.awscli}/share/zsh/site-functions/aws_zsh_completer.sh";
Run Code Online (Sandbox Code Playgroud)

/etc/zsh/zshrc...将创建指向的符号链接/nix/store/hvx7xqvjz7r08nsb9kssh1d9s302v3sp-awscli-1.16.106/share/zsh/site-functions/aws_zsh_completer.sh

由于这是通过 完成的configuration.nix,因此每次构建系统时符号链接都会更新为正确的路径。

然后,您可以/etc/zsh/zshrc在您的~.zshrc.