有什么办法可以输出我的 configuration.nix 中的所有配置选项吗?

有什么办法可以输出我的 configuration.nix 中的所有配置选项吗?

我想在 nixos 上设置 jetty。我可以通过 system.systemPackages 安装它,但无法让它自动启动(services.jetty 未定义)

我不想在这里询问每个选项,所以我想知道是否有文档或方法可以打印服务下的每个选项?

我看了这里,我在那里也找不到任何东西

答案1

回答你的问题的标题;NixOS实用程序将让你查询你的评估nixos-option的属性。configuration.nix

我不知道 NixOS 是否明确提供了打印整个内容的方法,但你可以通过使用相同的功能NixOS 在内部使用 来评估 configuration.nix。IIRC 您需要用 来调用它{ modules = [ /etc/nixos/configuration.nix ]; }。然后,您可以利用 Nix 的内置toXML功能将评估后的配置转换为可打印的字符串。builtins.toXML--xml标志都是nix-instantiate访问该功能的可能方法。

我应该说,如果你这样做,很多的 xml。

但我认为这实际上不是你问题的重点。听起来你只是想检查一下所有可用的预定义 NixOS 服务是什么?配置选项附录NixOS 手册列出该信息。

然而,如果您正在寻找 Jetty 的服务单元,目前似乎还没有。

我对 Jetty 一无所知,但我想你可以很容易地编写自己的(我自己编写了几个,发现它相当简单)。NixOS wiki 上的此条目给出了 nixos systemd 服务单元的示例。您还可以查看所有其他 NixOS 模块了解它们的写法。当然,还要查阅相关的 systemd 手册页。

顺便说一句,如果你这样做,你会发现你不需要在中声明模块二进制文件systemPackages,因为它的路径会被拉入它的 systemd 单元,所以你只需在那里与它交互即可。

相关内容