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