Nix
https://nixos-and-flakes.thiscute.world/
イメージが掴めなくて理解できないことが多い
Fetcherは事前にダウンロード予定のコンテンツのハッシュ値を指定しておき、Fetcher実行時にハッシュの異なるコンテンツがダウンロードされた場合異常終了させる
ハッシュの異なるコンテンツがダウンロードされる場合がある?
純粋関数的ビルドシステムである
参照透過性がある
subeffectsがない
どの環境でも完全再現が可能
Nixストアによるパッケージと依存関係の厳密な管理
すべてのものはNixストアに格納される
グローバルインストールも、実体は/nix/store/ に入る
~/.nix-profile/bin/ にシンボリックリンクが貼られている
ハッシュ値で厳密に管理される
Nixからはバージョン(ハッシュ値)が違うものはすべて別物
暗黙的な依存関係は許されない
Nix言語とFlakesによる宣言的ビルド
これも環境を完全再現できる要素
Profilesによる非破壊的パッケージ構成管理
世代機能
アップデートするのではなく新規にビルドする
ロールバックのときは前の世代にリンクし直せば良い
https://zero-to-nix.com
zero to nix
やってみる
#パッケージマネージャー