Nixpkgs 고정하기#
Nixpkgs가 제공하는 것과 같은 원격 Nix 표현식은 여러 가지 방법으로 지정할 수 있습니다:
nix-build,nix-shell등 대부분의 명령에 사용하는-I옵션Nix 표현식 안의
fetchurl,fetchTarball,fetchGit또는 Nixpkgs 페처
사용 가능한 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 릴리스에 대한 자세한 정보: 어떤 채널 브랜치를 사용해야 합니까?