Newer
Older
<refentry>
<refnamediv>
<refname>nix-env</refname>
<refpurpose>manipulate or query Nix user environments</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>nix-env</command>
<group choice='req'>
<arg choice='plain'><option>--file</option></arg>
<arg choice='plain'><option>-f</option></arg>
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
</group>
<replaceable>path</replaceable>
</arg>
<arg choice='plain'><replaceable>operation</replaceable></arg>
<arg rep='repeat'><replaceable>options</replaceable></arg>
<arg rep='repeat'><replaceable>arguments</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection>
<title>Description</title>
<para>
The command <command>nix-env</command> is used to manipulate Nix
user environments. User environments are sets of software
components available to a user at some point in time. In other
words, they are a synthesised view of the programs available in
the Nix store. There may be many user environments: different
users can have different environments, and individual users can
switch between different environments.
</para>
<!-- <para>
Environments are manipulated by operations such as the
installation and removal of components (hereafter called
<emphasis>derivations</emphasis>). These operations are not
destructive: rather than overwrite the current environment, they
create a new environment to which we can then atomically
<emphasis>switch</emphasis> by flipping a symlink.
</para> -->
<para>
<command>nix-env</command> takes exactly one
<emphasis>operation</emphasis> flag which indicates the
subcommand to be performed. These are documented below.
</para>
</refsection>
<!--######################################################################-->
<refsection>
<title>Common options</title>
<para>
This section lists the options that are common to all
operations. These options are allowed for every subcommand,
though they may not always have an effect.
</para>
<variablelist>
<term><option>--file</option> / <option>-f</option></term>
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
109
110
111
112
113
<listitem>
<para>
Specifies the Nix expression used by the
<option>--install</option>, <option>--upgrade</option>,
and <option>--query --available</option> operations to
obtain derivations. The default is
<filename>~/.nix-defexpr</filename>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<!--######################################################################-->
<refsection>
<title>Files</title>
<variablelist>
<varlistentry>
<term><filename>~/.nix-defexpr</filename></term>
<listitem>
<para>
The default Nix expression used by the
<option>--install</option>, <option>--upgrade</option>,
and <option>--query --available</option> operations to
obtain derivations. It is generally a symbolic link to
some other location set using the
<option>--import</option> operation. The
<option>--file</option> option may be used to override
this default.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>~/.nix-profile</filename></term>
A symbolic link to the user's current profile. The
default profile is
<filename><replaceable>prefix</replaceable>/var/nix/profiles/default</filename>.
The <envar>PATH</envar> environment variable should
include <filename>~/.nix-profile/bin</filename> for the user
environment to be visible to the user.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<!--######################################################################-->
<refsection>
<title>Operation <option>--install</option></title>
<refsection>
<title>Synopsis</title>
<cmdsynopsis>
<command>nix-env</command>
<group choice='req'>
<arg choice='plain'><option>--install</option></arg>
<arg choice='plain'><option>-i</option></arg>