我在NixOS 16.09上,我想使用當前僅在nixpkgs-unstable/nixos-unstable中的程序包。使用nix-shell從nixpkgs-unstable加載依賴關係
使用nix-channel --add
,我能夠將nixpkgs-unstable添加到我的(用戶)頻道,並使用它來安裝nix-env
的某些軟件包的最新版本。
不過,我知道,雖然nix-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
將使用系統範圍的NixOS 16.09通道,而不是用戶定義的nixpkgs不穩定通道。
現在,我使用此解決方法:
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
?它看起來也不漂亮。