私はArch LinuxにGUIXをインストールしましたが、まだいくつかの概念を理解するのに苦労しています。わかりました、一つ輪郭パッケージはで選択されており、/gnu/store
パッケージをインポートして有効にすることができます<profile-dir>/etc/profile
。しかし、私のホームディレクトリにシンボリックリンクとして保存されている2つの「デフォルト」設定ファイルがあるような理由はわかりません。
~/.guix-profile -> /var/guix/profiles/per-user/user/guix-profile
~/.config/guix/current -> /var/guix/profiles/per-user/user/current-guix
いくつかの情報が見つかりましたが、十分ではありません。
.guix-profile
必要な役割を割り当てることができます。通常、常に使用したいパッケージのマニフェストをインストールします。
または、数日間のみ使用するワンタイムパッケージの場合は、「マニフェストなし」として残すこともできます。これにより簡単に実行でき
guix install package-foo
ますguix upgrade package-bar
(GUIXレシピから)
.config/guix/current
:
guix pull実行結果は、
~/.config/guix/current
最新のGuixを含む利用可能な設定ファイルです。 (「移動するguix pull
」)
これら2つの設定ファイルの違いは何ですか?これらの2つがなぜ必要ですか?ログイン時に両方を受け取る必要がありますか?
ベストアンサー1
このプロファイルはデフォルトです。
これら2つのプロファイルを「一般」GUIXプロファイルと区別する唯一のことは、そのプロファイルがそのGUIXコマンドのデフォルトオプションであることです(参照:ここ2つのことがどう違うかを見てください):
~/.guix-profile
guix package
オプションのデフォルトオプションです-p|--profile=
~/.config/guix/current
guix pull
オプションのデフォルトオプションです-p|--profile=
以前に存在しなかった場合は、同伴コマンドが最初に呼び出されたときに生成されます。
ただし、カスタムプロファイルを優先して常に使用している場合は、これら2つのプロファイルなしで操作を実行できます(下記参照)。
彼らの仕事は異なります。guix
バージョン自体を提供することと、バージョンで管理される他のプログラムを提供することです。guix
この設定ファイルは
~/.config/guix/current
バイナリを提供し、guix
デフォルトguix-daemon
設定では、この設定ファイルはインストールできるすべてのパッケージの最新バージョンを決定します。インストールできるパッケージのリストは、Nixではなくguixのバージョンに関連しています。このブログ記事では、その理由について説明します。- ユーザーに
root
提供されるバイナリ(シンボリックリンクのターゲット)は、/root/.config/guix/current/bin/guix-daemon
システムによって自動的に起動されるGUIXデーモンです。また、シンボリックリンクもあります/usr/local/bin
。
- ユーザーに
この構成ファイルには、
~/.guix-profile
含めるすべてのパッケージが含まれています。多くのユーザーは、シェルの起動ファイルに含めて、自動的に利用可能な他のジョブ固有のプロファイルの一部ではなく、共通プログラムを持っています。
これらのプロファイルはシェル実行可能ファイルを介してのみワークフローに統合され、有効かどうかはユーザーによって決定されます。
.profile
あなたに関連するプロファイルは、.bash_profile
あなた(またはあなたが使用するシェル初期化ファイル)によってのみ決定されます。
何も指定しないと、パッケージ自体が使用するバージョンとともにパッケージは使用されませんguix
。guix
root
GUIXシェルインストーラスクリプトシンボリックリンクの生成/usr/local/bin/guix -> /var/guix/profiles/per-user/root/guix
.profile
あなたの(または同様の)1に含まれる場合
GUIX_PROFILE=$HOME/.config/guix/current;
source "$GUIX_PROFILE/etc/profile"
独自のGUIXバージョンとパッケージバージョンを使用できます。
含める場合
GUIX_PROFILE="$HOME/.guix-profile";
source "$GUIX_PROFILE/etc/profile"
設定ファイルをロードすると、パラメータ-p
を使用せずにその設定ファイルを定義/変更できますguix package
。もちろん、ここから他の設定ファイルをロードすることもできます。変更する-p
には、対応するパラメータを使用できます。多くの人が頻繁に必要ですが、ジョブ固有のワークフローに割り当てられていないコマンドを含めるには、この構成ファイルを使用します。
1ソーシングする前に変数を定義する理由がわからない場合は、ソーススクリプトをお読みください。$PATH
プロファイルフォルダ自体ではなく、プロファイルへのリンクを追加します。つまりguix package -u
、構成ファイルを再インポートせずに呼び出すと、自動的に更新されたパッケージバージョンがインポートされます。