Nix (パッケージ管理システム)
初版 | 2003年6月15日 (21年前) (2003-06-15) |
---|---|
最新版 | 2.22.1[1] ![]() |
リポジトリ |
![]() |
プログラミング 言語 | C++ |
プラットフォーム | |
種別 | パッケージ管理 |
ライセンス | LGPL |
公式サイト | nixos![]() |
テンプレートを表示 |
Nixは、暗号学的ハッシュを通じて生成された一意のディレクトリにソフトウェアがインストールされる展開モデルを使用するクロスプラットフォームのパッケージ管理システムである。この名前は、このツールのプログラミング言語の名前でもある。パッケージのハッシュ値は依存関係を考慮して生成されており、複数のバージョンの依存関係を同時にインストールするという一般的な解決方法の代替として、依存関係地獄(英語版)を避けることができると主張されている[2]。このパッケージ管理モデルは、より信頼性が高く、再現性があり、移植性のあるパッケージであると宣伝されている[3][4]。
Nixパッケージは、パッケージ管理用に特別に設計された遅延評価を行う関数型プログラミング言語を通じて定義される。この言語では、依存関係は「derivations」と呼ばれる中間形式を通じて直接追跡される。Nix環境は参照を自動的に追跡するので、あるパッケージに依存する他のパッケージが存在しない場合は、未使用のパッケージとしてガベージコレクションすることができる。より多くのストレージを要求することにより、Nixの全てのアップグレードはアトミックであり、効率的にロールバックできることが保証されている。これにより、複数のユーザーが管理者権限のない状態で同じシステムにソフトウェアを安全にインストールすることも可能にしている。
NixはLinuxとmacOSに完全に対応しており、既存のパッケージ管理システムと併用しても、ソフトウェアを安全にインストールすることができる。
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(英語版)のソースコードも含まれている。
脚注
- ^ "Release 2.22.1"; 閲覧日: 2024年5月17日; 出版日: 2024年5月10日.
- ^ “Nix fixes dependency hell on all Linux distributions”. Linux.com (22 December 2008). 11 July 2023閲覧。
- ^ 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日閲覧。
- ^ Dolstra, Eelco (2006). The Purely Functional Software Deployment Model (PDF) (Ph.D.). Utrecht University. 2023年7月11日閲覧。
- ^ Burr, Chris (2018年). “Software packaging and distribution for LHCb using Nix”. 2023年12月1日閲覧。
- ^ “Nix & NixOS | Reproducible builds and deployments”. nixos.org. 2023年12月1日閲覧。
- ^ 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.
- ^ “Nixpkgs unstable repository information - Repology”. 2023年12月1日閲覧。
- ^ “Repository statistics - Repology”. 2023年12月1日閲覧。
- ^ “RFC 0046 - Platform Support Tiers”. 2023年12月1日閲覧。
- ^ “NixOS official binary cache”. 2023年12月1日閲覧。
- ^ “Nixpkgs github repository”. 2023年12月1日閲覧。
関連項目
![ポータル FLOSS](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Portal.svg/36px-Portal.svg.png)
- GNU Guix - 設定とカスタマイズにGNU Guileを使用する別の宣言的なパッケージ管理システム
- Maak(英語版) - 複雑なソフトウェアシステムを構築するために設計されているmakeのようなビルド自動化ユーティリティ
- ランブック・オートメーション
外部リンク
- 公式ウェブサイト
- nixpkgs - GitHub
| ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
パッケージ形式(英語版) | ||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||
|