Назад | Перейти на главную страницу

Есть ли способ вывести все параметры конфигурации в моем файле configuration.nix?

Я хочу установить пристань на nixos. Я могу установить его через system.systemPackages, но не могу запустить автозапуск (services.jetty не определен)

Я не хочу спрашивать здесь все варианты, поэтому я хочу знать, есть ли документация или способ распечатать все варианты в разделе услуг?

Я посмотрел Вот, и я там тоже ничего не могу найти

Чтобы ответить на заголовок вашего вопроса; 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 дает пример служебного модуля nixos systemd. Вы также можете просмотреть все остальные модули NixOS следить за тем, как они написаны. И, конечно, также обратитесь к соответствующим справочным страницам systemd.

Кстати, если вы это сделаете, вы обнаружите, что вам не нужно объявлять двоичный модуль модуля в systemPackages, потому что его путь втягивается в его модуль systemd, поэтому вместо этого вы просто взаимодействуете с ним.