GNU Guix
![]() | |
最新版 | |
---|---|
リポジトリ | |
プログラミング 言語 | Guile Scheme, C++ (Nix core) |
ライセンス | GPLv3+ |
公式サイト |
guix |
GNU Guixは、クロスプラットフォームの関数型パッケージマネージャで、Unix系オペレーティングシステムの生成や管理のためのツールでもある。Nixをベースとしており、設定やパッケージのビルドについてGuile Schemeで書くことができる。Guixという名前はGuileとNixを組み合わせたかばん語である[2]。GNU GuixはGNU Guix Systemのデフォルトのパッケージマネージャである[3]。
一般的なパッケージマネージャとは異なり、暗号学的ハッシュによって一意なディレクトリにソフトウェアがインストールされるという、Nixと同様に純粋関数的なデプロイのモデルを採用している。ソフトウェアの依存関係はそれぞれのハッシュに含まれている[4][5]。これにより、依存関係地獄の問題を解決することができ[6]、同じソフトウェアの違うバージョンが共存することができるため、パッケージをよりポータブルで再現性の高いものにすることができる[7]。このようなGuixの数学的なアプローチは、再現性の危機への有望な対処法として提案された[8][9]。
特徴
[編集]Guixのパッケージは、パッケージ管理のために設計された、Guile SchemeのAPIによって定義される。依存関係は、Guixデーモンによって遅延評価される「deriviations」と呼ばれる特別な値を通して、言語内で直接追跡できる。Guixは、不必要になったパッケージをガベージコレクションの対象にできるようにこれらを記録している。膨大なストレージの容量を消費することで、Guixのアップグレードはすべてアトミックかつロールバック可能となる。
Guixのロールバック機能はNixの設計から引き継がれている。ロールバックを可能とするには一般的でないアプローチを必要とするため、ロールバック機能は他のパッケージマネージャにはめったに見られない。しかし、GuixはNixと同様に、多くのディストリビューションで利用できる。これを利用すれば、同じシステム上の複数のユーザーが、管理者権限なしに安全にソフトウェアをインストールすることができる。
従来のパッケージマネージャと比較して、Guixのストアは大きくなりがちであり、それゆえ多くの帯域幅を必要とする。しかし、依存関係地獄を解決するために用いられる他の手法(Dockerなど)と比べれば、Guixはより無駄がなく、Don't repeat yourselfや信頼できる唯一の情報源のような慣例に忠実である。すべてをソースコードからビルドする場合は、さらに多くのストレージ容量や帯域幅が必要となる。
ストア
[編集]Nixの設計を引き継ぎ、パッケージマネージャの内容の大部分は、/gnu/store
ディレクトリに保存されている。このディレクトリは、Guixデーモンのみに書き込み許可権限がある。これは特殊なマウントによって実現されており、ファイルシステムとしてのストアは読み込み専用でマウントされ、ルートユーザーからの干渉も禁止されている。一方、Guixデーモンはストアを書き込み可能として、独自のプライベート名前空間に再マウントする。Guixはこのデーモンとやりとりし、パッケージをビルドしたり、Substituteを取得したりする。ストアの目的がなくなるため、ユーザが手動でストアを書き込み可能として再マウントすることは推奨されない。
ガベージコレクション
[編集]GuixはNixと同様に、ガベージコレクション機能を内蔵しており、これはdead 状態のストアのアイテムをlive 状態に保つのに役立つ[10]。
パッケージ定義
[編集]これは hello-package のパッケージ定義の一例である。
(use-modules
(guix packages)
(guix download)
(guix build-system gnu)
(guix licenses))
(define-public hello
(package
(name "hello")
(version "2.10")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/hello/hello-" version
".tar.gz"))
(sha256
(base32
"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
(build-system gnu-build-system)
(synopsis "Hello, GNU world: An example GNU package")
(description
"GNU Hello prints the message \"Hello, world!\" and then exits. It
serves as an example of standard GNU coding practices. As such, it supports
command-line arguments, multiple languages, and so on.")
(home-page "https://www.gnu.org/software/hello/")
(license gpl3+)))
これは Guile を用いて書かれている。Guix では、パッケージレシピを簡単に調べたり(例えば、guix edit hello
コマンドを実行して)、変更したりすることができる。これにより、システムの透明性が高まり、改変が非常に簡単になる。
トランザクション型の更新
[編集]Nix の設計を引き継ぎ、各ストアのすべての操作は互いに独立している。ストアのディレクトリ名は、deriviation とその入力のソースコードを base32 でエンコードされたハッシュ値で始まる。
プロファイル
[編集]Guixのパッケージは世代別のプロファイルを使っている。これは、ユーザーがインストールしたものから成る、特定のストア項目へのシンボリックリンクの集合である。パッケージがインストール、または削除されるたびに、新しいプロファイルが生成される。
例えば、GNU Helloだけをインストールしたユーザーのプロファイルには、現在 guix で使われている hello のバージョン情報を保持するストア項目へのリンクが含まれる。
シンボリックリンクに加えて、guix が生成するそれぞれのプロファイルには、すべてのinfoマニュアル、アイコン、Manページなどが含まれているため、ユーザーはドキュメントを参照し、インストールされているすべてのアイコンやフォントにアクセスできる。
プロファイルへのデフォルトのシンボリックリンクは /var/guix
に保存されている。
複数のプロファイル
[編集]ユーザーは、guix package -p PROFILE-NAME COMMAND
を呼び出すことで、任意の数のプロファイルを作成できる。
ロールバック
[編集]Guixのパッケージは、シンボリックリンクを以前のプロファイルに変更することで、以前のプロファイルに手軽にロールバックすることが可能である。[11]。プロファイルもストアに保存される。例えば、この項目は上記の hello を含むプロファイルである: /gnu/store/b4wipjlsapvnijmbawl7sh76087vpl4n-profile
( guix install hello
の実行時に有効化される)。
Guix Shell
[編集]Guix shell を使うことで、複数のプロジェクトの依存関係によってデフォルトのプロファイルに問題を起こすことなく、ソフトウェア開発に必要なパッケージを含む環境に入ることができる[12]。
例えば、 guix shell --development hello
を実行すると、guix 上で hello をコンパイルするために必要なもの (gcc、guile など) がすべて揃った一時的な環境に入ることができる。
--development
フラグがない場合、hello パッケージのみがインストールされ、そのビルドの依存はインストールされない。これは、パッケージの依存関係をデフォルトでインストールする guix environment
コマンドに代わるものとして導入された。これは、指定されたパッケージをデフォルトでインストールし、フラグを使用して開発依存関係のみをインストールする方が直感的であると考えられたためである[13]。
継続的な開発環境
[編集]guix gc
の次回実行時にガベージコレクションされない継続的な gc ルート環境が必要な場合は、ルートを作成できる。
例えば、 guix shell --root=hello-root --development hello
を実行すると、guix をコンパイルするために必要なもの (gcc、guile など) がすべて存在し、現在のディレクトリにルートとして登録されている環境に入ることができる (ストア内の項目へのシンボリックリンクによって)。
pack
[編集]Guix packを使うことで、ユーザにストアアイテムを複数同時に束ねることを可能にし、Dockerバイナリイメージや、再配置可能な tarball 、squashfsバイナリ、Debianパッケージファイル、RPMパッケージファイル、AppImageなどに出力することができる[14][15][16]。
Graph
[編集]Guix graphを使用すると、パッケージとその依存関係のさまざまなグラフを表示することができる[17]。
サードパーティーチャンネル
[編集]Guixでは、パッケージ定義に使う追加のチャンネルを設定することができる[18]。
この機能を使うことにより、メインのプロジェクトではパッケージできない非自由なソフトウェアをインストールすることができる[19][20]。
Guix System(オペレーティングシステム)
[編集]
![]() | |
![]() | |
開発者 | GNU Project[21][22] |
---|---|
OSの系統 | Linux (Unix系) |
開発状況 | 開発中[23] |
ソースモデル | Free software, FSDG |
最新安定版 |
1.4.0[24] ![]() |
リポジトリ | |
対象市場 | デスクトップ |
パッケージ管理 | GNU Guix |
プラットフォーム | x86_64, i686, AArch64, armv7, powerpc64le |
カーネル種別 | マイクロカーネル: GNU Hurd (開発中) |
ユーザランド | GNU |
ライセンス | GPL |
ウェブサイト |
guix |
GNU Guix SystemまたはGuix System[25][26](以前はGuixSDと呼ばれていた[27])は、ローリングリリースで、自由かつオープンソースのLinuxディストリビューションである。NixOSがNixをベースとして構築されているのと同じように、Guix SystemはGuixをベースとしている[28]。Guix Systemは、宣言的なOSの設定を可能にし[29]、また容易にシステムの更新をロールバックすることができる[30]。GNU Shepherd initシステムとLinux-libreカーネルを利用しており[31][32]、GNU Hurdカーネルのサポートが開発中である[33]。2015年2月3日、このディストリビューションはFSFが推薦する自由なディストリビューションのリストに加えられた[34]。
アーキテクチャのサポート
[編集]現在、次のCPUアーキテクチャがサポートされている。
システムサービス
[編集]システムサービスは、Guile Schemeで定義されており[38]、デーモンとバックグランドサービスを宣言的に設定することができる。これにより、一つ、または複数の設定ファイルを用いて、オペレーティングシステム全体を構成することができる。(例えば、Torプロキシを設定したり、SSHサーバーを設定したり、システム起動時に特定のポートでnginx経由でguix-webを提供するウェブサーバーを設定したりといったことができる)。可能になることは以下の通りである[39]。
- ファイルシステムにファイルを生成する(例:/etc 内のファイル)
- デーモンを設定するためのコードを実行する
- 特定のユーザーおよびグループアカウントを作成する(例:PostgreSQLのデータベースユーザー)
GNU Shephred Init システム
[編集]Guixシステムは、GNU Shepherdデーモンをinitシステムとして使っている。GNU ShepherdはGuileで書かれており、Guixの開発と平行して行われている。これは以前 "dmd"("Daemon managing Daemons"または"Daemons-managing Daemon")として知られていたが、Digital MarsのDコンパイラとの名前の競合を避けるために名称が変更された[40]。
Shepherd は、ユーザ空間の機能をサービスとして非同期に提供する。サービスとは、Shepherd ではジェネリック関数とオブジェクトデータ型であり、定義された方法でベースとなるオペレーティングシステムを拡張するために使用される。systemd とは対照的に、ユーザ空間のShepherdプロセスはユーザーとして実行される。ユーザ空間の初期化のShepherdモデルの中心となるのは、拡張の概念である。これは、サービスが他のサービスの上に重ねられるように設計され、必要に応じてより複雑な動作や特殊な動作を可能にする、構成可能性の一形態である[41]。これは、多くの最新の init システムに見られるインスタンス化ベースの依存関係を表現し[42]、システムをモジュール化するが、サービスが他のサービスと任意の方法で可変的に対話できるようにもする。例えば、他の2つのサービスを拡張するサービスでは、1つのサービスのみが必要であり、後で生成された2番目のサービスを簡単に拡張でき、それ以上の再設定やセットアップは必要ない。
Shepherd は、システムのメール転送エージェント を生成するすべてのサービスオブジェクトなど、関連するサービスオブジェクトのクラスに対して動的ディスパッチを可能にする「バーチャルサービス」も提供する[43]。Shepherd デーモンによって制御されるシステムは、そのユーザー空間を有向非巡回グラフとして表すことができる。そのルートとして、ブートと初期化の段階を担当する「システム サービス」があり、その後に初期化されるすべてのサービスは、直接的または他のサービスを介して推移的に、システムサービスの拡張として表される[41][44]。
これは、Guile を使用するシステム管理者によって高度にプログラム可能であることを目的としているが、権限のないデーモンやサービスなど、ユーザーごとのプロファイルを管理するためにも使用できる[45]。サービスや設定はオブジェクト指向の Scheme コードとして一様に保存され、基本的な Guix System でコアとなるサービスは提供される一方で[46]、任意の新しいサービスを柔軟に宣言でき、Guile のオブジェクトシステムである GOOPS を通じて、生成時に指定された方法でサービスを動的に書き換えるように Shepherd に要求することで、既存のサービスをユーザーの裁量で再定義できる[47][48]。
GNU ShepherdはもともとGNU Hurdと連携するように設計され、後にGuix Systemに採用された[49]。
ロールバック
[編集]NixOS のロールバック機能と同様に、システムアップデートによってシステムが壊れた場合、簡単なコマンドで個々のパッケージだけでなく、システム全体の状態を簡単にロールバックすることができる:
guix package --roll-back
[50]
これは、guix pull
経由でアップデートしようとするときに、バグを報告して数分待つことをいとわないユーザーにとって、他のLinuxディストリビューションで非常に一般的な安定版チャンネルが、もはや必要ないことを意味する。これは、各パッケージとシステム構成を不変かつ再現可能なエンティティとして扱う Guix の関数型パッケージマネージャと[51] 、システム構成の履歴を「世代」として保持するシステムの組み合わせによって実現される。これらの世代は個々のプロファイルとして保存され、以前の構成にロールバックすることができる[52]。また、これらの世代は、以下のコマンドで見ることができる。
guix package --list-generations
.
反響
[編集]DistroWatch WeeklyのJesse SmithはGNU Guix System 0.15.0(当時のGuixSD)をレビューし、「GuixSDには私が気に入っているパッケージマネージャがある」と述べたが、限られたハードウェアサポートとドキュメント不足については批判的だった[53]。その後、ドキュメントは充実し、ビデオ[54]や、6つの言語でのチュートリアル、ハウツーガイド、例を含んだクックブック[55]などにより状況は改善した。
再現可能な科学的ワークフロー
[編集]Guix が従来のパッケージマネージャよりも優れた機能をユーザーに提供できる分野は、再現可能な科学的ワークフロー、特に高性能計算においてである[56]。Guix は再現可能な計算環境を共有する方法を提供する。つまり、特定の科学的ソフトウェア/環境のためのレシピを使用する Guix は、そのソフトウェアをビルドして実行するための依存関係ツリーを一意に記述するために必要なすべての情報を提供することができる[57]。これは例えば、各プログラミング言語ごとにパッケージマネージャーがあるようなシステムでは簡単に実現することができない。ただし、これは科学的ワークフローが再現可能であるための必要条件を提供するだけで、十分条件ではない。データの収集と処理をワークフローに組み込む必要があるため、これを Guix レシピの一部として追加したときに、厳格な再現性要件を満たすことができる。
歴史
[編集]このプロジェクトは、GNU Guileハッカーの一人であるLudovic Courtèsによって2012年6月に開始された[58]。
GNUプロジェクトは、2012年11月にGNU Guixの最初のリリースを発表した。これは、Nixをベースとした関数型パッケージマネージャであり、Guile Scheme APIなどが提供された[59]。
2015年8月20日、Guixは GNU Hurdに移植されたことが発表された[60]。
リリース
[編集]固定のリリーススケジュールはなく、これまで約6か月ごとにリリースされてきた。
1.4.0 リリースから2年以上の間が空いているが、今後 1.5.0 リリースが予定されている[61]。
バージョン | 発表 | アーキテクチャ | パッケージの数 |
---|---|---|---|
0.1 (alpha) | 2013年1月[62] | i686, x86_64 | ~150 |
0.2 (alpha) | 2013年5月[63] | ~400 | |
0.3 | 2013年7月[64] | ~430 | |
0.4 | 2013年9月[65] | ~490 | |
0.5 | 2013年12月[66] | ~600 | |
0.6 | 2014年4月[67] | ~691 | |
0.7 | 2014年7月[68] | ~825 | |
0.8 | 2014年11月[69] | i686, x86_64, mips64el | ~987 |
0.8.1 | 2015年1月[70] | i686, x86_64, mips64el, armv7 | ~1151 |
0.8.2 | 2015年5月[71] | ~1869 | |
0.8.3 | 2015年07月[72] | ~2048 | |
0.9.0 | 2015年11月[73] | ~2591 | |
0.10.0 | 2016年5月[74] | ~3230 | |
0.11.0 | 2016年8月[75] | ~3714 | |
0.12.0 | 2016年12月[76] | ~4567 | |
0.13.0 | 2017年5月[77] | i686, x86_64, mips64el, armv7, aarch64 | ~5407 |
0.14.0 | 2017年12月[78] | ~6618 | |
0.15.0 | 2018年7月[79] | ~7857 | |
0.16.0 | 2018年12月[80] | ~8715 | |
1.0.0 | 2018年5月[81] | ~9712 | |
1.0.1 | 2019年5月[82] | ~9771 | |
1.1.0 | 2020年4月[83] | i686, x86_64, armv7, aarch64 | ~13161 |
1.2.0 | 2020年11月[84] | ~15333 | |
1.3.0 | 2021年5月[85] | i686, x86_64, powerpc64le, armv7, aarch64 | ~17262 |
1.4.0 | 2022年12月[86] | i686, x86_64, powerpc64le, armv7, aarch64 | ~22000 |
関連項目
[編集]脚注
[編集]出典
[編集]- ^ "GNU Guix 1.4.0 released"; 閲覧日: 2022年12月21日; 出版日: 2022年12月19日.
- ^ “10 years of stories behind Guix”. guix.gnu.org. 2025年1月26日閲覧。
- ^ Functional Package Management with Guix
- ^ Dolstra, E., de Jonge, M. and Visser, E. "Nix: A Safe and Policy-Free System for Software Deployment." In Damon, L. (Ed.), 18th Large Installation System Administration Conference (LISA '04), pages 79–92, Atlanta, Georgia, USA. USENIX, November 2004.
- ^ Dolstra, E. The Purely Functional Software Deployment Model. PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. ISBN 90-393-4130-3.
- ^ Prins, P., Suresh, J. and Dolstra, E., "Nix fixes dependency hell on all Linux distributions," linux.com, December 22, 2008
- ^ Dolstra, E. The Purely Functional Software Deployment Model. PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. ISBN 90-393-4130-3.
- ^ Hinsen, Konrad (July 2020). “Staged computation: the technique you did not know you were using”. Computing in Science and Engineering 22 (4): 99–103. Bibcode: 2020CSE....22d..99H. doi:10.1109/MCSE.2020.2985508. ISSN 1558-366X 2022年11月4日閲覧。.
- ^ Vallet, Nicolas; Michonneau, David; Tournier, Simon (4 October 2022). “Toward practical transparent verifiable and long-term reproducible research using Guix”. Scientific Data 9 (1): 597. Bibcode: 2022NatSD...9..597V. doi:10.1038/s41597-022-01720-9. ISSN 2052-4463. PMC 9532446. PMID 36195618 2022年11月4日閲覧。.
- ^ “Invoking guix gc”. gnu.org. 16 May 2019閲覧。
- ^ “Invoking guix package”. gnu.org. 16 May 2019閲覧。
- ^ “Invoking guix environment”. gnu.org. 16 May 2019閲覧。
- ^ “From 'guix environment' to 'guix shell'”. gnu.org. 22 Nov 2023閲覧。
- ^ “Invoking guix pack”. gnu.org. 3 September 2024閲覧。
- ^ “news: Add entry for guix pack's AppImage format”. Savannah Git Server (2024年11月7日). 2024年11月30日閲覧。
- ^ “news: Add entry for the new 'rpm' guix pack format.”. Savannah Git Server (2023年2月17日). 2024年11月30日閲覧。
- ^ “Invoking guix graph”. gnu.org. 16 May 2019閲覧。
- ^ “Specifying Additional Channels (GNU Guix Reference Manual)”. GNU Guix. 2024年11月23日閲覧。
- ^ “Nonguix / nonguix · GitLab”. GitLab (2024年11月23日). 2024年11月23日閲覧。
- ^ “Software Freedom (GNU Guix Reference Manual)”. GNU Guix. 2024年11月23日閲覧。
- ^ “About — GuixSD”. gnu.org. April 12, 2017時点のオリジナルよりアーカイブ。March 16, 2017閲覧。
- ^ “GNU/Linux FAQ - GNU Project - Free Software Foundation”. Free Software Foundation. September 7, 2013時点のオリジナルよりアーカイブ。2017年5月14日閲覧。
- ^ “Download — GNU Guix”. August 1, 2020時点のオリジナルよりアーカイブ。2019年11月3日閲覧。
- ^ "GNU Guix 1.4.0 released (English)"; 出版日: 2022年12月19日; 閲覧日: 2022年12月30日.
- ^ “About — GNU Guix”. guix.gnu.org. 2021年12月11日閲覧。
- ^ “Free GNU/Linux distributions”. www.gnu.org. 2025年1月16日閲覧。
- ^ "What to call Guix?" (Mailing list). gnu-system-discuss. 15 January 2015. 2020年8月7日時点のオリジナルよりアーカイブ。2020年8月3日閲覧。
- ^ “List of Free GNU/Linux Distributions”. February 3, 2015閲覧。
- ^ “Using the Configuration System”. gnu.org. 27 April 2019閲覧。
- ^ “Package Management”. gnu.org. 27 April 2019閲覧。
- ^ “Programming Interface (GNU Guix Reference Manual)”. guix.gnu.org. August 7, 2020時点のオリジナルよりアーカイブ。2020年8月3日閲覧。
- ^ “Guix: A New Package Manager & GNU Distribution - Phoronix”. www.phoronix.com. July 6, 2018時点のオリジナルよりアーカイブ。2020年8月3日閲覧。
- ^ "GNU Guix & GuixSD 0.12.0 released" (Mailing list). guix-devel. 21 December 2016. 2020年8月1日時点のオリジナルよりアーカイブ。2020年8月3日閲覧。
- ^ “FSF adds Guix System Distribution to list of endorsed distributions”. Free Software Foundation (3 February 2015). February 3, 2015閲覧。
- ^ Mathieu Othacehe. “Porting GuixSD to ARMv7”. December 25, 2017時点のオリジナルよりアーカイブ。February 17, 2018閲覧。
- ^ “New Supported Platform: powerpc64le-linux” (April 12, 2021). May 16, 2021時点のオリジナルよりアーカイブ。October 6, 2021閲覧。
- ^ a b “Supported Platforms (GNU Guix Reference Manual)”. GNU Guix. 2024年10月23日閲覧。
- ^ “guix.git”. git.savannah.gnu.org. May 11, 2019時点のオリジナルよりアーカイブ。11 May 2019閲覧。
- ^ Wurmus, Ricardo. "Re: Help with preparing to move from Arch Linux to Guix" (Mailing list). 2020年8月1日時点のオリジナルよりアーカイブ。2019年5月11日閲覧。
- ^ “guix-devel mailing lists”. 2016年11月5日閲覧。
- ^ a b “GNU Guix Reference Manual: Service Composition”. GNU Project. January 1, 2019時点のオリジナルよりアーカイブ。2016年11月5日閲覧。
- ^ “systemd: Unit Dependencies and Order”. Fedora Magazine (November 25, 2015). August 1, 2020時点のオリジナルよりアーカイブ。2016年11月5日閲覧。
- ^ “The GNU Shepherd Manual: Jump Start”. GNU Project. August 1, 2020時点のオリジナルよりアーカイブ。2016年11月5日閲覧。
- ^ “GNU Guix Reference Manual: Shepherd Services”. GNU Project. January 1, 2019時点のオリジナルよりアーカイブ。2016年11月5日閲覧。
- ^ “The GNU Shepherd Manual”. GNU Project. August 1, 2020時点のオリジナルよりアーカイブ。2016年11月5日閲覧。
- ^ “GNU Guix Reference Manual: Services”. GNU Project. December 25, 2018時点のオリジナルよりアーカイブ。2016年11月5日閲覧。
- ^ “GNU Guix Reference Manual: Service Types and Services”. GNU Project. January 5, 2019時点のオリジナルよりアーカイブ。2016年11月5日閲覧。
- ^ “GNU Guix Reference Manual: Using the Configuration System”. GNU Project. April 29, 2019時点のオリジナルよりアーカイブ。2016年11月5日閲覧。
- ^ “GNU Shepherd”. GNU project. February 12, 2016時点のオリジナルよりアーカイブ。2016年2月12日閲覧。
- ^ “Invoking guix system”. www.gnu.org. May 26, 2019時点のオリジナルよりアーカイブ。27 April 2019閲覧。
- ^ Courtès, Ludovic (2013). "Functional Package Management with Guix". p. 2. arXiv:1305.4584 [cs.PL]。
- ^ “Multi-dimensional transactions and rollbacks, oh my!”. guix.gnu.org. 2025年1月25日閲覧。
- ^ Smith, Jesse. Guix System Distribution 0.15.0 and ReactOS 0.4.9. オリジナルのJuly 30, 2019時点におけるアーカイブ。 2018年8月30日閲覧。.
- ^ “Videos”. August 1, 2020時点のオリジナルよりアーカイブ。2020年3月3日閲覧。
- ^ “Cookbook”. August 1, 2020時点のオリジナルよりアーカイブ。2020年3月3日閲覧。
- ^ “Guix-HPC — Reproducible software deployment for high-performance computing — Blog” (英語). hpc.guix.info. 2024年11月5日閲覧。
- ^ Vallet, Nicolas; Michonneau, David; Tournier, Simon (2022-10-04). “Toward practical transparent verifiable and long-term reproducible research using Guix” (英語). Scientific Data 9 (1): 597. Bibcode: 2022NatSD...9..597V. doi:10.1038/s41597-022-01720-9. ISSN 2052-4463. PMC 9532446. PMID 36195618 .
- ^ Stallman, Richard (5 June 2012). "A GNU Distribution" (Mailing list). gnu-system-discuss.
- ^ Courtès, Ludovic (23 November 2012). "Introducing GNU Guix" (Mailing list). gnu-system-discuss.
- ^ Ragkousis, Manolis (20 August 2015). "[GSoC update] Porting Guix to GNU/Hurd" (Mailing list). guix-devel. 2015年8月20日閲覧。
- ^ “1.5.0 release?”. 2025年1月25日閲覧。
- ^ Courtès (2013年1月18日). “GNU Guix 0.1 released (alpha)”. 2025年1月25日閲覧。
- ^ Courtès (2013年5月12日). “GNU Guix 0.2 released (alpha)”. 2025年1月25日閲覧。
- ^ Courtès (2013年7月17日). “GNU Guix 0.3 released”. 2025年1月25日閲覧。
- ^ Courtès (2013年9月27日). “GNU Guix 0.4 released”. 2025年1月25日閲覧。
- ^ Courtès (2013年12月11日). “GNU Guix 0.5 released”. 2025年1月25日閲覧。
- ^ Courtès (2014年4月9日). “GNU Guix 0.6 released”. 2025年1月25日閲覧。
- ^ Courtès (2014年7月25日). “GNU Guix 0.7 released”. 2025年1月25日閲覧。
- ^ Courtès (2014年11月18日). “GNU Guix 0.8 released”. 2025年1月25日閲覧。
- ^ Courtès (2015年6月29日). “GNU Guix 0.8.1 released”. 2025年1月25日閲覧。
- ^ Courtès (2015年5月14日). “GNU Guix 0.8.2 released”. 2025年1月25日閲覧。
- ^ Courtès (2015年7月22日). “GNU Guix 0.8.3 released”. 2025年1月25日閲覧。
- ^ Courtès (2015年11月5日). “GNU Guix 0.9.0 released”. 2025年1月25日閲覧。
- ^ Courtès (2016年5月29日). “GNU Guix & GuixSD 0.10.0 released”. 2025年1月25日閲覧。
- ^ Courtès (2016年8月3日). “GNU Guix & GuixSD 0.11.0 released”. 2025年1月25日閲覧。
- ^ Wurmus (2016年12月21日). “GNU Guix & GuixSD 0.12.0 released”. 2025年1月25日閲覧。
- ^ Courtès (2017年5月22日). “GNU Guix & GuixSD 0.13.0 released”. 2025年1月25日閲覧。
- ^ Courtès (2017年12月7日). “GNU Guix & GuixSD 0.14.0 released”. 2025年1月25日閲覧。
- ^ Courtès (2018年7月6日). “GNU Guix & GuixSD 0.15.0 released”. 2025年1月25日閲覧。
- ^ Courtès (2018年12月6日). “GNU Guix & GuixSD 0.16.0 released”. 2025年1月25日閲覧。
- ^ Courtès (2019年5月2日). “GNU Guix 1.0.0 released”. 2025年1月25日閲覧。
- ^ Courtès (2019年5月19日). “GNU Guix 1.0.1 released”. 2025年1月25日閲覧。
- ^ Courtès (2020年4月15日). “GNU Guix 1.1.0 released”. 2025年1月25日閲覧。
- ^ Courtès (2020年11月23日). “GNU Guix 1.2.0 released”. 2025年1月25日閲覧。
- ^ Courtès (2021年5月11日). “GNU Guix 1.3.0 released”. 2025年1月25日閲覧。
- ^ Courtès (2022年12月19日). “GNU Guix 1.4.0 released”. 2025年1月25日閲覧。