Arch Linuxの上にGUIXをインストールしたところですが、いくつかの概念を理解するのはまだ困難です。 profileは/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を実行した結果は、最新のGuixを含む
~/.config/guix/current
で利用可能なプロファイルです。 ( "guix pull
"の呼び出し )
これら2つのプロファイルの違いは何ですか?なぜこれら2つが必要なのですか?ログイン時に両方を調達する必要がありますか?
これら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
のパッケージとguix
が使用するroot
自体のバージョンは使用されません。インストーラスクリプト はシンボリックリンクを作成します/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
を呼び出すと、更新されたパッケージバージョンを自動的に取得することを意味します。