Nix (パッケージ管理システム)

Nix
初版 2003年6月15日 (20年前) (2003-06-15)
最新版
2.12.0[1] ウィキデータを編集 / 2022年12月6日 (16か月前)
リポジトリ ウィキデータを編集
プログラミング
言語
C++
プラットフォーム
種別 パッケージ管理
ライセンス LGPL
公式サイト nixos.org ウィキデータを編集
テンプレートを表示

Nixは、暗号学的ハッシュを通じて生成された一意のディレクトリにソフトウェアがインストールされる展開モデルを使用するクロスプラットフォームパッケージ管理システムである。この名前は、このツールのプログラミング言語の名前でもある。パッケージのハッシュ値は依存関係を考慮して生成されており、複数のバージョンの依存関係を同時にインストールするという一般的な解決方法の代替として、依存関係地獄英語版を避けることができると主張されている[2]。このパッケージ管理モデルは、より信頼性が高く、再現性があり、移植性のあるパッケージであると宣伝されている[3][4]

Nixパッケージは、パッケージ管理用に特別に設計された遅延評価を行う関数型プログラミング言語を通じて定義される。この言語では、依存関係は「derivations」と呼ばれる中間形式を通じて直接追跡される。Nix環境は参照を自動的に追跡するので、あるパッケージに依存する他のパッケージが存在しない場合は、未使用のパッケージとしてガベージコレクションすることができる。より多くのストレージを要求することにより、Nixの全てのアップグレードはアトミックであり、効率的にロールバックできることが保証されている。これにより、複数のユーザーが管理者権限のない状態で同じシステムにソフトウェアを安全にインストールすることも可能にしている。

NixはLinuxmacOSに完全に対応しており、既存のパッケージ管理システムと併用しても、ソフトウェアを安全にインストールすることができる。

Nixは欧州原子核研究機構(CERN)のLHCb検出器英語版でソフトウェアのパッケージングと配布に使用されている[5]

NixOS[編集]

NixOS英語版[6]は、Linuxカーネルを含むシステムのソフトウェアの管理にNixを使用するLinuxディストリビューションである[7]

Nixpkgs[編集]

Nixpkgsは、Nixパッケージ管理システム上に構築されたパッケージリポジトリである。Repologyによると、Nixpkgsには2023年3月の時点で80,000個以上のパッケージが含まれており[8]、他のパッケージリポジトリよりも多くの最新のパッケージが含まれている[9]。Nixpkgsが対応しているアーキテクチャは、x86_64-linux、aarch64-linux、x86_64-darwin、aarch64-darwinである。これらのアーキテクチャ向けのパッケージはHydraと呼ばれる継続的インテグレーションサービスを使用して定期的に構築され[10]、これらの構築の結果は公開バイナリキャッシュにアップロードされる[11]。Nixがパッケージをインストールするときは、Nixはパッケージをローカルで構築するのではなく、このキャッシュを確認して、そこからパッケージをダウンロードする。

NixpkgsはGitHub上の単一のGitリポジトリで開発されている[12]。このリポジトリにはパッケージの他に、NixOS英語版のソースコードも含まれている。

脚注[編集]

  1. ^ https://github.com/NixOS/nix/releases/tag/2.12.0.
  2. ^ Nix fixes dependency hell on all Linux distributions”. Linux.com (2008年12月22日). 2023年7月11日閲覧。
  3. ^ Dolstra, Eelco; de Jonge, Merijn; Visser, Eelco (November 2004). "Nix: A Safe and Policy-Free System for Software Deployment" (PDF). LISA '04: Proceedings of the 18th USENIX Conference on System Administration. pp. 79–92. 2023年7月11日閲覧
  4. ^ Dolstra, Eelco (2006). The Purely Functional Software Deployment Model (PDF) (Ph.D.). Utrecht University. 2023年7月11日閲覧
  5. ^ Burr, Chris (2018年). “Software packaging and distribution for LHCb using Nix”. 2023年12月1日閲覧。
  6. ^ Nix & NixOS | Reproducible builds and deployments”. nixos.org. 2023年12月1日閲覧。
  7. ^ Dolstra, Eelco; Löh, Andres; Pierron, Nicolas (September 2008). NixOS: A Purely Functional Linux Distribution (PDF). ICFP 2008: 13th ACM SIGPLAN International Conference on Functional Programming. pp. 367–378.
  8. ^ Nixpkgs unstable repository information - Repology”. 2023年12月1日閲覧。
  9. ^ Repository statistics - Repology”. 2023年12月1日閲覧。
  10. ^ RFC 0046 - Platform Support Tiers”. 2023年12月1日閲覧。
  11. ^ NixOS official binary cache”. 2023年12月1日閲覧。
  12. ^ Nixpkgs github repository”. 2023年12月1日閲覧。

関連項目[編集]

外部リンク[編集]