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í.