10

私は NixOS 16.09 を使用していますが、現在 nixpkgs-unstable / nixos-unstable のみにあるパッケージを使用したいと考えています。

を使用しnix-channel --addて、nixpkgs-unstable を (ユーザー) チャネルに追加し、それを使用してnix-env.

ただし、私の場合、 whilenix-envはユーザー定義のチャネルnix-shellに依存するのではなく、NIX_PATH環境変数に依存することを理解しています。

$ echo $NIX_PATH 
nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels

したがって、これは問題を明確に示していnix-shellます。ユーザー定義の nixpkgs-unstable チャネルの代わりに、システム全体の NixOS 16.09 チャネルを使用しようとしています。

現在、次の回避策を使用しています。

nix-shell -I nixpkgs=~/.nix-defexpr/channels/nixpkgs

私にはあまりきれいに見えません。これを行うための推奨される方法は何ですか?

次のようなものを追加することですか:

export NIX_PATH="nixpkgs=~/.nix-defexpr/channels/nixpkgs:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels"

私の.profile?見た目もあまりきれいではありません。

4

2 に答える 2

8

と の長年にわたる混乱へnix-envようこそNIX_PATH。NIX_PATH を使用しないことが明示的に述べられているnix-envため、(私が思うに) を尊重しない唯一の Nix ツールになりますNIX_PATH

したがって、実際の問題はnix-envではなく、ここにありnix-shellます。これについては、Nix バグ トラッカーに一連の問題を投稿します。

現在、私はこの回避策を使用しています:

ご覧のとおり、これは回避策ではありません。使用する正確な Nixpkgs を常に指定することをお勧めします: ルート チャネル バージョン、チャネル バージョン、アップストリーム リモート チャネル バージョン、ローカル git チェックアウト、またはピン留めされた git バージョン。

于 2016-11-11T04:48:57.143 に答える