NixOS: Настройка канала по умолчанию в конфигурации.шухер
Как установить канал по умолчанию в NixOS /etc/configuration.nix
?
есть команда, чтобы установить его и перестроить с
sudo nix-channel --add https://nixos.org/channels/nixpkgs-unstable
sudo nixos-rebuild switch -I nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixpkgs
но я хотел бы настроить его в конфигурации.Никс, поэтому мне не нужно помнить, как это делать каждый раз. Спасибо!
3 ответов
system.autoUpgrade.channel
то, что вы могли бы искать
установить его на любой канал, например
system.autoUpgrade.channel = "https://nixos.org/channels/nixos-16.03-small/";
в документации сказано, что:
по умолчанию это набор каналов с использованием шухер-канал (запуск
nix-channel --list
чтобы увидеть текущее значение)
список до даты каналы можно найти на https://nixos.org/channels/
ref: https://nixos.org/nixos/manual/options.html#opt-system.autoUpgrade.channel https://nixos.org/nixos/manual/index.html#idm140737317454064
Set nixPath = [ "nixpkgs=http://nixos.org/channels/nixos-unstable/nixexprs.tar.xz" ];
см. https://github.com/snabblab/snabblab-nixos/blob/master/modules/common.nix#L37
The nix.nixPath
(ref опции) похоже, он будет делать то, что вы после.
также канал NixOS-unstable может быть более подходящим для вас, а не nixpkgs-unstable. Я считаю, что ПКГ в канале nixpkgs протестированы и построены для систем, отличных от nixOS, хотя я не могу вспомнить ссылку на это в данный момент.
nix-channel --add https://nixos.org/channels/nixos-unstable/
nix-channel --update nixos-unstable
# /etc/nixos/configuration.nix
# Put nixos-unstable at the front of nixPath
{ lib, ... }:
{
nix.nixPath = lib.mkDefault (lib.mkBefore [ "nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos-unstable" ]);
}
если вы хотите императивные команды nix-канала в вашей конфигурации.nix, как вы могли бы напишите небольшую службу systemd, чтобы сделать это, как показано здесь.
Edit: для обеспечения configuration.nix
построен из последних unstable
канал просто установить значение nixpkgs
как в ответе от @iElectric и Nix будет использовать выражения, содержащиеся в этом URL, когда он оценивает configuration.nix
.
PS я понял, что вы также можете просто указать путь nixos к каналу NixOS-unstable, выполнив nix-channel --add https://nixos.org/channels/nixos-unstable/ nixos
но я думаю, что первое решение является более четким.