57 lines
		
	
	
		
			No EOL
		
	
	
		
			2.2 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			No EOL
		
	
	
		
			2.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, use <command>nix-pull</command> to register
 | ||
| pre-built binaries (if available), 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 http://nixos.org/channels/nixpkgs-unstable</screen>
 | ||
| 
 | ||
| subscribes you to a channel that always contains that latest version
 | ||
| of the Nix Packages collection.  (Instead of
 | ||
| <literal>nixpkgs-unstable</literal> you could also subscribe to
 | ||
| <literal>nixpkgs-stable</literal>, which should have a higher level of
 | ||
| stability, but right now is just outdated.)  Subscribing really just
 | ||
| means that the URL is added to the file
 | ||
| <filename>~/.nix-channels</filename>.  Right now there is no command
 | ||
| to “unsubscribe”; you should just edit that file manually
 | ||
| and delete the offending URL.</para>
 | ||
| 
 | ||
| <para>To obtain the latest Nix expressions available in a channel, do
 | ||
| 
 | ||
| <screen>
 | ||
| $ nix-channel --update</screen>
 | ||
| 
 | ||
| This downloads the Nix expressions in every channel (downloaded from
 | ||
| <literal><replaceable>url</replaceable>/nixexprs.tar.bz2</literal>)
 | ||
| and registers any available pre-built binaries in every channel
 | ||
| (by <command>nix-pull</command>ing
 | ||
| <literal><replaceable>url</replaceable>/MANIFEST</literal>).  It also
 | ||
| makes the union of each channel’s Nix expressions the default for
 | ||
| <command>nix-env</command> operations.  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> |