我在 NixOS 16.09 上,我想使用目前仅在 nixpkgs-unstable / nixos-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-unstable 通道。
现在,我正在使用这个解决方法:
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
?它看起来也不是很漂亮。