VCSで/etc/nixos/resultを追跡しますか?

VCSで/etc/nixos/resultを追跡しますか?

NixOSビルドを簡単にロールバックできますが、元に戻すことはできません/etc/nixos/configuration.nix。したがって、/etc/nixos/Gitなどのバージョン管理システム(VCS)でこれを追跡するのが一般的です。

これを行うときに/etc/nixos/resultシンボリックリンクも追跡する必要がありますか?なぜ? /なぜダメ?

答え1

これにより大きな利点は見られませんが、この点で私のユースケースが単純すぎる可能性があります。

私はシステム構成ファイルの名前を指定するかどうかによって、およびls -l /nix/var/nix/profiles//またはを表示することを好み、通常はガベージコレクションしたいシンボリックリンクを手動で削除します。ls -l /nix/var/nix/profiles/system-profiles

答え2

その世代を追跡できますconfiguration.nix。クロージャの一部になるように(自己内で)参照を生成するだけです。例は次のとおりです。

構成.nix

{ config, lib, pkgs, ... }:
{
  # yada, yada

  environment.etc."configuration.nix".source = /etc/nixos/configuration.nix;
};

これenvironment.etc オプション宣言的にファイルを生成できます/etc。 Nixはそれをタイプ(パスはNixのファーストクラス)/etc/nixos/configuration.nixとして検出し、その内容をNixリポジトリにコピーします。path結果は、を/etc/configuration.nix指す(間接)シンボリックリンクです/nix/store/blah-blah-configuration.nix。これは、各世代が/etc/configuration.nixその構成を指すシンボリックリンクを持つことを意味します。それからhardware-configuration.nix

上記のコマンドは設定を保存しますが、そのコマンドは設定を見つけるために使用されるため、背中ではnix-env使用できません。時nix-shellnixos-rebuild$NIX_PATH可能この問題を解決できます(参照ここ)実行すると、nixos-rebuild誤った設定ファイルが使用されるため、お勧めできません(/etc/nixos/configuration.nixとにかく読み取り専用のNixリポジトリのコピーの代わりに)。状況が早く不安定になることがあります。

もちろんニックス店は世界中で読むことができる

関連情報