Open10

Nix 学習記録

Kodai MatsumotoKodai Matsumoto

Nix は純粋関数型パッケージマネージャ
これはパッケージを純粋関数型言語における値のように扱うことを示す
パッケージは副作用を持たない関数によって作られ、ビルドされてから変化することはない
Nix はパッケージを Nix ストアに保存する (/nix/store)
Nix ストアにおいて各パッケージはユニークなサブディクトリを持っており、「すべての依存パッケージ (依存グラフ) から算出されたハッシュ」、「パッケージ名」と「バージョン」を組み合わせた名前が振られている
複数のバージョンやヴァリアントを同時にインストールしておくことができる
これは異なるパッケージが同じパッケージの異なるバージョンにそれぞれ依存している状況で特に重要
DLL地獄を避けることができる
ハッシュ化スキームのおかげで、異なるバージョンのパッケージは Nix ストアの異なるパスにあるので、相互に干渉することがない