Nixとは?
にっくす
Nixは再現性を重視した関数型パッケージマネージャーで、依存関係を隔離して管理しシステムの状態を安定させます。
NixはLinux・macOS上で動作するパッケージマネージャーで、「純粋関数型」のアプローチで依存関係を管理することを特徴とします。同名のプロジェクトからはNixOS(Linuxディストリビューション)やnix-shell・nix flakesなどのツールも派生しています。
Nixの最大の特徴は、すべてのパッケージを/nix/store以下にハッシュ付きのパスで格納することです。たとえば同じソフトウェアの異なるバージョンや依存関係が異なるビルドを、互いに干渉することなく同時に保持できます。パッケージのビルド手順はNix言語と呼ばれる関数型DSLで記述し、入力が同じであれば出力が必ず同じになる「再現可能ビルド」を実現します。
開発用途ではnix-shellやnix develop(flakes)を使い、プロジェクトごとに必要なツールチェーンだけを含む仮想環境を素早く立ち上げられます。チームメンバー間・CI環境・本番環境で同一の依存関係セットを共有できるため「自分の環境では動く」問題を防ぎます。
学習コストは高めですが、依存関係の衝突やシステム汚染を根本から防ぐアーキテクチャはDevOpsや再現性を求める研究開発の場で注目されています。
使い方・例文
チームでPythonプロジェクトを開発する際にshell.nixを用意しておくと、nix-shell一発で全員が同じPythonバージョンとライブラリ群を使える環境が立ち上がります。
この用語をシェア
最終更新: