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-shell
nixos-rebuild
$NIX_PATH
可能この問題を解決できます(参照ここ)実行すると、nixos-rebuild
誤った設定ファイルが使用されるため、お勧めできません(/etc/nixos/configuration.nix
とにかく読み取り専用のNixリポジトリのコピーの代わりに)。状況が早く不安定になることがあります。
もちろんニックス店は世界中で読むことができる。