summary refs log tree commit diff
path: root/doc/manual/nix-collect-garbage.xml
blob: dc84cd8033a45e84af9e23c035be5a6e30b6772c (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
<refentry>
  <refnamediv>
    <refname>nix-collect-garbage</refname>
    <refpurpose>remove unreachable store paths</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>nix-collect-garbage</command>
      <group choice='opt'>
        <arg choice='plain'><option>--print-live</option></arg>
        <arg choice='plain'><option>--print-dead</option></arg>
      </group>
      <arg><option>--min-age</option> <replaceable>age</replaceable></arg>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsection>
    <title>Description</title>

    <para>
      The command <command>nix-collect-garbage</command> performs a
      garbage collection on the Nix store: any paths in the Nix store
      that are garbage (not reachable from a set of root store
      expressions) are deleted.
    </para>

    <para>
      The roots of the garbage collector are the store expressions
      mentioned in the files in the directory
      <filename><replaceable>prefix</replaceable>/var/nix/gcroots</filename>.
      By default, the roots are all user environments in
      <filename><replaceable>prefix</replaceable>/var/nix/profiles</filename>.
      You can register other store expressions as roots by writing the
      full path of the store expression to an arbitrary file in the
      <filename>gcroots</filename> directory (or a subdirectory
      thereof).
    </para>

  </refsection>

  <refsection>
    <title>Options</title>

    <variablelist>

      <varlistentry>
        <term><option>--print-live</option> / <option>--print-dead</option></term>
        <listitem>
          <para>
            These options cause the set of live or dead paths to be
            printed, respectively, rather than performing an actual
            garbage collector.  They correspond exactly with the
            sub-operations in <command>nix-store
            <option>--gc</option></command>.
          </para>
        </listitem>
      </varlistentry>
      
    </variablelist>

  </refsection>

  <refsection>
    <title>Examples</title>

    <para>
      To delete all unreachable paths, just do:
    
      <screen>
$ nix-collect-garbage</screen>

    </para>

  </refsection>
    
</refentry>