aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/nix-env.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/manual/nix-env.xml')
-rw-r--r--doc/manual/nix-env.xml150
1 files changed, 131 insertions, 19 deletions
diff --git a/doc/manual/nix-env.xml b/doc/manual/nix-env.xml
index 6106d15f4..ff005830e 100644
--- a/doc/manual/nix-env.xml
+++ b/doc/manual/nix-env.xml
@@ -109,8 +109,13 @@ linkend="sec-common-options" />.</para>
<option>--rollback</option> operations, this flag will 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>
-
+ specified, without actually doing it.</para>
+
+ <para><option>--dry-run</option> also prints out which paths will
+ be <link linkend="gloss-substitute">substituted</link> (i.e.,
+ downloaded) and which paths will be built from source (because no
+ substitute is available).</para></listitem>
+
</varlistentry>
<varlistentry><term><option>--system-filter</option> <replaceable>system</replaceable></term>
@@ -205,6 +210,14 @@ number of possible ways:
<option>--preserve-installed</option> is
specified.</para></listitem>
+ <listitem><para>If <link
+ linkend='opt-attr'><option>--attr</option></link>
+ (<option>-A</option>) is specified, the arguments are
+ <emphasis>attribute paths</emphasis> that select attributes from the
+ top-level Nix expression. This is faster than using derivation
+ names and unambiguous. To find out the attribute paths of available
+ packages, use <literal>nix-env -qaA '*'</literal>.</para></listitem>
+
<listitem><para>If <option>--from-profile</option>
<replaceable>path</replaceable> is given,
<replaceable>args</replaceable> is a set of names denoting installed
@@ -280,6 +293,14 @@ installing `gcc-3.3.2'</screen>
</para>
+<para>To install using a specific attribute:
+
+<screen>
+$ nix-env -i -A gcc40mips
+$ nix-env -i -A xorg.xorgserver</screen>
+
+</para>
+
<para>To install all derivations in the Nix expression <filename>foo.nix</filename>:
<screen>
@@ -322,6 +343,25 @@ selecting the <literal>subversionWithJava</literal> attribute from the
attribute set returned by calling the function defined in
<filename>./foo.nix</filename>.</para>
+<para>A dry-run tells you which paths will be downloaded or built from
+source:
+
+<screen>
+$ nix-env -f pkgs/top-level/all-packages.nix -i f-spot --dry-run
+(dry run; not doing anything)
+installing `f-spot-0.0.10'
+the following derivations will be built:
+ /nix/store/0g63jv9aagwbgci4nnzs2dkxqz84kdja-libgnomeprintui-2.12.1.tar.bz2.drv
+ /nix/store/0gfarvxq6sannsdw8a1ir40j1ys2mqb4-ORBit2-2.14.2.tar.bz2.drv
+ /nix/store/0i9gs5zc04668qiy60ga2rc16abkj7g8-sqlite-2.8.17.drv
+ <replaceable>...</replaceable>
+the following paths will be substituted:
+ /nix/store/8zbipvm4gp9jfqh9nnk1n3bary1a37gs-perl-XML-Parser-2.34
+ /nix/store/b8a2bg7gnyvvvjjibp4axg9x1hzkw36c-mono-1.1.4
+ <replaceable>...</replaceable></screen>
+
+</para>
+
</refsection>
</refsection>
@@ -343,6 +383,7 @@ attribute set returned by calling the function defined in
<group choice='opt'>
<arg choice='plain'><option>--lt</option></arg>
<arg choice='plain'><option>--leq</option></arg>
+ <arg choice='plain'><option>--eq</option></arg>
<arg choice='plain'><option>--always</option></arg>
</group>
<arg choice='plain' rep='repeat'><replaceable>args</replaceable></arg>
@@ -391,6 +432,17 @@ installed.</para>
</varlistentry>
+ <varlistentry><term><option>--eq</option></term>
+
+ <listitem><para><emphasis>Only</emphasis> “upgrade” to derivations
+ that have the same version. This may not seem very useful, but it
+ actually is, e.g., when there is a new release of Nixpkgs and you
+ want to replace installed applications with the same versions
+ built against newer dependencies (to reduce the number of
+ dependencies floating around on your system).</para></listitem>
+
+ </varlistentry>
+
<varlistentry><term><option>--always</option></term>
<listitem><para>In addition to upgrading to newer versions, also
@@ -523,21 +575,37 @@ $ nix-env -e '*' <lineannotation>(remove everything)</lineannotation></screen>
<arg choice='plain'><option>--query</option></arg>
<arg choice='plain'><option>-q</option></arg>
</group>
+ <arg><option>--xml</option></arg>
<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>--status</option></arg>
- <arg choice='plain'><option>-s</option></arg>
- <arg choice='plain'><option>--no-name</option></arg>
- <arg choice='plain'><option>--compare-versions</option></arg>
- <arg choice='plain'><option>-c</option></arg>
- <arg choice='plain'><option>--system</option></arg>
- <arg choice='plain'><option>--drv-path</option></arg>
- <arg choice='plain'><option>--out-path</option></arg>
- </group>
+ <sbr />
+ <arg>
+ <group choice='req'>
+ <arg choice='plain'><option>--status</option></arg>
+ <arg choice='plain'><option>-s</option></arg>
+ </group>
+ </arg>
+ <arg>
+ <group choice='req'>
+ <arg choice='plain'><option>--attr</option></arg>
+ <arg choice='plain'><option>-A</option></arg>
+ </group>
+ </arg>
+ <arg><option>--no-name</option></arg>
+ <arg>
+ <group choice='req'>
+ <arg choice='plain'><option>--compare-versions</option></arg>
+ <arg choice='plain'><option>-c</option></arg>
+ </group>
+ </arg>
+ <arg><option>--system</option></arg>
+ <arg><option>--drv-path</option></arg>
+ <arg><option>--out-path</option></arg>
+ <arg><option>--description</option></arg>
+ <arg choice='plain' rep='repeat'><replaceable>names</replaceable></arg>
</cmdsynopsis>
</refsection>
@@ -549,7 +617,10 @@ $ nix-env -e '*' <lineannotation>(remove everything)</lineannotation></screen>
paths 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>
+(<option>--available</option>). It only prints information about
+derivations whose symbolic name matches one of
+<replaceable>names</replaceable>. The wildcard <literal>*</literal>
+shows all derivations.</para>
<para>The derivations are sorted by their <literal>name</literal>
attributes.</para>
@@ -598,6 +669,18 @@ user environment elements, etc. -->
<variablelist>
+ <varlistentry><term><option>--xml</option></term>
+
+ <listitem><para>Print the result in an XML representation suitable
+ for automatic processing by other tools. The root element is
+ called <literal>items</literal>, which contains a
+ <literal>item</literal> element for each available or installed
+ derivation. The fields discussed below are all stored in
+ attributes of the <literal>item</literal>
+ elements.</para></listitem>
+
+ </varlistentry>
+
<varlistentry><term><option>--status</option></term>
<term><option>-s</option></term>
@@ -617,6 +700,17 @@ user environment elements, etc. -->
</varlistentry>
+ <varlistentry><term><option>--attr</option></term>
+ <term><option>-a</option></term>
+
+ <listitem><para>Print the <emphasis>attribute path</emphasis> of
+ the derivation, which can be used to unambiguously select it using
+ the <link linkend="opt-attr"><option>--attr</option> option</link>
+ available in commands that install derivations like
+ <literal>nix-env --install</literal>.</para></listitem>
+
+ </varlistentry>
+
<varlistentry><term><option>--no-name</option></term>
<listitem><para>Suppress printing of the <literal>name</literal>
@@ -690,6 +784,15 @@ user environment elements, etc. -->
</varlistentry>
+ <varlistentry><term><option>--description</option></term>
+
+ <listitem><para>Print a short (one-line) description of the
+ derivation, if available. The description is taken from the
+ <literal>meta.description</literal> attribute of the
+ derivation.</para></listitem>
+
+ </varlistentry>
+
</variablelist>
</refsection>
@@ -698,7 +801,7 @@ user environment elements, etc. -->
<refsection><title>Examples</title>
<screen>
-$ nix-env -q <lineannotation>(show installed derivations)</lineannotation>
+$ nix-env -q '*' <lineannotation>(show installed derivations)</lineannotation>
bison-1.875c
docbook-xml-4.2
firefox-1.0.4
@@ -706,30 +809,39 @@ MPlayer-1.0pre7
ORBit2-2.8.3
...
-$ nix-env -qa <lineannotation>(show available derivations)</lineannotation>
+$ nix-env -qa '*' <lineannotation>(show available derivations)</lineannotation>
firefox-1.0.7
GConf-2.4.0.1
MPlayer-1.0pre7
ORBit2-2.8.3
...
-$ nix-env -qas <lineannotation>(show status of available derivations)</lineannotation>
+$ nix-env -qas '*' <lineannotation>(show status of available derivations)</lineannotation>
-P- firefox-1.0.7 <lineannotation>(not installed but present)</lineannotation>
--S GConf-2.4.0.1 <lineannotation>(not present, but there is a substitute for fast installation)</lineannotation>
--S MPlayer-1.0pre3 <lineannotation>(i.e., this is not the installed MPlayer, even though the version is the same!)</lineannotation>
IP- ORBit2-2.8.3 <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>
+<lineannotation>(show available derivations in the Nix expression <!-- !!! <filename>-->foo.nix<!-- </filename> -->)</lineannotation>
+$ nix-env -f ./foo.nix -qa '*'
foo-1.2.3
-$ nix-env -qc <lineannotation>(compare installed versions to what’s available)</lineannotation>
+$ nix-env -qc '*' <lineannotation>(compare installed versions to what’s available)</lineannotation>
<replaceable>...</replaceable>
acrobat-reader-7.0 - ? <lineannotation>(package is not available at all)</lineannotation>
autoconf-2.59 = 2.59 <lineannotation>(same version)</lineannotation>
firefox-1.0.4 &lt; 1.0.7 <lineannotation>(a more recent version is available)</lineannotation>
<replaceable>...</replaceable>
-</screen>
+
+<lineannotation>(show info about a specific package, in XML)</lineannotation>
+$ nix-env -qa --xml --description firefox
+<![CDATA[<?xml version='1.0' encoding='utf-8'?>
+<items>
+ <item attrPath="0.0.firefoxWrapper"
+ description="Mozilla Firefox - the browser, reloaded (with various plugins)"
+ name="firefox-1.5.0.7" system="i686-linux" />
+</items>]]></screen>
</refsection>