Я использую 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
? Выглядит это тоже не очень красиво.