【ニックス】
Nix(パッケージマネージャー) とは?
💡 「うちの環境では動く」を根絶する魔法のレシピ帳
📌 このページのポイント
- 純粋関数型の設計で、パッケージのビルドが完全に再現可能
- 複数バージョンのソフトウェアを競合なしに共存できる
- NixOSというLinuxディストリビューションの基盤にもなっている
- 開発環境の定義をコードとして管理し、チーム全員で同じ環境を共有できる
Nixって普通のパッケージマネージャーと何が違うの?
一番の違いは「純粋関数型」であることだよ。数学の関数みたいに、同じ入力からは必ず同じ結果が出る。だからAさんのPCでもBさんのPCでも、まったく同じ環境が再現できるんだ
複数のバージョンを入れても大丈夫なの?
Nixはパッケージごとにユニークなハッシュ付きのパスに保存するから、Python 3.10と3.12を同時に入れても競合しないよ。従来のパッケージマネージャーだとバージョン違いが衝突しがちだけど、Nixならその心配がないんだ
チーム開発で使うとどんないいことがあるの?
flake.nixというファイルに開発環境を定義しておけば、新メンバーがnix developと打つだけで全員同じ環境が手に入る。「セットアップ手順書」が不要になるんだよ
NixOSっていうOSもあるんだよね?
そう、OS全体をNixで管理するLinuxディストリビューションだね。設定ファイル1つでOSの状態を丸ごと再現できるし、アップデートに失敗しても前の世代にロールバックできる。インフラエンジニアの間では「壊れないOS」として注目されているよ
まとめ:ざっくりこれだけ覚えればOK!
「Nix」って出てきたら「環境を完全に再現できるパッケージマネージャー」と思えればだいたいOK!
📖 おまけ:英語の意味
「Nix Package Manager」 = Nixパッケージマネージャー
💬 Nixはオランダ語で「何もない」を意味する言葉に由来するよ。何もない状態から完全に再現可能な環境を作り上げるという思想が込められているんだ