我是nix的新手。我看到有一个--upgrade
选项可以安装新版本的软件包,但是如果这只是配置更改而该服务只需要一个信号来重新加载配置怎么办?
可以在文件系统事件中得到通知,但是nix是否会触摸属于不同版本软件包的文件?
答案 0 :(得分:2)
要视情况而定。
某些服务在其配置更改时会重新启动,而其他服务则不会。
我不知道它是如何实现的,但是不,Nix存储中的内容是不可变的,因此在Nix存储(/nix/store
)中不会发生任何文件接触的情况。但是,在NixOS上,有些一些文件不在Nix存储区中。 /etc
中有一些示例。此类文件不受Nix存储库的不变性约束。
答案 1 :(得分:1)
如果使用NixOS选项配置服务,则systemd单元通常将直接引用配置文件。更改选项将生成一个新的配置文件,级联导致单位文件更改。 NixOS会将其解释为重启服务的信号。
--upgrade
并没有您可能认为的那样也就是说,nixos-rebuild switch --upgrade
不会更改新配置的应用方式。它只是nix-channel --update && nixos-rebuild switch
的别名。