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 저장소의 복사본 대신). 상황이 빨리 불안정해질 수 있습니다.
물론 닉스 매장은전 세계에서 읽을 수 있는.