本文へスキップ

Nixとは?

にっくす

Nixは再現性を重視した関数パッケージマネージャーで、依存関係を隔離して管理しシステムの状態を安定させます。

NixはLinux・macOS上で動作するパッケージマネージャーで、「純粋関数型」のアプローチで依存関係を管理することを特徴とします。同名のプロジェクトからはNixOS(Linuxディストリビューション)やnix-shell・nix flakesなどのツールも派生しています。

Nixの最大の特徴は、すべてのパッケージを/nix/store以下にハッシュ付きのパスで格納することです。たとえば同じソフトウェアの異なるバージョンや依存関係が異なるビルドを、互いに干渉することなく同時に保持できます。パッケージのビルド手順はNix言語と呼ばれる関数型DSLで記述し、入力が同じであれば出力が必ず同じになる「再現可能ビルド」を実現します。

開発用途ではnix-shellnix develop(flakes)を使い、プロジェクトごとに必要なツールチェーンだけを含む仮想環境を素早く立ち上げられます。チームメンバー間・CI環境・本番環境で同一の依存関係セットを共有できるため「自分の環境では動く」問題を防ぎます。

学習コストは高めですが、依存関係の衝突やシステム汚染を根本から防ぐアーキテクチャはDevOpsや再現性を求める研究開発の場で注目されています。

使い方・例文

チームでPythonプロジェクトを開発する際にshell.nixを用意しておくと、nix-shell一発で全員が同じPythonバージョンとライブラリ群を使える環境が立ち上がります。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語