爲MyService
我在myservice.nix
寫了nixos服務,我用它列入/etc/nixos/configuration.nix
:使用尼克斯打字系統`尼克斯-instantiate`
imports [ /path/to/myservice.nix ];
後來我使用它裏面configuration.nix
:
services.myservice.enable = true;
問題
在一個我不能使用nixos-rebuild switch
,但因爲使用foo = mkOption { type = types.int; ...}
鏈接到nix
鏈接到options system
即使我只是想使用nix計算nginx
的配置文件,我也不得不使用options systems
。
如何僅評估nginx.conf?
@aszlig給我寫了下面的命令:
nix-instantiate --eval --strict -E '(import <nixpkgs/nixos> { configuration = { imports = [ nixcloud-reverse-proxy/nixcloud-reverse-proxy.nix ]; services.nixcloud-reverse-proxy.enable = true; }; }).config.system.build.configsFromPath'
執行結果
nix-instantiate --eval --strict -E '(import <nixpkgs/nixos> { configuration = { imports = [ ./nixcloud-reverse-proxy.nix ]; services.nixcloud-reverse-proxy.enable = true; }; }).config.system.build.configsFromPath'
error: attribute ‘configsFromPath’ missing, at (string):1:1
(use ‘--show-trace’ to show detailed location information)
更新
nix-build '<nixpkgs/nixos>' -A config.systemd.services.nixcloud-reverse-proxy.runner -I nixos-config=./configuration.nix
...
/nix/store/lp2jbb1wahhlr7qkq81rmfvk84mjk1vk-nixcloud-reverse-proxy-runner
現在我可以使用到grep conf文件:
cat /nix/store/lp2jbb1wahhlr7qkq81rmfvk84mjk1vk-nixcloud-reverse-proxy-runner | grep -o ' /nix/store/.*nginx-reverse-proxy.conf'
...有種解決方法,但不是非常精確!我寧願喜歡目錄中的配置文件。
clever: nix-build''-A config.systemd.services.nixcloud-reverse-proxy.runner -I nixos-config =/etc/nixos/configuration.nix –
qknight