forked from lix-project/lix
700c678c2e
The option '--delete-generations Nd' deletes all generations older than N days. However, most likely the user does not want to delete the generation that was active N days ago. For example, say that you have these 3 generations: 1: <30 days ago> 2: <15 days ago> 3: <1 hour ago> If you do --delete-generations 7d (say, as part of a cron job), most likely you still want to keep generation 2, i.e. the generation that was active 7 days ago (and for most of the past 7 days, in fact). This patch fixes this issue. Note that this also affects 'nix-collect-garbage --delete-older-than Nd'. Thanks to @roconnor for noticing the issue!
68 lines
2.3 KiB
XML
68 lines
2.3 KiB
XML
<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 generations older than the specified number of days in all profiles
|
|
in <filename>/nix/var/nix/profiles</filename> (except for the generations
|
|
that were active at that point in time).
|
|
</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>
|