aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/src/package-management/channels.md
blob: c239998d991242e429da4e7f1773a90b53caefd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Channels

If you want to stay up to date with a set of packages, it’s not very
convenient to manually download the latest set of Nix expressions for
those packages and upgrade using `nix-env`. Fortunately, there’s a
better way: *Nix channels*.

A Nix channel is just a URL that points to a place that contains a set
of Nix expressions and a manifest. Using the command
[`nix-channel`](../command-ref/nix-channel.md) you can automatically
stay up to date with whatever is available at that URL.

To see the list of official NixOS channels, visit
<https://nixos.org/channels>.

You can “subscribe” to a channel using `nix-channel --add`, e.g.,

    $ nix-channel --add https://nixos.org/channels/nixpkgs-unstable

subscribes you to a channel that always contains that latest version of
the Nix Packages collection. (Subscribing really just means that the URL
is added to the file `~/.nix-channels`, where it is read by subsequent
calls to `nix-channel
--update`.) You can “unsubscribe” using `nix-channel
--remove`:

    $ nix-channel --remove nixpkgs

To obtain the latest Nix expressions available in a channel, do

    $ nix-channel --update

This downloads and unpacks the Nix expressions in every channel
(downloaded from `url/nixexprs.tar.bz2`). It also makes the union of
each channel’s Nix expressions available by default to `nix-env`
operations (via the symlink `~/.nix-defexpr/channels`). Consequently,
you can then say

    $ nix-env -u

to upgrade all packages in your profile to the latest versions available
in the subscribed channels.