我在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
?它看起来也不漂亮。