| nix-channel(1) | General Commands Manual | nix-channel(1) |
nix-channel - manage Nix channels
nix-channel {--add url [name] | --remove name | --list | --update [names…] | --list-generations | --rollback [generation] }
Channels are a mechanism for referencing remote Nix expressions and conveniently retrieving their latest version.
The moving parts of channels are: - The official channels listed at https://nixos.org/channels - The user-specific list of subscribed channels - The downloaded channel contents - The Nix expression search path, set with the -I option or the NIX_PATH environment variable
Note
The state of a subscribed channel is external to the Nix expressions relying on it. This may limit reproducibility.
Dependencies on other Nix expressions can be declared explicitly with: - fetchurl, fetchTarball, or fetchGit in Nix expressions - the -I option in command line invocations
This command has the following operations:
{{#include ./opt-common.md}}
{{#include ./env-common.md}}
nix-channel operates on the following files.
{{#include ./files/channels.md}}
Subscribe to the Nixpkgs channel and run hello from the GNU Hello package:
$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable $ nix-channel --list nixpkgs https://nixos.org/channels/nixpkgs $ nix-channel --update $ nix-shell -p hello --run hello hello
Revert channel updates using --rollback:
$ nix-instantiate --eval '<nixpkgs>' --attr lib.version "22.11pre296212.530a53dcbc9" $ nix-channel --rollback switching from generation 483 to 482 $ nix-instantiate --eval '<nixpkgs>' --attr lib.version "22.11pre281526.d0419badfad"
Remove a channel:
$ nix-channel --remove nixpkgs $ nix-channel --list