2016-04-06 15 views
5

Come impostare il canale predefinito in NixOS /etc/configuration.nix?NixOS: impostazione del canale predefinito in configuration.nix

C'è un comando per impostarlo e ricostruire con

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 

ma mi piacerebbe averlo configurato in configuration.nix così non devo ricordare come fare questo ogni volta. Grazie!

risposta

2

L'opzione nix.nixPath (ref) sembra che farà ciò che stai cercando.

Anche il canale instabile per nixos potrebbe essere più appropriato per voi, piuttosto che instabile per nixpkgs. Credo che il pkgs nel canale nixpkgs sia testato e costruito per sistemi non-nixOS, anche se al momento non riesco a ricordare un riferimento.

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 
nix.nixPath = pkgs.lib.mkBefore [ "nix/var/nix/profiles/per-user/root/channels/nixos-unstable" ]; 

Se si desidera che i comandi imperativi nix canali nella configuration.nix così si potrebbe scrivere un piccolo servizio systemd a farlo, come mostrato here.

PS Mi sono reso conto che si potrebbe anche solo indirizzare il percorso nixos al canale instabile nixos facendo nix-channel --add https://nixos.org/channels/nixos-unstable/ nixos ma penso che la prima soluzione sia più chiara.

+0

Grazie per i suggerimenti. Sembra che possa sostituire il comando 'nixos-rebuild', tuttavia come posso aggiungere il canale unstable stesso in' configuration.nix'? –

+0

Aggiunti i comandi richiesti alla mia risposta iniziale. – brocking

3

Set nixPath = [ "nixpkgs=http://nixos.org/channels/nixos-unstable/nixexprs.tar.xz" ];, vedere https://github.com/snabblab/snabblab-nixos/blob/master/modules/common.nix#L37

+1

Ho provato questo, ma non sembra funzionare in modo simile come usando 'nix-channel', se ho capito correttamente cosa stava succedendo. Per prima cosa, quando si esegue 'nixos-rebuild switch', ha aggiornato nixpkgs scaricando il file tar.xz. Secondo, quasi (?) Ogni volta che nixpkgs era necessario, è stato scaricato. Come posso avere funzionalità come quando si imposta con 'nix-channel'? Ovvero, l'aggiornamento di nixpkgs solo quando richiesto esplicitamente. Ancora, il canale potrebbe essere impostato in configuration.nix. Ha senso ciò? –

2

system.autoUpgrade.channel è quello che si potrebbe essere alla ricerca di

insieme a qualsiasi canale di esempio

system.autoUpgrade.channel = "https://nixos.org/channels/nixos-16.03-small/";

la documentazione dice:

per impostazione predefinita, questo è il canale impostato utilizzando nix canali (correre nix-channel --list a vedere il valore corrente)

un l'elenco aggiornato dei canali può essere trovato su https://nixos.org/channels/

rif: https://nixos.org/nixos/manual/options.html#opt-system.autoUpgrade.channel https://nixos.org/nixos/manual/index.html#idm140737317454064

+0

Grazie, sembra promettente. Sfortunatamente la mia sperimentazione con NixOS è terminata, quindi non posso verificarlo. Se qualcuno può verificare, selezionerò questa come risposta. –

Problemi correlati