「Guix」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎インストール: 一部翻訳)
54行目: 54行目:
 
=== AUR パッケージのインストール ===
 
=== AUR パッケージのインストール ===
   
  +
{{Note|
{{Note|{{ic|/bin/sh}} が Bash でない場合、ビルドのチェックに失敗します。デフォルトの Arch では問題ありません。}}
 
  +
* {{ic|/bin/sh}} が Bash でない場合、ビルドのチェックに失敗します。デフォルトの Arch では問題ありません。
{{Note|2018年5月13日の時点では、[[Makepkg#tmpfs|BUILDDIR 環境変数]]が tmpfs 上のディレクトリを指していると、makepkg でのビルド中に ''guix-environment-container'' テストが失敗します。}}
 
  +
* 2018年5月13日の時点では、[[Makepkg#tmpfs|BUILDDIR 環境変数]]が tmpfs 上のディレクトリを指していると、makepkg でのビルド中に ''guix-environment-container'' テストが失敗します。}}
   
 
GNU Guix は AUR の {{AUR|guix}} パッケージでインストールできます。{{ic|PKGBUILD}} に書かれているように、まずは Guix のディストリビュータによって配布されている PGP 鍵を追加する必要があります。
 
GNU Guix は AUR の {{AUR|guix}} パッケージでインストールできます。{{ic|PKGBUILD}} に書かれているように、まずは Guix のディストリビュータによって配布されている PGP 鍵を追加する必要があります。

2024年7月16日 (火) 18:32時点における版

警告: Guix は Arch の公式パッケージマネージャではありません。まだ開発途上です。一部のパッケージは、ビルドに失敗する可能性があります。

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 パッケージのインストール

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

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 も削除すると良いでしょう。