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 но я думаю, что первое решение является более четким.