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 저장소의 복사본 대신). 상황이 빨리 불안정해질 수 있습니다.

물론 닉스 매장은전 세계에서 읽을 수 있는.

관련 정보