nixOS
Linux operation system based on Nix. We can use flakes as a configuration management of nixOS. flake has output type nixosConfigurations. This defines nixOS configurations.
Options for nixos configuration
ssh authorized_keys は ~/.ssh/authorized_keys ではないところに鍵を配置することもある。実際の config を確認する。
systemd
Modules
デフォルト?のモジュールはここで定義されている
モジュールの option を検索できるページもある
options 配下に services を追加するのは慣習らしい
nixos-optionというコマンドがあるみたい
mkPackageOption
module で使うパッケージを指定するオプション
configは option で定義されている値を実際に設定する属性
config というスコープ?は省略してもいいらしい?
あるモジュールで import した他のモジュールの option もここで定義することができる
モジュールの引数には何が、どうやって渡される?
これなのだろうか?
そうみたい
他の値を渡せる仕組みもある
submodule
option をネストしたり、同じ option を使いまわしたい時に使える
実例
submodule 関数?は config と name を引数に取ることができる
module は関数であることができる
lib を引数に撮ることがあり、それは nixpkgs.lib である
lib.types が使えるのはこれが理由
specialArgs
nixOS configuration をテストするために、ローカルで VM を立ち上げることができる