「Guix」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (カテゴリを修正) |
Kusanaginoturugi (トーク | 投稿記録) (→AUR パッケージのインストール: 更新) |
||
(同じ利用者による、間の1版が非表示) | |||
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. |
||
− | === |
+ | === 手動インストール === |
− | 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 |
+ | === 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 マニュアル]に記載されている方法でこれを実行します: |
||
− | 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 |
||
70行目: | 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 |
2024年7月16日 (火) 18:32時点における版
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
も削除すると良いでしょう。