summary refs log tree commit diff
path: root/doc/manual/nix-collect-garbage.xml
blob: a97e3b7c6ba5f8a23655f95220ed4a24b6188364 (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
<refentry xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xml:id="sec-nix-collect-garbage">
  
<refmeta>
  <refentrytitle>nix-collect-garbage</refentrytitle>
  <manvolnum>1</manvolnum>
  <refmiscinfo class="source">Nix</refmiscinfo>
  <refmiscinfo class="version"><xi:include href="version.txt" parse="text"/></refmiscinfo>
</refmeta>

<refnamediv>
  <refname>nix-collect-garbage</refname>
  <refpurpose>delete unreachable store paths</refpurpose>
</refnamediv>

<refsynopsisdiv>
  <cmdsynopsis>
    <command>nix-collect-garbage</command>
    <arg><option>--delete-old</option></arg>
    <arg><option>-d</option></arg>
    <arg><option>--delete-older-than</option> <replaceable>period</replaceable></arg>
    <group choice='opt'>
      <arg choice='plain'><option>--print-roots</option></arg>
      <arg choice='plain'><option>--print-live</option></arg>
      <arg choice='plain'><option>--print-dead</option></arg>
      <arg choice='plain'><option>--delete</option></arg>
    </group>
    <arg><option>--dry-run</option></arg>
  </cmdsynopsis>
</refsynopsisdiv>

<refsection><title>Description</title>

<para>The command <command>nix-collect-garbage</command> is mostly an
alias of <link linkend="rsec-nix-store-gc"><command>nix-store
--gc</command></link>, that is, it deletes all unreachable paths in
the Nix store to clean up your system.  However, it provides two
additional options: <option>-d</option> (<option>--delete-old</option>),
which deletes all old generations of all profiles in
<filename>/nix/var/nix/profiles</filename> by invoking
<literal>nix-env --delete-generations old</literal> on all profiles
(of course, this makes rollbacks to previous configurations
impossible); and
<option>--delete-older-than</option> <replaceable>period</replaceable>,
where period is a value such as <literal>30d</literal>, which deletes
all non-current generations that are older than the specified number of
days in all profiles in <filename>/nix/var/nix/profiles</filename>.
</para>

</refsection>

<refsection><title>Example</title>

<para>To delete from the Nix store everything that is not used by the
current generations of each profile, do

<screen>
$ nix-collect-garbage -d</screen>

</para>

</refsection>

</refentry>