git-subtree-dir: third_party/nix
git-subtree-mainline: cf8cd640c1
git-subtree-split: be66c7a6b24e3c3c6157fd37b86c7203d14acf10
		
	
			
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<chapter xmlns="http://docbook.org/ns/docbook"
 | 
						||
      xmlns:xlink="http://www.w3.org/1999/xlink"
 | 
						||
      xmlns:xi="http://www.w3.org/2001/XInclude"
 | 
						||
      version="5.0"
 | 
						||
      xml:id="sec-channels">
 | 
						||
 | 
						||
<title>Channels</title>
 | 
						||
 | 
						||
<para>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 <command>nix-env</command>.
 | 
						||
Fortunately, there’s a better way: <emphasis>Nix
 | 
						||
channels</emphasis>.</para>
 | 
						||
 | 
						||
<para>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 <link
 | 
						||
linkend="sec-nix-channel"><command>nix-channel</command></link> you
 | 
						||
can automatically stay up to date with whatever is available at that
 | 
						||
URL.</para>
 | 
						||
 | 
						||
<para>You can “subscribe” to a channel using
 | 
						||
<command>nix-channel --add</command>, e.g.,
 | 
						||
 | 
						||
<screen>
 | 
						||
$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable</screen>
 | 
						||
 | 
						||
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 <filename>~/.nix-channels</filename>,
 | 
						||
where it is read by subsequent calls to <command>nix-channel
 | 
						||
--update</command>.) You can “unsubscribe” using <command>nix-channel
 | 
						||
--remove</command>:
 | 
						||
 | 
						||
<screen>
 | 
						||
$ nix-channel --remove nixpkgs
 | 
						||
</screen>
 | 
						||
</para>
 | 
						||
 | 
						||
<para>To obtain the latest Nix expressions available in a channel, do
 | 
						||
 | 
						||
<screen>
 | 
						||
$ nix-channel --update</screen>
 | 
						||
 | 
						||
This downloads and unpacks the Nix expressions in every channel
 | 
						||
(downloaded from <literal><replaceable>url</replaceable>/nixexprs.tar.bz2</literal>).
 | 
						||
It also makes the union of each channel’s Nix expressions available by
 | 
						||
default to <command>nix-env</command> operations (via the symlink
 | 
						||
<filename>~/.nix-defexpr/channels</filename>).  Consequently, you can
 | 
						||
then say
 | 
						||
 | 
						||
<screen>
 | 
						||
$ nix-env -u</screen>
 | 
						||
 | 
						||
to upgrade all packages in your profile to the latest versions
 | 
						||
available in the subscribed channels.</para>
 | 
						||
 | 
						||
</chapter>
 |