2004-01-08 18:56:40 +02:00
|
|
|
<refentry>
|
|
|
|
<refnamediv>
|
|
|
|
<refname>nix-env</refname>
|
|
|
|
<refpurpose>manipulate or query Nix user environments</refpurpose>
|
|
|
|
</refnamediv>
|
|
|
|
|
|
|
|
<refsynopsisdiv>
|
|
|
|
<cmdsynopsis>
|
|
|
|
<command>nix-env</command>
|
2004-02-02 12:51:54 +02:00
|
|
|
&opt-common-syn;
|
2004-01-08 18:56:40 +02:00
|
|
|
<arg>
|
2004-01-09 16:18:28 +02:00
|
|
|
<group choice='req'>
|
|
|
|
<arg choice='plain'><option>--file</option></arg>
|
|
|
|
<arg choice='plain'><option>-f</option></arg>
|
2004-01-08 18:56:40 +02:00
|
|
|
</group>
|
|
|
|
<replaceable>path</replaceable>
|
|
|
|
</arg>
|
2004-02-10 13:51:16 +02:00
|
|
|
<arg>
|
|
|
|
<group choice='req'>
|
|
|
|
<arg choice='plain'><option>--profile</option></arg>
|
|
|
|
<arg choice='plain'><option>-p</option></arg>
|
|
|
|
</group>
|
|
|
|
<replaceable>path</replaceable>
|
|
|
|
</arg>
|
2004-11-13 01:56:37 +02:00
|
|
|
<arg><option>--preserve-installed</option></arg>
|
|
|
|
<arg>
|
|
|
|
<arg choice='plain'><option>--system-filter</option></arg>
|
|
|
|
<replaceable>system</replaceable>
|
|
|
|
</arg>
|
2004-02-10 13:51:16 +02:00
|
|
|
<arg><option>--dry-run</option></arg>
|
2004-01-08 18:56:40 +02:00
|
|
|
<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>
|
|
|
|
|
2004-02-02 12:51:54 +02:00
|
|
|
&opt-common;
|
2004-01-08 18:56:40 +02:00
|
|
|
|
|
|
|
<varlistentry>
|
2004-01-09 16:18:28 +02:00
|
|
|
<term><option>--file</option> / <option>-f</option></term>
|
2004-01-08 18:56:40 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2004-02-10 13:51:16 +02:00
|
|
|
Specifies the Nix expression (designated below as the
|
|
|
|
<emphasis>active Nix expression</emphasis>) used by the
|
2004-01-08 18:56:40 +02:00
|
|
|
<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>
|
|
|
|
|
2004-02-10 13:51:16 +02:00
|
|
|
<varlistentry>
|
|
|
|
<term><option>--profile</option> / <option>-p</option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Specifies the profile to be used by those operations that
|
|
|
|
operate on a profile (designated below as the
|
|
|
|
<emphasis>active profile</emphasis>). A profile is
|
|
|
|
sequence of user environments called
|
|
|
|
<emphasis>generations</emphasis>, one of which is the
|
|
|
|
<emphasis>current generation</emphasis>. The default
|
|
|
|
profile is the target of the symbolic link
|
|
|
|
<filename>~/.nix-profile</filename> (see below).
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--dry-run</option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
For the <option>--install</option>,
|
2004-02-10 18:14:47 +02:00
|
|
|
<option>--upgrade</option>, <option>--uninstall</option>,
|
|
|
|
<option>--switch-generation</option> and
|
|
|
|
<option>--rollback</option> operations, this flag will
|
2004-02-10 13:51:16 +02:00
|
|
|
cause <command>nix-env</command> to print what
|
|
|
|
<emphasis>would</emphasis> be done if this flag had not
|
|
|
|
been specified, without actually doing it.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2004-11-13 01:56:37 +02:00
|
|
|
<varlistentry>
|
|
|
|
<term><option>--preserve-installed</option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
By default, when you install a derivation with the
|
|
|
|
<option>--install</option> operation, it will replace
|
|
|
|
previously installed versions with the same derivation
|
|
|
|
name (regardless of the version number). This option
|
|
|
|
causes those previously installed versions to be kept in
|
|
|
|
the new generation of the profile. Note that this will
|
|
|
|
generally cause conflicts in the creation of the user
|
|
|
|
environment (since multiple versions of a package
|
|
|
|
typically contain the same programs).
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--system-filter</option> <replaceable>system</replaceable></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
By default, operations such as <option>--query
|
|
|
|
--available</option> only include derivations matching the
|
|
|
|
current platform. This option allows you to use
|
|
|
|
derivations for the specified platform
|
|
|
|
<replaceable>system</replaceable>. The special value
|
|
|
|
<literal>*</literal> causes derivations for any platform
|
|
|
|
to be included.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2004-01-08 18:56:40 +02:00
|
|
|
</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>
|
2004-02-06 12:30:20 +02:00
|
|
|
<term><filename>~/.nix-profile</filename></term>
|
2004-01-08 18:56:40 +02:00
|
|
|
<listitem>
|
|
|
|
<para>
|
2004-02-10 13:51:16 +02:00
|
|
|
A symbolic link to the user's current profile. By
|
|
|
|
default, this symlink points to
|
2004-02-06 12:30:20 +02:00
|
|
|
<filename><replaceable>prefix</replaceable>/var/nix/profiles/default</filename>.
|
2004-01-08 18:56:40 +02:00
|
|
|
The <envar>PATH</envar> environment variable should
|
2004-02-10 13:51:16 +02:00
|
|
|
include <filename>~/.nix-profile/bin</filename> for the
|
|
|
|
user environment to be visible to the user.
|
2004-01-08 18:56:40 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--######################################################################-->
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Operation <option>--install</option></title>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Synopsis</title>
|
|
|
|
<cmdsynopsis>
|
|
|
|
<command>nix-env</command>
|
2004-01-09 16:18:28 +02:00
|
|
|
<group choice='req'>
|
|
|
|
<arg choice='plain'><option>--install</option></arg>
|
|
|
|
<arg choice='plain'><option>-i</option></arg>
|
2004-01-08 18:56:40 +02:00
|
|
|
</group>
|
2004-06-28 17:40:26 +03:00
|
|
|
<group choice='opt'>
|
|
|
|
<arg choice='plain'><option>--preserve-installed</option></arg>
|
|
|
|
<arg choice='plain'><option>-P</option></arg>
|
|
|
|
</group>
|
2004-02-10 13:51:16 +02:00
|
|
|
<arg choice='plain' rep='repeat'><replaceable>drvnames</replaceable></arg>
|
|
|
|
</cmdsynopsis>
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The install operation creates a new user environment, based on
|
|
|
|
the current generation of the active profile, to which the
|
|
|
|
derivations designated by <replaceable>drvnames</replaceable>
|
|
|
|
in the active Nix expression are added.
|
|
|
|
</para>
|
|
|
|
|
2004-06-28 17:40:26 +03:00
|
|
|
<para>
|
|
|
|
Currently installed derivations with a name equal to the name
|
|
|
|
of a derivation being added are removed unless the option
|
|
|
|
<option>--preserve-installed</option> is specified.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Flags</title>
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--preserve-installed</option> / <option>-P</option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Do not remove derivations with a name matching one of
|
|
|
|
the derivations being installed. Usually, trying to
|
|
|
|
have two versions of the same package installed in the
|
|
|
|
same generation of a profile will lead to an error in
|
|
|
|
building the generation, due to file name clashes
|
|
|
|
between the two versions. However, this is not the case
|
|
|
|
for all packages.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
</variablelist>
|
2004-02-10 13:51:16 +02:00
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Examples</title>
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
$ nix-env --install gcc-3.3.2 <lineannotation>(install specific version)</lineannotation>
|
2004-06-28 17:40:26 +03:00
|
|
|
installing `gcc-3.3.2'
|
|
|
|
uninstalling `gcc-3.1' <lineannotation>(previously installed version is removed)</lineannotation>
|
|
|
|
|
2004-02-10 13:51:16 +02:00
|
|
|
$ nix-env --install gcc <lineannotation>(just pick any version)</lineannotation>
|
2004-06-28 17:40:26 +03:00
|
|
|
|
2004-02-10 13:51:16 +02:00
|
|
|
$ nix-env -f ~/foo.nix -i '*' <lineannotation>(install everything in <filename>foo.nix</filename>)</lineannotation></screen>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--######################################################################-->
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Operation <option>--upgrade</option></title>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Synopsis</title>
|
|
|
|
<cmdsynopsis>
|
|
|
|
<command>nix-env</command>
|
|
|
|
<group choice='req'>
|
|
|
|
<arg choice='plain'><option>--upgrade</option></arg>
|
|
|
|
<arg choice='plain'><option>-u</option></arg>
|
|
|
|
</group>
|
|
|
|
<group choice='opt'>
|
|
|
|
<arg choice='plain'><option>--lt</option></arg>
|
|
|
|
<arg choice='plain'><option>--leq</option></arg>
|
|
|
|
<arg choice='plain'><option>--always</option></arg>
|
|
|
|
</group>
|
|
|
|
<arg choice='plain' rep='repeat'><replaceable>drvnames</replaceable></arg>
|
2004-01-08 18:56:40 +02:00
|
|
|
</cmdsynopsis>
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para>
|
2004-02-10 13:51:16 +02:00
|
|
|
The upgrade operation creates a new user environment, based on
|
|
|
|
the current generation of the active profile, in which all
|
|
|
|
derivations designated by <replaceable>drvnames</replaceable>
|
|
|
|
for which there are newer versions in the active Nix
|
|
|
|
expression are replaced by those newer versions. Matching
|
|
|
|
derivations for which there are no newer versions are left
|
|
|
|
untouched; this is not an error. It is also not an error if
|
|
|
|
an element of <replaceable>drvnames</replaceable> matches no
|
|
|
|
installed derivations.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If multiple derivations in the active Nix expression match an
|
|
|
|
installed derivation, the one with the highest version is
|
|
|
|
selected.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Flags</title>
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--lt</option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Only upgrade a derivation to newer versions. This is
|
|
|
|
the default.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--leq</option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
In addition to upgrading to newer versions, also
|
|
|
|
<quote>upgrade</quote> to derivations that have the same
|
|
|
|
version. Version are not a unique identification of a
|
|
|
|
derivation, so there may be many derivations that have
|
|
|
|
the same version. This flag may be useful to force
|
|
|
|
<quote>synchronisation</quote> between the installed and
|
|
|
|
available derivations.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--always</option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
In addition to upgrading to newer versions, also
|
|
|
|
<quote>upgrade</quote> to derivations that have the same
|
|
|
|
or a lower version. I.e., derivations may actually be
|
|
|
|
downgraded depending on what is available in the active
|
|
|
|
Nix expression.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Examples</title>
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
$ nix-env --upgrade gcc
|
|
|
|
upgrading `gcc-3.3.1' to `gcc-3.4'
|
|
|
|
|
2004-06-28 16:37:05 +03:00
|
|
|
$ nix-env -u gcc-3.3.2 --always <lineannotation>(switch to a specific version)</lineannotation>
|
|
|
|
upgrading `gcc-3.4' to `gcc-3.3.2'
|
|
|
|
|
2004-02-10 13:51:16 +02:00
|
|
|
$ nix-env --upgrade pan
|
|
|
|
<lineannotation>(no upgrades available, so nothing happens)</lineannotation>
|
|
|
|
|
|
|
|
$ nix-env -u '*' <lineannotation>(try to upgrade everything)</lineannotation>
|
|
|
|
upgrading `hello-2.1.2' to `hello-2.1.3'
|
|
|
|
upgrading `mozilla-1.2' to `mozilla-1.4'</screen>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Versions</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The upgrade operation determines whether a derivation
|
|
|
|
<varname>y</varname> is an upgrade of a derivation
|
|
|
|
<varname>x</varname> by looking at their respective
|
|
|
|
<literal>name</literal> attributes. The names (e.g.,
|
|
|
|
<literal>gcc-3.3.1</literal> are split into two parts: the
|
|
|
|
package name (<literal>gcc</literal>), and the version
|
|
|
|
(<literal>3.3.1</literal>). The version part starts after the
|
|
|
|
first dash not following by a letter. <varname>x</varname> is
|
|
|
|
considered an upgrade of <varname>y</varname> if their package
|
|
|
|
names match, and the version of <varname>y</varname> is higher
|
|
|
|
that that of <varname>x</varname>.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The versions are compared by splitting them into contiguous
|
|
|
|
components of numbers and letters. E.g.,
|
|
|
|
<literal>3.3.1pre5</literal> is split into <literal>[3, 3, 1,
|
|
|
|
"pre", 5]</literal>. These lists are then compared
|
|
|
|
lexicographically (from left to right). Corresponding
|
|
|
|
components <varname>a</varname> and <varname>b</varname> are
|
|
|
|
compared as follows. If they are both numbers, integer
|
|
|
|
comparison is used. If <varname>a</varname> is an empty
|
|
|
|
string and <varname>b</varname> is a number,
|
|
|
|
<varname>a</varname> is considered less than
|
|
|
|
<varname>b</varname>. The special string component
|
|
|
|
<literal>pre</literal> (for <emphasis>pre-release</emphasis>)
|
|
|
|
is considered to be less than other components. String
|
|
|
|
components are considered less than number components.
|
|
|
|
Otherwise, they are compared lexicographically (i.e., using
|
|
|
|
case-sensitive string comparison).
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This is illustrated by the following examples:
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
1.0 < 2.3
|
|
|
|
2.1 < 2.3
|
|
|
|
2.3 = 2.3
|
|
|
|
2.5 > 2.3
|
|
|
|
3.1 > 2.3
|
|
|
|
2.3.1 > 2.3
|
|
|
|
2.3.1 > 2.3a
|
|
|
|
2.3pre1 < 2.3
|
|
|
|
2.3pre3 < 2.3pre12
|
|
|
|
2.3a < 2.3c
|
|
|
|
2.3pre1 < 2.3c
|
|
|
|
2.3pre1 < 2.3q</screen>
|
|
|
|
|
2004-01-08 18:56:40 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
2004-02-10 13:51:16 +02:00
|
|
|
|
|
|
|
<!--######################################################################-->
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Operation <option>--uninstall</option></title>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Synopsis</title>
|
|
|
|
<cmdsynopsis>
|
|
|
|
<command>nix-env</command>
|
|
|
|
<group choice='req'>
|
|
|
|
<arg choice='plain'><option>--uninstall</option></arg>
|
|
|
|
<arg choice='plain'><option>-e</option></arg>
|
|
|
|
</group>
|
|
|
|
<arg choice='plain' rep='repeat'><replaceable>drvnames</replaceable></arg>
|
|
|
|
</cmdsynopsis>
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The uninstall operation creates a new user environment, based
|
|
|
|
on the current generation of the active profile, from which the
|
|
|
|
derivations designated by <replaceable>drvnames</replaceable>
|
|
|
|
are removed.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Examples</title>
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
$ nix-env --uninstall gcc
|
|
|
|
$ nix-env -e '*' <lineannotation>(remove everything)</lineannotation></screen>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--######################################################################-->
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Operation <option>--query</option></title>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Synopsis</title>
|
|
|
|
<cmdsynopsis>
|
|
|
|
<command>nix-env</command>
|
|
|
|
<group choice='req'>
|
|
|
|
<arg choice='plain'><option>--query</option></arg>
|
|
|
|
<arg choice='plain'><option>-q</option></arg>
|
|
|
|
</group>
|
|
|
|
<group choice='opt'>
|
|
|
|
<arg choice='plain'><option>--installed</option></arg>
|
|
|
|
<arg choice='plain'><option>--available</option></arg>
|
|
|
|
<arg choice='plain'><option>-a</option></arg>
|
|
|
|
</group>
|
|
|
|
<group choice='req'>
|
|
|
|
<arg choice='plain'><option>--name</option></arg>
|
|
|
|
<arg choice='plain'><option>--expr</option></arg>
|
|
|
|
<arg choice='plain'><option>--status</option></arg>
|
|
|
|
<arg choice='plain'><option>-s</option></arg>
|
|
|
|
</group>
|
|
|
|
</cmdsynopsis>
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The query operation displays information about either the
|
|
|
|
derivations that are installed in the current generation of
|
|
|
|
the active profile (<option>--installed</option>), or the
|
|
|
|
derivations that are available for installation in the active
|
|
|
|
Nix expression (<option>--available</option>).
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The derivations are sorted by their <literal>name</literal>
|
|
|
|
attributes.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Source selection</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The following flags specify the set of derivations on which
|
|
|
|
the query operates.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--installed</option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
The query operates on the derivations that are installed
|
|
|
|
in the current generation of the active profile. This
|
|
|
|
is the default
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--available</option> / <option>-a</option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
The query operates on the derivations that are available
|
|
|
|
in the active Nix expression.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Queries</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The following flags specify what information to display about
|
|
|
|
the selected derivations. Only one type of query may be
|
|
|
|
specified.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--name</option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Prints the <literal>name</literal> attribute of each
|
|
|
|
derivation. This is the default.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--expr</option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Prints the store expression in the Nix store that
|
|
|
|
described the derivation.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--status</option> / <option>-s</option></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Prints the <emphasis>status</emphasis> of each
|
|
|
|
derivation, followed by its <literal>name</literal>
|
|
|
|
attribute. The status consists of three characters.
|
|
|
|
The first is <literal>I</literal> or
|
|
|
|
<literal>-</literal>, indicating whether the derivation
|
|
|
|
is currently installed in the current generation of the
|
|
|
|
active profile. This is by definition the case for
|
|
|
|
<option>--installed</option>, but not for
|
|
|
|
<option>--available</option>. The second is
|
|
|
|
<literal>P</literal> or <literal>-</literal>, indicating
|
|
|
|
whether the derivation is present on the system. This
|
|
|
|
indicates whether installation of an available
|
|
|
|
derivation will require the derivation to be built. The
|
|
|
|
third is <literal>S</literal> or <literal>-</literal>,
|
|
|
|
indicating whether a substitute is available for the
|
|
|
|
derivation.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Examples</title>
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
$ nix-env -q <lineannotation>(show installed derivations)</lineannotation>
|
|
|
|
MozillaFirebird-0.7
|
|
|
|
bison-1.875c
|
|
|
|
docbook-xml-4.2
|
|
|
|
...
|
|
|
|
|
|
|
|
$ nix-env -qa <lineannotation>(show available derivations)</lineannotation>
|
|
|
|
GConf-2.4.0.1
|
|
|
|
MPlayer-1.0pre3
|
|
|
|
MozillaFirebird-0.7
|
|
|
|
ORBit2-2.8.3
|
|
|
|
...
|
|
|
|
|
|
|
|
$ nix-env -qas <lineannotation>(show status of available derivations)</lineannotation>
|
|
|
|
-P- GConf-2.4.0.1 <lineannotation>(not installed but present)</lineannotation>
|
|
|
|
--S MPlayer-1.0pre3 <lineannotation>(not present, but there is a substitute for fast installation)</lineannotation>
|
|
|
|
--S MozillaFirebird-0.7 <lineannotation>(i.e., this is not the installed Firebird, even though the version is the same!)</lineannotation>
|
|
|
|
IP- bison-1.875c <lineannotation>(installed and by definition present)</lineannotation>
|
|
|
|
...
|
|
|
|
|
|
|
|
$ nix-env -f ./foo.nix -qa <lineannotation>(show available derivations in the Nix expression <filename>foo.nix</filename>)</lineannotation>
|
|
|
|
foo-1.2.3</screen>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
2004-02-10 18:14:47 +02:00
|
|
|
|
|
|
|
<!--######################################################################-->
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Operation <option>--switch-profile</option></title>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Synopsis</title>
|
|
|
|
<cmdsynopsis>
|
|
|
|
<command>nix-env</command>
|
|
|
|
<group choice='req'>
|
|
|
|
<arg choice='plain'><option>--switch-profile</option></arg>
|
|
|
|
<arg choice='plain'><option>-S</option></arg>
|
|
|
|
</group>
|
|
|
|
<arg choice='req'><replaceable>path</replaceable></arg>
|
|
|
|
</cmdsynopsis>
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This operation makes <replaceable>path</replaceable> the
|
|
|
|
current profile for the user. That is, the symlink
|
|
|
|
<filename>~/.nix-profile</filename> is made to point to
|
|
|
|
<replaceable>path</replaceable>.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Examples</title>
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
$ nix-env -S ~/my-profile</screen>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--######################################################################-->
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Operation <option>--list-generations</option></title>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Synopsis</title>
|
|
|
|
<cmdsynopsis>
|
|
|
|
<command>nix-env</command>
|
|
|
|
<arg choice='req'><option>--list-generations</option></arg>
|
|
|
|
</cmdsynopsis>
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This operation print a list of all the currently existing
|
|
|
|
generations for the active profile. These may be switched to
|
|
|
|
using the <option>--switch-generation</option> operation. It
|
|
|
|
also prints the creation date of the generation, and indicates
|
|
|
|
the current generation.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Examples</title>
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
$ nix-env --list-generations
|
|
|
|
95 2004-02-06 11:48:24
|
|
|
|
96 2004-02-06 11:49:01
|
|
|
|
97 2004-02-06 16:22:45
|
|
|
|
98 2004-02-06 16:24:33 (current)</screen>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
|
|
|
|
2004-11-13 01:56:37 +02:00
|
|
|
<!--######################################################################-->
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Operation <option>--delete-generations</option></title>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Synopsis</title>
|
|
|
|
<cmdsynopsis>
|
|
|
|
<command>nix-env</command>
|
|
|
|
<arg choice='req'><option>--delete-generations</option></arg>
|
|
|
|
<arg choice='plain' rep='repeat'><replaceable>generations</replaceable></arg>
|
|
|
|
</cmdsynopsis>
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This operation deletes the specified generations of the
|
|
|
|
current profile. The generations can be a list of generation
|
|
|
|
numbers, or the special value <literal>old</literal> to delete
|
|
|
|
all non-current generations. Periodically deleting old
|
|
|
|
generations is important to make garbage collection effective.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Examples</title>
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
$ nix-env --delete-generations 3 4 8
|
|
|
|
|
|
|
|
$ nix-env -p other_profile --delete-generations old</screen>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
|
|
|
|
2004-02-10 18:14:47 +02:00
|
|
|
<!--######################################################################-->
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Operation <option>--switch-generation</option></title>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Synopsis</title>
|
|
|
|
<cmdsynopsis>
|
|
|
|
<command>nix-env</command>
|
|
|
|
<group choice='req'>
|
|
|
|
<arg choice='plain'><option>--switch-generation</option></arg>
|
|
|
|
<arg choice='plain'><option>-G</option></arg>
|
|
|
|
</group>
|
|
|
|
<arg choice='req'><replaceable>generation</replaceable></arg>
|
|
|
|
</cmdsynopsis>
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This operation makes generation number
|
|
|
|
<replaceable>generation</replaceable> the current generation
|
|
|
|
of the active profile. That is, if the
|
|
|
|
<filename><replaceable>profile</replaceable></filename> is the
|
|
|
|
path to the active profile, then the symlink
|
|
|
|
<filename><replaceable>profile</replaceable></filename> is
|
|
|
|
made to point to
|
|
|
|
<filename><replaceable>profile</replaceable>-<replaceable>generation</replaceable>-link</filename>,
|
|
|
|
which is in turn a symlink to the actual user environment in
|
|
|
|
the Nix store.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Switching will fail if the specified generation does not
|
|
|
|
exist.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Examples</title>
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
$ nix-env -G 42
|
|
|
|
switching from generation 50 to 42</screen>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--######################################################################-->
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Operation <option>--rollback</option></title>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Synopsis</title>
|
|
|
|
<cmdsynopsis>
|
|
|
|
<command>nix-env</command>
|
|
|
|
<arg choice='req'><option>--rollback</option></arg>
|
|
|
|
</cmdsynopsis>
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This operation switches to the <quote>previous</quote>
|
|
|
|
generation of the active profile, that is, the highest
|
|
|
|
numbered generation lower than the current generation, if it
|
|
|
|
exists. It is just a convenience wrapper around
|
|
|
|
<option>--list-generations</option> and
|
|
|
|
<option>--switch-generation</option>.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Examples</title>
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
$ nix-env --rollback
|
|
|
|
switching from generation 92 to 91
|
|
|
|
|
|
|
|
$ nix-env --rolback
|
|
|
|
error: no generation older than the current (91) exists</screen>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--######################################################################-->
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Operation <option>--import</option></title>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Synopsis</title>
|
|
|
|
<cmdsynopsis>
|
|
|
|
<command>nix-env</command>
|
|
|
|
<group choice='req'>
|
|
|
|
<arg choice='plain'><option>--import</option></arg>
|
|
|
|
<arg choice='plain'><option>-I</option></arg>
|
|
|
|
</group>
|
|
|
|
<arg choice='req'><replaceable>path</replaceable></arg>
|
|
|
|
</cmdsynopsis>
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
This operation makes <replaceable>path</replaceable> the
|
|
|
|
default active Nix expression for the user. That is, the
|
|
|
|
symlink <filename>~/.nix-userenv</filename> is made to point
|
|
|
|
to <replaceable>path</replaceable>.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
<refsection>
|
|
|
|
<title>Examples</title>
|
|
|
|
|
|
|
|
<screen>
|
|
|
|
$ nix-env -I ~/nixpkgs-0.5/</screen>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
|
|
|
|
2004-01-08 18:56:40 +02:00
|
|
|
</refentry>
|