「Guix」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(英語版と同期)
(→‎Guix のアンインストール: add TranslationStatus.)
 
(同じ利用者による、間の8版が非表示)
1行目: 1行目:
[[Category:パッケージ管理]]
+
[[Category:パッケージマネージャー]]
 
[[en:Guix]]
 
[[en:Guix]]
{{Warning|Guix は Arch の[[pacman|公式パッケージマネージャ]]ではありません。まだ開発途上であり Arch ではパッケージビルドに失敗する可能性があります。}}
+
{{Warning|Guix は Arch の[[pacman|公式パッケージマネージャ]]ではありません。まだ開発途上です。一部のパッケージは、ビルドに失敗する可能性があります。}}
 
[https://www.gnu.org/software/guix/ GNU Guix] はトランザクションを使用してユーザー環境を再現できるパッケージマネージャです。Guix をスタンドアロンで使って完全な GNU ディストリビューションとして使用することもできますが、Arch に Guix パッケージマネージャをインストールすることで伝統的な成熟した Unix ライク環境をベースとすることが可能です。
 
[https://www.gnu.org/software/guix/ GNU Guix] はトランザクションを使用してユーザー環境を再現できるパッケージマネージャです。Guix をスタンドアロンで使って完全な GNU ディストリビューションとして使用することもできますが、Arch に Guix パッケージマネージャをインストールすることで伝統的な成熟した Unix ライク環境をベースとすることが可能です。
   
8行目: 8行目:
 
== インストール ==
 
== インストール ==
   
  +
Arch Linux では、Guix を AUR を使用してインストールするか、Guix マニュアルに記載されている手動の方法でインストールできます。
{{Note|{{ic|/bin/sh}} が Bash でない場合、ビルドのチェックに失敗します。デフォルトの Arch では問題ありません。}}
 
  +
AUR を使用してインストールする利点は、pacman がパッケージと {{ic|/usr}} ファイルツリー内の追加ファイルを認識していることです。しかし、他の AUR パッケージとは異なり、パッケージのアンインストールは Guix のインストール全体を巻き戻すわけではありません。
{{Note|2018年5月13日の時点では、[[Makepkg#tmpfs|BUILDDIR 環境変数]]が tmpfs 上のディレクトリを指していると、makepkg でのビルド中に ''guix-environment-container'' テストが失敗します。}}
 
  +
Guix 自体がパッケージマネージャであり、自己更新もできるため、Guix 経由でインストールされたファイルは手動でアンインストールする必要があります(AUR パッケージをインストールした場合でも手動インストールの場合でも関係ありません)。
  +
したがって、一度 Guix を更新すると、AUR の利点は実際には不利になります。なぜなら、{{ic|/usr}} ファイルツリー内に Guix AUR パッケージの一部である不要なファイルが多数存在することになるからです。
  +
そのため、手動インストールを検討してください。
   
  +
=== 手動インストール ===
GNU Guix は AUR の {{AUR|guix}} パッケージでインストールできます。{{ic|PKGBUILD}} に書かれているように、まずは Guix のディストリビュータによって配布されている PGP 鍵を追加する必要があります。
 
   
  +
手動インストールについては、Guix マニュアルの[https://guix.gnu.org/manual/html_node/Installation.html#Installation インストール章]を参照してください。
== 実行 ==
 
  +
最も簡単な方法は、そこにリンクされているシェルインストーラスクリプトを使用することです。
  +
  +
2019 年 7 月現在、このスクリプトは次の場所にファイルをインストールします:
  +
* {{ic|/gnu/store}}, {{ic|/var/guix}}(Guix ストア)
  +
* {{ic|/usr/local/share/info}}, {{ic|/usr/local/bin}}(シンボリックリンクのみ)
  +
* {{ic|/root/.config/guix}}(現在のプロファイルへのシンボリックリンク)
  +
さらに、{{ic|guix-daemon.service}} という systemd サービスをインストールして有効にし、{{ic|guixbuilder01}} から {{ic|guixbuilder10}} までのユーザーと {{ic|guixbuild}} グループを作成します。
  +
  +
スクリプトを実行した後、{{ic|/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 パッケージのインストール ===
  +
  +
{{Note|
  +
* {{ic|/bin/sh}} が Bash でない場合、ビルドのチェックに失敗します。デフォルトの Arch では問題ありません。
  +
* 2018年5月13日の時点では、[[Makepkg#tmpfs|BUILDDIR 環境変数]]が tmpfs 上のディレクトリを指していると、makepkg でのビルド中に ''guix-environment-container'' テストが失敗します。}}
  +
  +
GNU Guix は AUR の {{AUR|guix}} パッケージでインストールできます。{{ic|PKGBUILD}} に書かれているように、まずは Guix のディストリビュータによって配布されている PGP 鍵を追加する必要があります。
   
Guix は特権のビルドユーザーアカウントを使用してビルドを実行するため再現可能くなっています。複数のビルドユーザーアカウントを作成することで複数のパッケージを同時にビルドことが可能です。以下のコマンドは [https://www.gnu.org/software/guix/manual/html_node/Build-Environment-Setup.html#Build-Environment-Setup Guix マニュアル] 書かれているユーザー追加るコマンドです:
+
Guix は特権のないビルドユーザーアカウントを使用してビルドプロセスを実行することで、ビルドの再現性ます。したがって、同時に {{ic|''n''}} 個のパッケージをビルドできるようにするには(例えば、複数のユーザーに同時にサービスを提供する場合など)、{{ic|''n''}} 個のビルドユーザーアカウントを作成する必要があります。れにより、Guix が同時にビルドできようになります。以下のコマンドは[https://www.gnu.org/software/guix/manual/html_node/Build-Environment-Setup.html#Build-Environment-Setup Guix マニュアル]に記載されている方法でこれ実行しま
   
 
# groupadd --system guixbuild
 
# groupadd --system guixbuild
27行目: 72行目:
 
done
 
done
   
{{ic|guix-daemon.service}} を[[起動]]・[[有効]]してください
+
{{ic|guix-daemon.service}} を[[Systemd#ユニットを使う|起動して有効]]ます
   
Guix で [http://hydra.gnu.org Hydra] からバイナリパッケージ (‘substitute’) をダウンロード使用するには:
+
[https://ci.guix.gnu.org Guix Official Substitute Server] からバイナリパッケージ(「代替品」)をダウンロードして使用することを Guix 許可することもできます:
   
# guix archive --authorize < /usr/share/guix/hydra.gnu.org.pub
+
# guix archive --authorize < /usr/share/guix/ci.guix.gnu.org.pub
   
=== {{ic|/tmp}} の外側でパッケージをビルド ===
+
== {{ic|/tmp}} の外側でパッケージをビルド ==
   
 
{{ic|/tmp}} に十分な容量がないなどの理由でビルドする時の {{ic|TMPDIR}} を変えたい場合、ユニットファイルに変更を加える必要があります (詳しくは [https://www.gnu.org/software/guix/manual/html_node/Build-Environment-Setup.html#Build-Environment-Setup Guix マニュアル] を参照)。{{ic|/tmp}} の代わりに {{ic|''/tmpdir''}} を使用してビルドするには、以下を実行:
 
{{ic|/tmp}} に十分な容量がないなどの理由でビルドする時の {{ic|TMPDIR}} を変えたい場合、ユニットファイルに変更を加える必要があります (詳しくは [https://www.gnu.org/software/guix/manual/html_node/Build-Environment-Setup.html#Build-Environment-Setup Guix マニュアル] を参照)。{{ic|/tmp}} の代わりに {{ic|''/tmpdir''}} を使用してビルドするには、以下を実行:
48行目: 93行目:
 
== Guix のアンインストール ==
 
== Guix のアンインストール ==
   
{{ic|guix-daemon.service}} を無効化し [[pacman]] で Guix を削除してください。それから Guix のビルド用ユーザーやグループも削除してください:
+
{{ic|guix-daemon.service}} を無効化します。AUR パッケージから Guix をインストールした場合は、[[pacman]] で Guix を削除してください。
  +
  +
{{ic|/etc/systemd/system/guix-daemon.service}}、{{ic|/etc/systemd/system/guix-daemon.service.d}} と {{ic|/etc/profile.d/guix.sh}} が存在していたら削除してください。
  +
  +
それから Guix のビルド用ユーザーやグループも削除してください。
   
 
# for i in `seq -w 1 ''n''`; do userdel guixbuilder$i; done
 
# for i in `seq -w 1 ''n''`; do userdel guixbuilder$i; done
54行目: 103行目:
   
 
Guix のファイルが保存されている {{ic|/gnu}}, {{ic|/var/guix}}, {{ic|/var/log/guix}} なども削除してください。{{ic|guix-daemon.service}} を編集していた場合、{{ic|/etc/systemd/system/guix-daemon.service.d}} も削除すると良いでしょう。
 
Guix のファイルが保存されている {{ic|/gnu}}, {{ic|/var/guix}}, {{ic|/var/log/guix}} なども削除してください。{{ic|guix-daemon.service}} を編集していた場合、{{ic|/etc/systemd/system/guix-daemon.service.d}} も削除すると良いでしょう。
  +
  +
{{TranslationStatus|Guix|2024-07-16|793609}}

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

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

翻訳ステータス: このページは en:Guix の翻訳バージョンです。最後の翻訳日は 2024-07-16 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。