How do I make sure that all packages I install on my system nixos installation (i.e. packages listed in /etc/nixos/configuration.nix, which I install using sudo nixos-rebuild switch) are using the latest (unstable) version of nixos/nixpkgs?
Mainly because Nix is intended to be lightweight, easy to learn and portable (zero dependencies).
The official channels New stable channels are released every six months. Unstable channels ( nixos-unstable , nixpkgs-unstable ) correspond to the main development branch (master) of Nixpkgs, delivering the latest tested updates on a rolling basis.
As explained in the manual's section on upgrading, if you issue the following command as root:
nix-channel --list you will most likely see something like the following (if you were following the 16.09 branch for instance):
nixos https://nixos.org/channels/nixos-16.09 By issuing the following command (still as root):
nix-channel --add https://nixos.org/channels/nixos-unstable nixos you will remove the 16.09 channel and replace it with nixos-unstable.
Now this is not enough yet. To really update your system, you need one last command:
nixos-rebuild switch --upgrade which is going to rebuild your system with your current configuration and updated packages from the channel you switched to.
Run the following commands:
sudo nix-channel --add https://nixos.org/channels/nixos-unstable sudo nix-channel --add https://nixos.org/channels/nixpkgs-unstable Note that the sudo is required: if you don't use sudo, it will only affect user-level packages (i.e. things you install using nix-env -i), not system-level packages.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With