about summary refs log blame commit diff
path: root/doc/manual/command-ref/nix-channel.xml
blob: 63ecba8f3eb7e8b67e4ec17677f4d4f5ff23c707 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                               



                                                
 



                                               
                                                                                             

          








                                              
                                                                                                                                             

                                                                                        
                                                                                                                  







                                                                      



                                                                     




                                                
                                                                                                                    
 






                                                                      


                 
                                                                                      
 


                                                               




                                                    

                                                               


                 
                                                                                            

                                                                   





                                                                     






                 

                                                                     












                                                                      




                                                                                   
                                                              




                                    
           
<refentry 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-nix-channel">

<refmeta>
  <refentrytitle>nix-channel</refentrytitle>
  <manvolnum>1</manvolnum>
  <refmiscinfo class="source">Nix</refmiscinfo>
  <refmiscinfo class="version"><xi:include href="../version.txt" parse="text"/></refmiscinfo>
</refmeta>

<refnamediv>
  <refname>nix-channel</refname>
  <refpurpose>manage Nix channels</refpurpose>
</refnamediv>

<refsynopsisdiv>
  <cmdsynopsis>
    <command>nix-channel</command>
    <group choice='req'>
      <arg choice='plain'><option>--add</option> <replaceable>url</replaceable> <arg choice='opt'><replaceable>name</replaceable></arg></arg>
      <arg choice='plain'><option>--remove</option> <replaceable>url</replaceable></arg>
      <arg choice='plain'><option>--list</option></arg>
      <arg choice='plain'><option>--update</option> <arg rep='repeat'><replaceable>names</replaceable></arg></arg>
    </group>
  </cmdsynopsis>
</refsynopsisdiv>

<refsection><title>Description</title>

<para>A Nix channel is mechanism that allows you to automatically stay
up-to-date with a set of pre-built Nix expressions.  A Nix channel is
just a URL that points to a place containing a set of Nix expressions
and a <command>nix-push</command> manifest.  <phrase
condition="manual">See also <xref linkend="sec-channels"
/>.</phrase></para>

<para>This command has the following operations:

<variablelist>

  <varlistentry><term><option>--add</option> <replaceable>url</replaceable> [<replaceable>name</replaceable>]</term>

    <listitem><para>Adds a channel named
    <replaceable>name</replaceable> with URL
    <replaceable>url</replaceable> to the list of subscribed channels.
    If <replaceable>name</replaceable> is omitted, it defaults to the
    last component of <replaceable>url</replaceable>, with the
    suffixes <literal>-stable</literal> or
    <literal>-unstable</literal> removed.</para></listitem>

  </varlistentry>

  <varlistentry><term><option>--remove</option> <replaceable>name</replaceable></term>

    <listitem><para>Removes the channel named
    <replaceable>name</replaceable> from the list of subscribed
    channels.</para></listitem>

  </varlistentry>

  <varlistentry><term><option>--list</option></term>

    <listitem><para>Prints the names and URLs of all subscribed
    channels on standard output.</para></listitem>

  </varlistentry>

  <varlistentry><term><option>--update</option> [<replaceable>names</replaceable>…]</term>

    <listitem><para>Downloads the Nix expressions of all subscribed
    channels (or only those included in
    <replaceable>names</replaceable> if specified), makes them the
    default for <command>nix-env</command> operations (by symlinking
    them from the directory <filename>~/.nix-defexpr</filename>), and
    performs a <command>nix-pull</command> on the manifests of all
    channels to make pre-built binaries available.</para></listitem>

  </varlistentry>

</variablelist>

</para>

<para>Note that <option>--add</option> does not automatically perform
an update.</para>

<para>The list of subscribed channels is stored in
<filename>~/.nix-channels</filename>.</para>

<para>A channel consists of two elements: a bzipped Tar archive
containing the Nix expressions, and a manifest created by
<command>nix-push</command>.  These must be stored under
<literal><replaceable>url</replaceable>/nixexprs.tar.bz2</literal> and
<literal><replaceable>url</replaceable>/MANIFEST</literal>,
respectively.</para>

</refsection>

<refsection><title>Examples</title>

<para>To subscribe to the Nixpkgs channel and install the GNU Hello package:</para>

<screen>
$ nix-channel --add http://nixos.org/channels/nixpkgs-unstable
$ nix-channel --update
$ nix-env -iA nixpkgs.hello</screen>

</refsection>

</refentry>