「Guix」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→Guix のアンインストール: add TranslationStatus.) |
Kusanaginoturugi (トーク | 投稿記録) (→Guix のアンインストール: add TranslationStatus.) |
(相違点なし)
|
2024年7月16日 (火) 18:34時点における最新版
GNU Guix はトランザクションを使用してユーザー環境を再現できるパッケージマネージャです。Guix をスタンドアロンで使って完全な GNU ディストリビューションとして使用することもできますが、Arch に Guix パッケージマネージャをインストールすることで伝統的な成熟した Unix ライク環境をベースとすることが可能です。
Guix で使えるパッケージコマンドについては Guix マニュアル を読んでください。
インストール
Arch Linux では、Guix を AUR を使用してインストールするか、Guix マニュアルに記載されている手動の方法でインストールできます。
AUR を使用してインストールする利点は、pacman がパッケージと /usr
ファイルツリー内の追加ファイルを認識していることです。しかし、他の AUR パッケージとは異なり、パッケージのアンインストールは Guix のインストール全体を巻き戻すわけではありません。
Guix 自体がパッケージマネージャであり、自己更新もできるため、Guix 経由でインストールされたファイルは手動でアンインストールする必要があります(AUR パッケージをインストールした場合でも手動インストールの場合でも関係ありません)。
したがって、一度 Guix を更新すると、AUR の利点は実際には不利になります。なぜなら、/usr
ファイルツリー内に Guix AUR パッケージの一部である不要なファイルが多数存在することになるからです。
そのため、手動インストールを検討してください。
手動インストール
手動インストールについては、Guix マニュアルのインストール章を参照してください。 最も簡単な方法は、そこにリンクされているシェルインストーラスクリプトを使用することです。
2019 年 7 月現在、このスクリプトは次の場所にファイルをインストールします:
/gnu/store
,/var/guix
(Guix ストア)/usr/local/share/info
,/usr/local/bin
(シンボリックリンクのみ)/root/.config/guix
(現在のプロファイルへのシンボリックリンク)
さらに、guix-daemon.service
という systemd サービスをインストールして有効にし、guixbuilder01
から guixbuilder10
までのユーザーと guixbuild
グループを作成します。
スクリプトを実行した後、/etc/profile.d/guix.sh
という名前の新しいファイルを作成します:
# Arrange so that ~/.config/guix/current paths end up first in # the particular path list. for profile in "$HOME/.guix-profile" "$HOME/.config/guix/current" do if [ -f "$profile/etc/profile" ] then # Load the user profile's settings. GUIX_PROFILE="$profile" ; \ . "$profile/etc/profile" else # At least define this one so that basic things just work # when the user installs their first package. export PATH="$profile/bin${PATH:+:$PATH}" export INFOPATH="$profile/share/info${INFOPATH:+:$INFOPATH}" fi done unset profile export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
次に、新しいログインシェルを開始する(またはマシンを再起動する)と、Guix を使用できるようになります:
# guix install glibc-locales
AUR パッケージのインストール
GNU Guix は AUR の guixAUR パッケージでインストールできます。PKGBUILD
に書かれているように、まずは Guix のディストリビュータによって配布されている PGP 鍵を追加する必要があります。
Guix は、特権のないビルドユーザーアカウントを使用してビルドプロセスを実行することで、ビルドの再現性を高めます。したがって、同時に n
個のパッケージをビルドできるようにするには(例えば、複数のユーザーに同時にサービスを提供する場合など)、n
個のビルドユーザーアカウントを作成する必要があります。これにより、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 Official Substitute Server からバイナリパッケージ(「代替品」)をダウンロードして使用することを Guix に許可することもできます:
# guix archive --authorize < /usr/share/guix/ci.guix.gnu.org.pub
/tmp
の外側でパッケージをビルド
/tmp
に十分な容量がないなどの理由でビルドする時の TMPDIR
を変えたい場合、ユニットファイルに変更を加える必要があります (詳しくは Guix マニュアル を参照)。/tmp
の代わりに /tmpdir
を使用してビルドするには、以下を実行:
# systemctl edit guix-daemon.service
そして以下の行を追加してください:
[Service] Environment=TMPDIR=/tmpdir
Guix のアンインストール
guix-daemon.service
を無効化します。AUR パッケージから Guix をインストールした場合は、pacman で Guix を削除してください。
/etc/systemd/system/guix-daemon.service
、/etc/systemd/system/guix-daemon.service.d
と /etc/profile.d/guix.sh
が存在していたら削除してください。
それから 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
も削除すると良いでしょう。