8.3.3.7. nix-store --gc
نام
nix-store --gc - اجرای جمعآوری زباله (garbage collection)
خلاصه دستور
nix-store --gc [--print-roots | --print-live | --print-dead][`--max-freed` *بایتها*]
توضیحات
بدون پرچمهای اضافی، عملیات --gc یک جمعآوری زباله (garbage collection) را روی انبار Nix انجام میدهد. یعنی تمام مسیرهای موجود در انبار Nix که از طریق ارجاعات سیستمفایل از مجموعهای از «ریشهها» قابل دستیابی نیستند، حذف میشوند.
زیرعملیاتهای زیر را میتوان مشخص کرد:
--print-rootsاین عملیات مجموعه ریشههای استفادهشده توسط جمعکنندهی زباله (garbage collector) را روی خروجی استاندارد چاپ میکند.
--print-liveاین عملیات مجموعه مسیرهای «زنده» انبار را روی خروجی استاندارد چاپ میکند که شامل تمام مسیرهای انبار قابل دستیابی از طریق ریشهها هستند. مسیرهای زنده نباید هرگز حذف شوند، زیرا این کار باعث نقض سازگاری میشود — ممکن است برنامههایی نصب شوند که به مواردی ارجاع میدهند که دیگر در انبار موجود نیستند.
--print-deadاین عملیات مجموعه مسیرهای «مرده» انبار را روی خروجی استاندارد چاپ میکند که دقیقاً نقطه مقابل مجموعه مسیرهای زنده است: هر مسیری در انبار که زنده نباشد (نسبت به ریشهها) مرده محسوب میشود.
به طور پیشفرض، تمام مسیرهای غیرقابل دسترس حذف میشوند. گزینههای زیر کنترل میکنند که چه چیزی و به چه ترتیبی حذف شود:
--max-freedبایتهاحذف مسیرها را تا زمانی که حداقل بایتها بایت آزاد شود ادامه دهید، سپس متوقف شوید. آرگومان بایتها میتواند با پسوندهای ضریبی
K،M،GیاTهمراه باشد که نمایانگر واحدهای KiB، MiB، GiB یا TiB هستند.
رفتار جمعکنندهی زباله (garbage collector) همچنین تحت تأثیر تنظیمات keep-outputs و keep-derivations در فایل پیکربندی Nix قرار دارد.
به طور پیشفرض، جمعکنندهی زباله (garbage collector) پس از اتمام (یا هنگام متوقف شدن)، تعداد کل بایتهای آزادشده را چاپ میکند.
مثالها
برای حذف تمام مسیرهای غیرقابلدسترس، کافی است اجرا کنید:
$ nix-store --gc
deleting `/nix/store/kq82idx6g0nyzsp2s14gfsc38npai7lf-cairo-1.0.4.tar.gz.drv'
...
8825586 bytes freed (8.42 MiB) برای حذف حداقل ۱۰۰ مگابایت از مسیرهای غیرقابلدسترس:
$ nix-store --gc --max-freed $((100 * 1024 * 1024))