「Guix」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎インストール: 英語版より記事を転載)
(→‎Guix のアンインストール: add TranslationStatus.)
 
(同じ利用者による、間の6版が非表示)
1行目: 1行目:
[[Category:パッケージ管理]]
+
[[Category:パッケージマネージャー]]
 
[[en:Guix]]
 
[[en:Guix]]
 
{{Warning|Guix は Arch の[[pacman|公式パッケージマネージャ]]ではありません。まだ開発途上です。一部のパッケージは、ビルドに失敗する可能性があります。}}
 
{{Warning|Guix は Arch の[[pacman|公式パッケージマネージャ]]ではありません。まだ開発途上です。一部のパッケージは、ビルドに失敗する可能性があります。}}
8行目: 8行目:
 
== インストール ==
 
== インストール ==
   
  +
Arch Linux では、Guix を AUR を使用してインストールするか、Guix マニュアルに記載されている手動の方法でインストールできます。
On Arch Linux you can install Guix either using the AUR or manually as described in the Guix Manual.
 
  +
AUR を使用してインストールする利点は、pacman がパッケージと {{ic|/usr}} ファイルツリー内の追加ファイルを認識していることです。しかし、他の AUR パッケージとは異なり、パッケージのアンインストールは Guix のインストール全体を巻き戻すわけではありません。
Installing using the AUR has the advantage that pacman is aware of the package and the extra files in the {{ic|/usr}} file tree. But contrarily to other AUR packages, uninstalling the package does not unwind the entire Guix installation.
 
  +
Guix 自体がパッケージマネージャであり、自己更新もできるため、Guix 経由でインストールされたファイルは手動でアンインストールする必要があります(AUR パッケージをインストールした場合でも手動インストールの場合でも関係ありません)。
Since Guix is a package manager by itself and it can also update itself, you still have to manually uninstall the files installed via Guix (no matter whether you installed the AUR package or the manual installation).
 
  +
したがって、一度 Guix を更新すると、AUR の利点は実際には不利になります。なぜなら、{{ic|/usr}} ファイルツリー内に Guix AUR パッケージの一部である不要なファイルが多数存在することになるからです。
Therefore, after updating Guix once, the AUR advantage really turns into a disadvantage, as there will be many unnecessary files in the {{ic|/usr}} file tree that are part of the Guix AUR package but that are never used by Guix anymore.
 
  +
そのため、手動インストールを検討してください。
Therefore, consider using the manual installation.
 
   
=== Manual Installation ===
+
=== 手動インストール ===
For the manual installation, see [https://guix.gnu.org/manual/html_node/Installation.html#Installation chapter Installation] of the Guix manual.
 
The easiest way is to use the shell installer script linked in there.
 
   
  +
手動インストールについては、Guix マニュアルの[https://guix.gnu.org/manual/html_node/Installation.html#Installation インストール章]を参照してください。
As of July 2019 this script installs files into the following locations:
 
  +
最も簡単な方法は、そこにリンクされているシェルインストーラスクリプトを使用することです。
* {{ic|/gnu/store}}, {{ic|/var/guix}} (the Guix store)
 
* {{ic|/usr/local/share/info}}, {{ic|/usr/local/bin}}, (only symlinks)
 
* {{ic|/root/.config/guix}} (a symlink to the current profile)
 
Furthermore it installs and enables a systemd service called {{ic|guix-daemon.service}}, and creates users {{ic|guixbuilder01}} ... {{ic|guixbuilder10}} and a group {{ic|guixbuild}}.
 
   
  +
2019 年 7 月現在、このスクリプトは次の場所にファイルをインストールします:
After running the script, create a new file called {{ic|/etc/profile.d/guix.sh}}:
 
  +
* {{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
 
# Arrange so that ~/.config/guix/current paths end up first in
47行目: 48行目:
 
export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
 
export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
   
  +
次に、新しいログインシェルを開始する(またはマシンを再起動する)と、Guix を使用できるようになります:
Now start a new login shell (alternatively reboot your machine) and you can start using Guix:
 
   
 
# guix install glibc-locales
 
# guix install glibc-locales
   
=== AUR Package Installation ===
+
=== 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 鍵を追加する必要があります。
   
  +
Guix は、特権のないビルドユーザーアカウントを使用してビルドプロセスを実行することで、ビルドの再現性を高めます。したがって、同時に {{ic|''n''}} 個のパッケージをビルドできるようにするには(例えば、複数のユーザーに同時にサービスを提供する場合など)、{{ic|''n''}} 個のビルドユーザーアカウントを作成する必要があります。これにより、Guix が同時にビルドできるようになります。以下のコマンドは、[https://www.gnu.org/software/guix/manual/html_node/Build-Environment-Setup.html#Build-Environment-Setup Guix マニュアル]に記載されている方法でこれを実行します:
GNU Guix is available in the AUR as {{AUR|guix}}. As described in the {{ic|PKGBUILD}}, the PGP key by the Guix distributor will need to be added first.
 
 
Guix makes builds more reproducible by running the build process using an unprivileged build user account. Therefore if you want to be able to build {{ic|''n''}} packages simultaneously (e.g. for serving multiple users at the same time) you should create {{ic|''n''}} build user accounts. as Guix should be able to build simultaneously. The following command does this the way described in [https://www.gnu.org/software/guix/manual/html_node/Build-Environment-Setup.html#Build-Environment-Setup Guix manual]:
 
   
 
# groupadd --system guixbuild
 
# groupadd --system guixbuild
72行目: 72行目:
 
done
 
done
   
  +
{{ic|guix-daemon.service}} を[[Systemd#ユニットを使う|起動して有効]]にします。
[[Systemd#Using units|Start and enable]] {{ic|guix-daemon.service}}.
 
   
  +
[https://ci.guix.gnu.org Guix Official Substitute Server] からバイナリパッケージ(「代替品」)をダウンロードして使用することを Guix に許可することもできます:
You may want to authorize Guix to download and use binary packages (‘substitutes’) from the [https://ci.guix.gnu.org Guix Official Substitute Server]:
 
   
 
# guix archive --authorize < /usr/share/guix/ci.guix.gnu.org.pub
 
# guix archive --authorize < /usr/share/guix/ci.guix.gnu.org.pub
   
  +
== {{ic|/tmp}} の外側でパッケージをビルド ==
== 実行 ==
 
 
Guix は非特権のビルド用ユーザーアカウントを使用してビルドを実行するため再現可能性が高くなっています。複数のビルド用ユーザーアカウントを作成することで複数のパッケージを同時にビルドすることが可能です。以下のコマンドは [https://www.gnu.org/software/guix/manual/html_node/Build-Environment-Setup.html#Build-Environment-Setup 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
 
 
{{ic|guix-daemon.service}} を[[起動]]・[[有効化]]してください。
 
 
Guix で [http://hydra.gnu.org Hydra] からバイナリパッケージ (‘substitute’) をダウンロード・使用するには:
 
 
# guix archive --authorize < /usr/share/guix/hydra.gnu.org.pub
 
 
=== {{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''}} を使用してビルドするには、以下を実行:
113行目: 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
119行目: 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 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。