재현성을 향하여: Nixpkgs 고정하기#
다양한 Nix 예제에서 다음과 같은 코드를 자주 보게 됩니다.
1{ pkgs ? import <nixpkgs> {} }:
2
3...
이는 Nix 패키지를 가져와 Nix 표현식을 빠르게 시연하고 동작하게 만드는 편리한 방법입니다.
하지만
Nix 표현식 안에서 URL로 패키지 고정하기#
완전히 재현 가능한 Nix 표현식을 만들려면 Nixpkgs의 정확한 버전을 고정하면 됩니다.
가장 간단한 방법은 필요한 Nixpkgs 버전을 해당 Git 커밋 해시로 지정한 tarball로 가져오는 것입니다.
1{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/06278c77b5d162e62df170fec307e83f1812d94b.tar.gz") {}
2}:
3
4...
커밋은 status.nixos.org에서 고를 수 있으며, 이 사이트에는 모든 릴리스와 모든 테스트를 통과한 최신 커밋이 나열되어 있습니다.
커밋을 고를 때는 다음 중 하나를 따르는 것을 권장합니다.
nixos-21.05처럼 특정 버전을 사용하여 최신 안정 NixOS 릴리스를 따르거나, 또는nixos-unstable을 통해 최신 불안정 릴리스를 따릅니다.
다음 단계#
nixpkgs를 고정하는 다양한 방법에 대한 더 많은 예제와 자세한 내용은 Nixpkgs 고정하기를 참조하십시오.