【ニックス】
Nix(パッケージマネージャー) とは?
最終更新:
💡 依存関係のレシピで、環境をそろえる
依存関係とビルド手順を定義し、パッケージや開発環境を再現しやすくするパッケージマネージャー。異なる版をNixストアの別の場所に保存する設計を持つ。
📌 このページのポイント
- 依存関係やビルド手順を定義し、環境差を減らす
- 異なる版や依存関係のパッケージを、別のストアパスで共存させる
- 開発環境の定義と入力の版を共有し、対応OSやCPUも確認する
- NixOSはNixを基盤にOSの構成を管理するLinuxディストリビューション
Nixって、普通のインストールと何が違うの?
違うバージョンも、同時に置ける?
異なる版や依存関係の組み合わせを、/nix/storeの別のパスに保存できるよ。ただし、同じpythonという名前でどちらを実行するかは、利用する環境やPATHで決まる。置き場所を分けることと、コマンドの選択は分けて考えよう。
チームの開発環境をそろえられる?
開発環境の定義を共有する方法があるよ。Flakesならflake.nixで入力や出力を定義し、flake.lockで入力の版を固定する。対応OS・CPUやNixの設定も確認しよう。2026年10月確認のNix 2.35の公式資料では、Flakesは実験的な機能として案内されているよ。
同じ定義なら、結果は一字一句同じ?
再現性を高める土台になるけれど、それだけで全ての結果が一致する保証ではないよ。NixOSの再現可能ビルドの説明にも、時刻の混入などで違いが残ることがあると書かれている。環境の定義をそろえることと、成果物の完全一致は別なんだ。
NixOSも使わないといけない?
NixとNixOSは別だよ。Nixは対応するLinuxやmacOSなどで使えるパッケージ管理の道具。NixOSはNixを基盤にOSの構成を管理するLinuxディストリビューションだね。Nixの開発環境を使うために、必ずOSを入れ替えるわけではないよ。
まとめ:ざっくりこれだけ覚えればOK!
「Nix」って出てきたら「依存関係のレシピで、パッケージや開発環境を再現しやすくする道具」と思えばだいたいOK!
📖 おまけ:英語の意味
「Nix Package Manager」 = Nixパッケージマネージャー
💬 Nixはパッケージと開発環境を管理するツールの名前だよ