Provided by: nix-bin_2.26.3+dfsg-1ubuntu2_amd64 bug

Name

       nix-collect-garbage - delete unreachable store objects

Synopsis

       nix-collect-garbage [--delete-old] [-d] [--delete-older-than period] [--max-freed bytes] [--dry-run]

Description

       The  command  nix-collect-garbage  is  mostly  an  alias  of  nix-store --gc.   That  is,  it deletes all
       unreachable store objects in the Nix store to clean up your system.

       However, it provides two additional options, --delete-old and --delete-older-than, which also delete  old
       profiles,  allowing  potentially  more  store objects  to  be  deleted  because profiles are also garbage
       collection roots.  These options are the equivalent of running nix-env --delete-generations with  various
       augments  on multiple profiles, prior to running nix-collect-garbage (or just nix-store --gc) without any
       flags.

              Note

              Deleting previous configurations makes rollbacks to them impossible.

       These flags should be used with care, because they potentially delete generations  of  profiles  used  by
       other users on the system.

   Locations searched for profiles
       nix-collect-garbage cannot know about all profiles; that information doesn’t exist.  Instead, it looks in
       a few locations, and acts on all profiles it finds there:

       1. The default profile locations as specified in the profiles section of the manual.

       2.

                 NOTE

                 Not stable; subject to change

                 Do  not rely on this functionality; it just exists for migration purposes and may change in the
                 future.  These deprecated paths remain a private implementation detail of Nix.

          $NIX_STATE_DIR/profiles and $NIX_STATE_DIR/profiles/per-user.

          With the exception of $NIX_STATE_DIR/profiles/per-user/root and $NIX_STATE_DIR/profiles/default, these
          directories are no longer used by other commands.  nix-collect-garbage looks there anyways in order to
          clean up profiles from older versions of Nix.

Options

       These options are for deleting old profiles prior to deleting unreachable store objects.

       •  --delete-old / -d

          Delete all old generations of profiles.

          This is the equivalent of invoking nix-env --delete-generations old on each found profile.

       •  --delete-older-than period

          Delete all generations of profiles older than the specified amount (except for  the  generations  that
          were active at that point in time).  period is a value such as 30d, which would mean 30 days.

          This  is  the equivalent of invoking nix-env --delete-generations <period> on each found profile.  See
          the documentation of that command for additional information about the period argument.

          •  --max-freed bytes

       Keep deleting paths until at least bytes bytes have been deleted, then stop. The argument  bytes  can  be
       followed by the multiplicative suffix K, M, G or T, denoting KiB, MiB, GiB or TiB units.

       {{#include ./opt-common.md}}

       {{#include ./env-common.md}}

Example

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

       $ nix-collect-garbage -d

                                                                                          nix-collect-garbage(1)