Nixos가 참조하는 커밋 채널을 확인하는 방법은 무엇입니까?

Nixos가 참조하는 커밋 채널을 확인하는 방법은 무엇입니까?

채널이 참조하는 커밋과 날짜를 알고 싶습니다.

예를 들어 nixos2009아래 채널을 결정하는 방법은 무엇입니까?

sudo nix-channel --list
nixos https://nixos.org/channels/nixos-20.09
nixos-2003 https://nixos.org/channels/nixos-20.03
nixos2003 https://nixos.org/channels/nixos-20.03
nixos2009 https://nixos.org/channels/nixos-20.09
unstable https://nixos.org/channels/nixpkgs-unstable

ls /nix/var/nix/profiles/per-user/root/channels-*/manifest.nix채널 세대가 우리에게 보여지는 것을 볼 수 있습니다 . 최신 채널 세대에는 다음이 포함됩니다.

cat /nix/var/nix/profiles/per-user/root/channels-61-link/manifest.nix | nixfmt
[
  {
    meta = { };
    name = "nixos-20.09.2538.0cfd08f4881";
    out = {
      outPath =
        "/nix/store/7s917s7ipvq3zmbx5g3kssldwc029r8r-nixos-20.09.2538.0cfd08f4881";
    };
    outPath =
      "/nix/store/7s917s7ipvq3zmbx5g3kssldwc029r8r-nixos-20.09.2538.0cfd08f4881";
    outputs = [ "out" ];
    system = "x86_64-linux";
    type = "derivation";
  }
  {
    meta = { };
    name = "nixos-2003-20.03.3324.929768261a3";
    out = {
      outPath =
        "/nix/store/zajz4gpq506g68w47pnl11k8mhz06jz0-nixos-2003-20.03.3324.929768261a3";
    };

예를 들어 위의 저장 경로에서 이를 가져올 수 있지만 /nix/store/zajz4gpq506g68w47pnl11k8mhz06jz0-nixos-2003-20.03.3324.929768261a3확실하지 않습니다(또한 해당 "경로"가 무엇인지).

이 질문에 대한 답변이 여기에 문서화되어 있는 것 같습니다.https://discourse.nixos.org/t/how-to-see-what-commit-is-my-channel-on/4818/6?u=chrissound비록 이것이 프로그래밍 방식은 아니지만(정확히 제가 찾고 있는 방식입니다).

답변1

nixos 버전을 사용할 수 있습니다. 광산은 마지막 부분이 커밋 해시인 20.03pre194293.2436c27541b(Markhor)를 제공합니다. 안정적 환경에서도 작동할지는 확실하지 않지만 작동할 것입니다.

답변2

모든 채널에 대해 다음을 수행합니다( nixpkgs좋아하는 채널로 교체).

$ nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version'
"22.11pre405560.2da64a81275"

git commit이 마지막 숫자라는 점에 유의하세요 2da….

답변3

  1. 이 체크리스트가 좋은 방법이 될 수 있습니다.

  2. 또 다른 것(링크된 포럼에도 있음)은 다음과 같습니다.

    readlink /nix/var/nix/profiles/per-user/root/channels-1-link
    
  3. 그리고 아마도 가장 간단한 것은 다음과 같습니다.

    cat /nix/var/nix/profiles/per-user/root/channels/*/svn-revision
    

    최신 버전의 nix에서는 전체 git commit sha도 다음 위치에 있습니다.

    /nix/var/nix/profiles/per-user/root/channels/*/.git-revision
    

관련 정보