nixos – ¿Hay alguna forma de mostrar todas las opciones de configuración en mi configuration.nix?

Pregunta:

Quiero instalar embarcadero en nixos. Puedo instalarlo a través de system.systemPackages pero no puedo hacer que se inicie automáticamente (services.jetty no está definido)

No quiero preguntar todas las opciones aquí, así que quiero saber si hay documentación o una forma de imprimir todas las opciones en los servicios.

Miré aquí y tampoco puedo encontrar nada allí.

Respuesta:

Para responder al título de su pregunta; el programa de utilidad NixOS nixos-option le permitirá consultar qué atributos de su configuration.nix evalúan.

No sé si NixOS proporciona explícitamente una forma de imprimir todo, pero probablemente podría hacerlo usted mismo con bastante facilidad utilizando la misma función que NixOS usa internamente para evaluar configuration.nix. IIRC, necesitaría llamarlo con { modules = [ /etc/nixos/configuration.nix ]; } . Luego, podría hacer uso de la funcionalidad toXML incorporada de Nix para obtener la configuración evaluada en una cadena imprimible. builtins.toXML o el indicador --xml para nix-instantiate son ambas formas posibles de acceder a esa funcionalidad.

Debo decir que si haces eso, habrá una gran cantidad de xml.

Pero creo que ese no es realmente el cuerpo de tu pregunta. Parece que solo quieres comprobar cuáles son todos los servicios predefinidos de NixOS disponibles. El apéndice de opciones de configuración del manual de NixOS enumera esa información.

Sin embargo, si está buscando una unidad de servicio para Jetty, parece que actualmente no hay una.

No sé nada sobre Jetty, pero imagino que podrías escribir el tuyo con bastante facilidad (escribí algunos para mí y lo encontré bastante sencillo). Esta entrada en la wiki de NixOS da un ejemplo de una unidad de servicio systemd de nixos. También puede revisar todos los demás módulos de NixOS para seguir cómo están escritos. Y, por supuesto, consulte también las páginas de manual relevantes de systemd.

En una nota al margen, si lo hace, encontrará que no necesita declarar un módulo binario en systemPackages , porque su ruta se introduce en su unidad systemd, por lo que simplemente interactúa con él allí.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir arriba