Guix
GNU Guix はトランザクションを使用してユーザー環境を再現できるパッケージマネージャです。Guix をスタンドアロンで使って完全な GNU ディストリビューションとして使用することもできますが、Arch に Guix パッケージマネージャをインストールすることで伝統的な成熟した Unix ライク環境をベースとすることが可能です。
Guix で使えるパッケージコマンドについては Guix マニュアル を読んでください。
インストール
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
も削除すると良いでしょう。