>>702
今までのパッケージマネージャーは
依存関係にあるパッケージのバージョンを固定出来ないのが問題
nixは全て固定できる

nixはビルド自動化ツールに分散キャッシュ機能を付けて
パッケージマネージャーのように使えるようにしたツールとも言える

ソースコードのtarアーカイブのハッシュや依存パッケージ、configureスクリプトに渡す引数なんかをハッシュ化して
そのハッシュで既にビルドした物がキャッシュに無いか検索
ローカルに有ればそのまま使うし、公式リポジトリのキャッシュにあればダウンロードする
キャッシュされてないパッケージだけをビルドする

ビルド時は上記の入力にない物がビルドに使われないように
サンドボックス内でビルドして
環境依存のビルド不具合を防いでいる
だから「git cloneで取ってきたnixがビルド出来ない!!なんで!?」みたいな問題が起きない

実行時も入力に書かれているパッケージしか基本的に使わないので、
実行時のライブラリバージョンの違いによるエラーも回避できる

公式リポジトリにあるパッケージは既に同じ設定でビルドしてキャッシュしたのがあるので、
大半はビルドせずダウンロードするだけで済む
マシン固有の設定も「キャッシュされてないパッケージ」として扱ってビルドする