about summary refs log tree commit diff
path: root/doc/manual/opt-common.xml
blob: 7650d62e51aedfc42d5d70e2c2f8b9585a91377b (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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
<varlistentry>
  <term><option>--help</option></term>
  <listitem>
    <para>
      Prints out a summary of the command syntax and exits.
    </para>
  </listitem>
</varlistentry>


<varlistentry>
  <term><option>--version</option></term>
  <listitem>
    <para>
      Prints out the Nix version number on standard output and exits.
    </para>
  </listitem>
</varlistentry>


<varlistentry>
  <term><option>--verbose</option> / <option>-v</option></term>
  <listitem>
    <para>
      Increases the level of verbosity of diagnostic messages printed
      on standard error.  For each Nix operation, the information
      printed on standard output is well-defined; any diagnostic
      information is printed on standard error, never on standard
      output.
    </para>

    <para>
      This option may be specified repeatedly.  Currently, the
      following verbosity levels exist:
    </para>

    <variablelist>
      <varlistentry>
        <term>0</term>
        <listitem>
          <para>
            <quote>Errors only</quote>: only print messages explaining
            why the Nix invocation failed.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>1</term>
        <listitem>
          <para>
            <quote>Informational</quote>: print
            <emphasis>useful</emphasis> messages about what Nix is
            doing.  This is the default.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>2</term>
        <listitem>
          <para>
            <quote>Talkative</quote>: print more informational messages.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>3</term>
        <listitem>
          <para>
            <quote>Chatty</quote>: print even more informational messages.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>4</term>
        <listitem>
          <para>
            <quote>Debug</quote>: print debug information:
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>5</term>
        <listitem>
          <para>
            <quote>Vomit</quote>: print vast amounts of debug
            information.
          </para>
        </listitem>
      </varlistentry>
    </variablelist>

  </listitem>
</varlistentry>


<varlistentry>
  <term><option>--no-build-output</option> / <option>-Q</option></term>
  <listitem>
    <para>
      By default, output written by builders to standard output and
      standard error is echoed to the Nix command's standard error.
      This option suppresses this behaviour.  Note that the builder's
      standard output and error are always written to a log file in
      <filename><replaceable>prefix</replaceable>/nix/var/log/nix</filename>.
    </para>
  </listitem>
</varlistentry>


<varlistentry>
  <term><option>--max-jobs</option> / <option>-j</option></term>
  <listitem>
    <para>
      Sets the maximum number of build jobs that Nix will perform in
      parallel to the specified number.  The default is 1.  A higher
      value is useful on SMP systems or to exploit I/O latency.
    </para>
  </listitem>
</varlistentry>


<varlistentry>
  <term><option>--keep-going</option> / <option>-k</option></term>
  <listitem>
    <para>
      Keep going in case of failed builds, to the greatest extent
      possible.  That is, if building an input of some derivation
      fails, Nix will still build the other inputs, but not the
      derivation itself.  Without this option, Nix stops if any build
      fails (except for builds of substitutes), possibly killing
      builds in progress (in case of parallel or distributed builds).
    </para>
  </listitem>
</varlistentry>


<varlistentry>
  <term><option>--keep-failed</option> / <option>-K</option></term>
  <listitem>
    <para>
      Specifies that in case of a build failure, the temporary
      directory (usually in <filename>/tmp</filename>) in which the
      build takes place should not be deleted.  The path of the build
      directory is printed as an informational message.
    </para>
  </listitem>
</varlistentry>


<varlistentry>
  <term><option>--fallback</option></term>
  <listitem>
    <para>
      Whenever Nix attempts to realise a derivation for which a
      closure is already known, but this closure cannot be realised,
      fall back on normalising the derivation.
    </para>

    <para>
      The most common scenario in which this is useful is when we have
      registered substitutes in order to perform binary distribution
      from, say, a network repository.  If the repository is down, the
      realisation of the derivation will fail.  When this option is
      specified, Nix will build the derivation instead.  Thus,
      binary installation falls back on a source installation.  This
      option is not the default since it is generally not desirable
      for a transient failure in obtaining the substitutes to lead to
      a full build from source (with the related consumption of
      resources).
    </para>
  </listitem>
</varlistentry>


<varlistentry>
  <term><option>--readonly-mode</option></term>
  <listitem>
    <para>
      When this option is used, no attempt is made to open the Nix
      database.  Most Nix operations do need database access, so those
      operations will fail.
    </para>
  </listitem>
</varlistentry>