<chapter>
  <title>Quick Start</title>

  <para>
    This chapter is for impatient people who don't like reading
    documentation.  For more in-depth information you are kindly
    referred to <xref linkend='chap-installation' /> and <xref
    linkend='chap-overview' />.
  </para>

  <orderedlist>

    <listitem>
      <para>
        Download a source tarball or RPM from <ulink
        url='http://www.cs.uu.nl/groups/ST/Trace/Nix'/>.
        Build source distributions using the regular sequence:
        
        <screen>
$ tar xvfj nix-<replaceable>version</replaceable>.tar.bz2
$ ./configure
$ make
$ make install <lineannotation>(as root)</lineannotation></screen>

        This will install Nix in <filename>/nix</filename>.  You
        should also add <filename>/nix/etc/profile.d/nix.sh</filename>
        to your <filename>~/.bashrc</filename> (or some other login
        file).
      </para>
    </listitem>

    <listitem>
      <para>
        Get some Nix expressions for pre-built packages by downloading
        the latest <literal>nixpkgs</literal> distribution (from the
        same location), and unpack them.

        <screen>
$ wget http://<replaceable>...</replaceable>/nix/nixpkgs-<replaceable>version</replaceable>/nixpkgs-<replaceable>version</replaceable>.tar.bz2
$ tar xfj nixpkgs-<replaceable>version</replaceable>.tar.bz2</screen>

        This will unpack the distribution into a directory
        <filename>nixpkgs-<replaceable>version</replaceable>/</filename>.
      </para>
    </listitem>

    <listitem>
      <para>
        Pull the Nix cache.  This ensures that when you install
        packages they are downloaded in pre-built form from the
        network, rather than built from source.

        <screen>
$ nix-pull http://<replaceable>...</replaceable>/nix/nixpkgs-<replaceable>version</replaceable>/MANIFEST</screen>

      </para>

      <para>
        Note that currently we only pre-build for Linux on x86
        platforms.
      </para>
        
    </listitem>
        
    <listitem>
      <para>
        See what's available:

        <screen>
$ nix-env -qaf nixpkgs-<replaceable>version</replaceable>/
MozillaFirebird-0.7
hello-2.1.1
docbook-xml-4.2
libxslt-1.1.0
<replaceable>...</replaceable></screen>

      </para>
    </listitem>

    <listitem>
      <para>
        Install some packages:
        
        <screen>
$ nix-env -iBf nixpkgs-<replaceable>version</replaceable>/ hello MozillaFirebird <replaceable>...</replaceable> </screen>

      </para>
    </listitem>

    <listitem>
      <para>
        Test that they work:

        <screen>
$ which hello
/home/eelco/.nix-profile/bin/hello
$ hello
Hello, world!
$ MozillaFirebird
<lineannotation>(read Slashdot or something)</lineannotation></screen>

      </para>
    </listitem>
    
    <listitem>
      <para>
        Uninstall a package:

        <screen>
$ nix-env -e hello</screen>

      </para>
    </listitem>

    <listitem>
      <para>
        If a new release of <literal>nixpkgs</literal> comes along,
        you can upgrade all installed packages to the latest versions
        by downloading and unpacking the new release and doing:

        <screen>
$ nix-env -uBf nixpkgs-<replaceable>version</replaceable>/ '*'</screen>

      </para>
    </listitem>

    <listitem>
      <para>
        You should periodically run the Nix garbage collector to get
        rid of unused packages, since uninstalls or upgrades don't
        actual delete them:

        <screen>
$ nix-collect-garbage | xargs nix-store --delete</screen>

      </para>
    </listitem>

  </orderedlist>

</chapter>