Guix

提供: ArchWiki
2019年3月26日 (火) 23:25時点におけるHiromi-mi (トーク | 投稿記録)による版 (英語版と同期)
ナビゲーションに移動 検索に移動
警告: Guix は Arch の公式パッケージマネージャではありません。まだ開発途上であり Arch ではパッケージのビルドに失敗する可能性があります。

GNU Guix はトランザクションを使用してユーザー環境を再現できるパッケージマネージャです。Guix をスタンドアロンで使って完全な GNU ディストリビューションとして使用することもできますが、Arch に Guix パッケージマネージャをインストールすることで伝統的な成熟した Unix ライク環境をベースとすることが可能です。

Guix で使えるパッケージコマンドについては Guix マニュアル を読んでください。

インストール

ノート: /bin/sh が Bash でない場合、ビルドのチェックに失敗します。デフォルトの Arch では問題ありません。
ノート: 2018年5月13日の時点では、BUILDDIR 環境変数が tmpfs 上のディレクトリを指していると、makepkg でのビルド中に guix-environment-container テストが失敗します。

GNU Guix は AUR の guixAUR パッケージでインストールできます。PKGBUILD に書かれているように、まずは Guix のディストリビュータによって配布されている PGP 鍵を追加する必要があります。

実行

Guix は非特権のビルド用ユーザーアカウントを使用してビルドを実行するため再現可能性が高くなっています。複数のビルド用ユーザーアカウントを作成することで複数のパッケージを同時にビルドすることが可能です。以下のコマンドは Guix マニュアル に書かれているユーザーを追加するコマンドです:

# groupadd --system guixbuild
# uncomment and type e.g.  10  for   n below  -->  have ten users  
# for i in `seq -w 1 n`;
  do
    useradd -g guixbuild -G guixbuild           \
            -d /var/empty -s `which nologin`    \
            -c "Guix build user $i" --system    \
            guixbuilder$i;
  done

guix-daemon.service起動有効化してください。

Guix で Hydra からバイナリパッケージ (‘substitute’) をダウンロード・使用するには:

# guix archive --authorize < /usr/share/guix/hydra.gnu.org.pub

/tmp の外側でパッケージをビルド

/tmp に十分な容量がないなどの理由でビルドする時の TMPDIR を変えたい場合、ユニットファイルに変更を加える必要があります (詳しくは Guix マニュアル を参照)。/tmp の代わりに /tmpdir を使用してビルドするには、以下を実行:

# systemctl edit guix-daemon.service

そして以下の行を追加してください:

[Service]
Environment=TMPDIR=/tmpdir

Guix のアンインストール

guix-daemon.service を無効化して pacman で Guix を削除してください。それから Guix のビルド用ユーザーやグループも削除してください:

# for i in `seq -w 1 n`; do userdel guixbuilder$i; done
# groupdel guixbuild

Guix のファイルが保存されている /gnu, /var/guix, /var/log/guix なども削除してください。guix-daemon.service を編集していた場合、/etc/systemd/system/guix-daemon.service.d も削除すると良いでしょう。