Nixpkgs 고정하기#

Nixpkgs가 제공하는 것과 같은 원격 Nix 표현식은 여러 가지 방법으로 지정할 수 있습니다:

사용 가능한 URL 값#

  • 로컬 파일 경로:

    ./path/to/expression.nix
    

    ./.를 사용하면 표현식이 현재 디렉터리의 default.nix 파일에 있다는 뜻입니다.

  • 특정 커밋에 고정:

    https://github.com/NixOS/nixpkgs/archive/eabc38219184cc3e04a974fe31857d8e0eac098d.tar.gz
    
  • 최신 채널 버전 사용(모든 테스트를 통과했다는 뜻입니다):

    http://nixos.org/channels/nixos-22.11/nixexprs.tar.xz
    
  • 채널 축약 문법:

    channel:nixos-22.11
    
  • GitHub에 호스팅된 최신 채널 버전 사용:

    https://github.com/NixOS/nixpkgs/archive/nixos-22.11.tar.gz
    
  • 릴리스 브랜치의 최신 커밋 사용(아직 테스트되지 않음):

    https://github.com/NixOS/nixpkgs/archive/release-21.11.tar.gz
    

예시#

  • $ nix-build -I ~/dev
    
  • $ nix-build -I nixpkgs=http://nixos.org/channels/nixos-22.11/nixexprs.tar.xz
    
  • $ nix-build -I nixpkgs=channel:nixos-22.11
    
  • $ NIX_PATH=nixpkgs=http://nixos.org/channels/nixos-22.11/nixexprs.tar.xz nix-build
    
  • $ NIX_PATH=nixpkgs=channel:nixos-22.11 nix-build
    
  • Nix 언어에서:

    1let
    2  pkgs = import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-22.11.tar.gz") {};
    3in pkgs.stdenv.mkDerivation { ... }
    

특정 커밋과 릴리스 찾기#

status.nixos.org에서 제공하는 정보:

  • 각 릴리스에서 테스트를 통과한 최신 커밋 - 특정 커밋에 고정할 때 사용합니다

  • 활성 릴리스 채널 목록 - 최신 채널 버전을 따라갈 때 사용합니다

전체 채널 목록은 nixos.org/channels에서 확인할 수 있습니다.

팁

Nixpkgs 및 NixOS 릴리스에 대한 자세한 정보: 어떤 채널 브랜치를 사용해야 합니까?