about summary refs log tree commit diff
path: root/doc/manual/quick-start/getting-started.xml
blob: 3dc79b9b52d5322b1cd008019d84d736f17ac82e (plain) (blame)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<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="ch-getting-started-nix"> 

<title>Getting Started with Nix</title>

<para>This tutorial takes you through the basic tasks you might perform when you start using Nix.</para>
<procedure>

<step><para>Install single-user Nix by running the following:

<screen>
$ curl https://nixos.org/nix/install | sh
</screen>

This will install Nix in <filename>/nix</filename>. The install script
will create <filename>/nix</filename> using <command>sudo</command>,
so make sure you have sufficient rights.  (For other installation
methods, see <xref linkend="chap-installation"/>.)</para></step>

<step><para>See what installable packages are currently available
in the channel:

<screen>
$ nix-env -qa
docbook-xml-4.2
firefox-1.0pre-PR-0.10.1
hello-2.1.1
libxslt-1.1.0
<replaceable>...</replaceable></screen>

</para></step>

<step><para>Install some packages from the channel:

<screen>
$ nix-env -i hello <replaceable>...</replaceable> </screen>

This should download pre-built packages; it should not build them
locally (if it does, something went wrong).</para></step>

<step><para>Test that they work:

<screen>
$ which hello
/home/eelco/.nix-profile/bin/hello
$ hello
Hello, world!
</screen>

</para></step>

<step><para>Uninstall a package:

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

</para></step>

<step><para>To keep up-to-date with the channel, do:

<screen>
$ nix-channel --update nixpkgs
$ nix-env -u '*'</screen>

The latter command will upgrade each installed package for which there
is a “newer” version (as determined by comparing the version
numbers).</para></step>

<step><para>You can also install specific packages directly from
your web browser.  For instance, you can go to <link
xlink:href="http://hydra.nixos.org/jobset/nixpkgs/trunk/channel/latest"
/> and click on any link for the individual packages for your
platform.  Associate <literal>application/nix-package</literal> with
the program <command>nix-install-package</command>.  A window should
appear asking you whether it’s okay to install the package.  Say
<literal>Y</literal>.  The package and all its dependencies will be
installed.</para></step>

<step><para>If you're unhappy with the result of a
<command>nix-env</command> action (e.g., an upgraded package turned
out not to work properly), you can go back:

<screen>
$ nix-env --rollback</screen>

</para></step>

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

<screen>
$ nix-collect-garbage -d</screen>

<!--
The first command deletes old “generations” of your profile (making
rollbacks impossible, but also making the packages in those old
generations available for garbage collection), while the second
command actually deletes them.-->

</para></step>

</procedure>

</chapter>