Table of Contents

GuixとGuixSDの日本語の情報がほとんどありません。それなら作ればいいとい うことでこ のサイトを作りました。

1 GNU Guixパッケージマネージャーとは

Guixは、Nixパッケージマネージャーをベースに作られて、従来のパッケージマネー ジャーとは大分違います。

1.1 Guixパッケージマネージャーの特徴(guix manual)

  1. パッケージ(プログラム、アプリケーション)はすべて/gnu/store以下にイ ンストール される。

    例: /gnu/store/xxx-package-1.2 (xxx: base32文字列)

  2. ユーザーは自身のプロファイル(profile)を持ち、インストールしたパッケー ジのリンク がユーザープロファイルに作成される。例: ~/.guix-profile

    この仕組みにより、ユーザー毎に異るバージョンの同じアプリケーション をインストー ルして使うことが出来、インストールは一般ユーザー権限で 行える。

  3. パッケージの管理は、guix packageコマンドで行う。

    a. インストール: guix package –install=package… or -i package…

    b. 削除: guix package –remove=package… or -r package…

    c. アップグレード: guix package –upgrade[=regex…] or -r [regex…]

  4. パッケージのインストール、削除、アップグレード処理はトランザクショ ン (transaction)として処理されるので、途中のエラーや電源喪失の影響 が残ることはな い。

    また、これらのトランザクション処理は、ロールバック可能で、たとえば アップグレー ドしたアプリーケーションの以前のバージョンを使いたいと き、以前のプロファイル に戻ることで可能になる。 ユーザープロフィル のロールバックは、システム定義(system configuration on GuixSD)にお いても可能で、これについてはGuixSDの紹介のところで書く。

  5. ユーザープロフィルにリンクがなくなった/gnu/store以下のパッケージ類 は、ガベー ジコレクト(guix gc)出来る。

    また、特定の世代(generation)のユーザープロファイルを指定してガベー ジコレクト することも出来る。

  6. Guixによるパッケージ管理は関数的で、その意味は関数の入力として、ス クリプト (Guile Schemeで書かれたパッケージ定義)と、コンパイラーやラ イブラリーを与える と結果としてパッケージが出力され、同じ入力なら同 じ結果が出力され、そのビルド 環境の外から、結果を変更することは出来 ないということ。
  7. guix packageコマンドはすでにビルドされたバイナリーパッケージ (Substitutes) があれば、それをダウンロードし/gnu/store以下に展開す る。バイナリーパッケージ がなければソースをダウンロードしてビルドす る。
  8. guix本体も、guix pullを実行することでgit repositoryから最新のソース をダウンロー ドしてビルドされる。

Wara-test ダウンロードwara-base-170127-x86_64.iso

2 GuixSDディストリビューション

2.1 全てがフリーソフトウェア

  • コアGNUパッケージ: GNU libc, GCC, Binutils …
  • 多くのGNUパッケージとnon-GNUパッケージ(2019年1月31日現在 9046パッケージ)

2.2 インストール方法

  • インストールメディア(DVD)から行う方法と、既存のLinuxディストリビュー ションに guixパッケージマネージャーをインストールしてからsystem configurationする方法 がある。
  • 後者の場合、元のLinuxディストリビューションと共存することも可能(未確認)。

3 利用可能なプラットホーム

  • x8664-linux: intel/AMD x8664 architecture
  • i686-linux: intel 32-bit architecture(IA32)
  • armhf-linux: ARMv7-A architecture
  • aarch64-linux: little-endian 64-bit ARMv8-A processors
  • mips64el-linux: little-endian 64-bit MIPS processors

Created: 2019-04-06 Sat 18:21

Validate