nixpkgsをpinする
import <nixpkgs>と書いたときNIX_PATHを見る
これは、入れるタイミングに依って内容が異なる
そのため、machineごとに内容が異なる可能性がある
project内に置くときはnixpkgsのversionをfetchTarballを使って固定しておくと良い
code:shell.nix
with (import (fetchTarball https://github.com/nixos/nixpkgs/archive/8531aee99f4907bd255545eb94468e52a79a44f1.tar.gz) {});
mkShell {
buildInputs = [
git-up
];
}
これで完璧に再現性が担保される
https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs#pinning-nixpkgs
このhash値の指定は面倒なので、nivを使うなどする
https://ghedam.at/15978/an-introduction-to-nix-shell#:~:text=Tips%20for%20sharing%20shell.nix
https://nixos.wiki/wiki/FAQ/Pinning_Nixpkgs