「Guix」の版間の差分
(翻訳) |
Kusanaginoturugi (トーク | 投稿記録) (→Guix のアンインストール: add TranslationStatus.) |
||
(2人の利用者による、間の9版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category:パッケージ |
+ | [[Category:パッケージマネージャー]] |
[[en:Guix]] |
[[en:Guix]] |
||
− | {{Warning|Guix は Arch の[[pacman|公式パッケージマネージャ]]ではありません。まだ開発途上で |
+ | {{Warning|Guix は Arch の[[pacman|公式パッケージマネージャ]]ではありません。まだ開発途上です。一部のパッケージは、ビルドに失敗する可能性があります。}} |
− | + | [https://www.gnu.org/software/guix/ GNU Guix] はトランザクションを使用してユーザー環境を再現できるパッケージマネージャです。Guix をスタンドアロンで使って完全な GNU ディストリビューションとして使用することもできますが、Arch に Guix パッケージマネージャをインストールすることで伝統的な成熟した Unix ライク環境をベースとすることが可能です。 |
|
Guix で使えるパッケージコマンドについては [https://www.gnu.org/software/guix/manual Guix マニュアル] を読んでください。 |
Guix で使えるパッケージコマンドについては [https://www.gnu.org/software/guix/manual Guix マニュアル] を読んでください。 |
||
8行目: | 8行目: | ||
== インストール == |
== インストール == |
||
+ | Arch Linux では、Guix を AUR を使用してインストールするか、Guix マニュアルに記載されている手動の方法でインストールできます。 |
||
− | {{Note|{{ic|/bin/sh}} が Bash でない場合、ビルドのチェックに失敗します。デフォルトの Arch では問題ありません。}} |
||
+ | AUR を使用してインストールする利点は、pacman がパッケージと {{ic|/usr}} ファイルツリー内の追加ファイルを認識していることです。しかし、他の AUR パッケージとは異なり、パッケージのアンインストールは Guix のインストール全体を巻き戻すわけではありません。 |
||
+ | 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 は |
+ | 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 |
||
+ | # uncomment and type e.g. 10 for ''n'' below --> have ten users |
||
# for i in `seq -w 1 ''n''`; |
# for i in `seq -w 1 ''n''`; |
||
do |
do |
||
25行目: | 72行目: | ||
done |
done |
||
− | {{ic|guix-daemon.service}} を[[起動 |
+ | {{ic|guix-daemon.service}} を[[Systemd#ユニットを使う|起動して有効]]にします。 |
− | + | [https://ci.guix.gnu.org Guix Official Substitute Server] からバイナリパッケージ(「代替品」)をダウンロードして使用することを Guix に許可することもできます: |
|
− | # guix archive --authorize < /usr/share/guix/ |
+ | # guix archive --authorize < /usr/share/guix/ci.guix.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''}} を使用してビルドするには、以下を実行: |
||
46行目: | 93行目: | ||
== Guix のアンインストール == |
== Guix のアンインストール == |
||
− | {{ic|guix-daemon.service}} を無効化し |
+ | {{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 |
||
52行目: | 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時点における最新版
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
も削除すると良いでしょう。