8.3.4.1. nix-env --delete-generations
نام
nix-env --delete-generations - حذف پروفایل جنریشنها
خلاصه دستور
nix-env --delete-generations generations
توضیحات
این عملیات، جنریشنهای مشخصشدهی پروفایل فعلی را حذف میکند.
مقدار generations میتواند یکی از موارد زیر باشد:
<span id="generations-list">
<number>...</span>فهرستی از شمارههای جنریشن که هر کدام یک آرگومان خط فرمان جداگانه هستند.
دقیقاً جنریشنهای پروفایلی را که با شمارهشان مشخص شدهاند، حذف میکند. حذف جنریشن فعلی مجاز نیست.
<span id="generations-old">مقدار خاص
old</span>حذف تمام جنریشنها به جز جنریشن فعلی.
هشدار
جنریشنهای قدیمیتر و جدیدتر توسط این عملیات حذف خواهند شد.
ممکن است انتظار برود که این دستور فقط جنریشنهای قدیمیتر از جنریشن فعلی را حذف کند، اما این موضوع تنها در صورتی درست است که جنریشن فعلی، جدیدترین جنریشن نیز باشد. از آنجا که میتوان به یک جنریشن قبلی بازگردانی (rollback) کرد، این امکان وجود دارد که جنریشنهایی جدیدتر از جنریشن فعلی داشته باشیم. آنها نیز حذف خواهند شد.
<span id="generations-time">
<number>d</span>عدد روز گذشته
مثال:
30dحذف تمام جنریشنهایی که بیش از عدد روز پیش ایجاد شدهاند، به جز جدیدترین مورد در میان آنها. این کار امکان بازگردانی (rollback) به جنریشنهایی را که در بازه زمانی مشخصشده در دسترس بودهاند، فراهم میکند.
<span id="generations-count">
+<number></span>عدد جنریشن آخر منتهی به زمان حال
مثال:
+5نگهداری عدد جنریشن آخر، به همراه هر جنریشن دیگری که از جنریشن فعلی جدیدتر باشد.
حذف دورهای جنریشنهای قدیمی برای اثربخش شدن جمعآوری زباله (garbage collection) اهمیت دارد. دلیل این امر آن است که پروفایلها نیز ریشههای جمعآوری زباله محسوب میشوند — هر [شیء انبار] که از طریق یک پروفایل قابل دسترسی باشد، «زنده» در نظر گرفته میشود و واجد شرایط حذف نیست.
مثالها
حذف شماره جنریشنهای مشخص
$ nix-env --delete-generations 3 4 8 نسلهای شماره ۳، ۴ و ۸ را حذف کنید، به شرطی که نسل فعال فعلی هیچکدام از آنها نباشد.
حفظ کردن نسلهای اخیر بر اساس تعداد (تعداد نسلها)
$ nix-env --delete-generations +5 فرض کنید 30 نسل فعلی است و در حال حاضر نسلهای شمارهگذاریشدهی 20 تا 32 را داریم.
سپس این دستور نسلهای 20 تا 25 (<= 30 - 5) را حذف خواهد کرد،
و نسلهای 26 تا 31 (> 30 - 5) را نگه میدارد.
نگهداری جدیدترینها بر اساس زمان (تعداد روز)
$ nix-env --delete-generations 30d این دستور تمام نسلهایی را که قدیمیتر از ۳۰ روز هستند حذف میکند، بهجز نسلی که ۳۰ روز پیش فعال بوده است (اگر در حال حاضر وجود داشته باشد).
حذف تمام موارد قدیمیتر
$ nix-env --profile other_profile --delete-generations old nix.dev/manual/nix/stable/command-ref/nix-env/delete-generations.html