بسته های اسنپ برای نصب راحت هستند اما فضای زیادی را اشغال می کنند. در اینجا نحوه پاکسازی بسته های اسنپ در لینوکس آورده شده است.
یکی از مزایای کلیدی توزیعهای لینوکس، سیستمهای مدیریت بسته آنها است. پکیج منیجرها در لینوکس به شما این امکان را می دهند که نصب نرم افزار را به صورت خودکار انجام دهید و تنها با چند دستور کار را انجام دهید.
بر خلاف سایر مدیران بسته، اسنپ ویژگی های مدیریت وابستگی خوبی دارد. اما یک هشدار وجود دارد، بستههای اسنپ بسیار حجیم هستند و فضای دیسک زیادی را مصرف میکنند. خوشبختانه، پاک کردن بسته های اسنپ در لینوکس آسان است.
چرا بسته های اسنپ حجیم هستند؟
مدیریت وابستگیهای نرمافزاری مدتهاست که پاشنه آشیل مدیران بسته لینوکس بوده است. وابستگی نرم افزاری به معنای زمانی است که یک نرم افزار برای کارکرد صحیح به بسته ها یا کتابخانه های دیگر متکی است.
اسنپ روشی رادیکال برای مدیریت وابستگیها در لینوکس معرفی کرد: نرمافزار بسته و وابستگیهای آن در یک بسته واحد که به نام اسنپ شناخته میشود.
با این حال، ترکیب همه وابستگیها و نرمافزار اصلی در یک بسته واحد منجر به نرمافزار نسبتاً بزرگتری در مقایسه با سایر مدیران بستهها مانند APT، Pacman و غیره میشود.
یکی دیگر از دلایل بسته های حجیم اسنپ این است که قرار است اسنپ ها پس از به روز رسانی نرم افزار به نسخه قبلی برگردند. هر دو نسخه نرم افزار فعلی و قبلی بر روی رایانه لینوکس شما ذخیره می شوند، که به معنای عکس گرفتن است که فضای دیسک زیادی را مصرف می کند.
در اینجا نحوه پاکسازی بسته های Snap و بازیابی فضای گرانبها در دیسک آورده شده است.
1. بسته های بازگشتی را حذف کنید
همانطور که قبلاً اشاره شد، یکی از ویژگیهای منحصر به فرد بستههای اسنپ، امکان بازگشت آسان به نسخه قبلی هر بسته نرمافزاری است که از طریق اسنپ نصب شده است. برای رسیدن به این هدف، هر زمان که یک بسته اسنپ را به نسخه جدید به روز می کنید، نرم افزار قدیمی همچنان در رایانه شما نگهداری می شود.
برای لیست کردن تمام بسته های اسنپ نصب شده از جمله نسخه های برگشتی آنها، دستور زیر را اجرا کنید:
snap list --all
همانطور که می بینید، از خروجی قبلی، برخی از بسته ها دو بار لیست شده اند. به عنوان مثال، بسته canonical-livepatch دو نسخه دارد، یکی غیرفعال و دیگری فعال است. نسخه غیرفعال شده نسخه قبلی این بسته است که می توانید به آن برگردید. از آن استفاده نمی شود، به معنای واقعی کلمه فقط در آنجا فضای دیسک را مصرف می کند.
برای حذف نسخه های قبلی یا غیرفعال شده بسته اسنپ، می توانید از شماره Rev استفاده کنید. در این حالت، شماره Rev بسته غیرفعال شده canonical-livepatch 229 است، بنابراین می توانید دستور زیر را برای حذف آن اجرا کنید:
sudo snap remove canonical-livepatch --revision=229
به یاد داشته باشید که نام بسته و شماره ویرایش را در دستور بالا جایگزین کنید.
2. بسته های اسنپ استفاده نشده را حذف کنید
گاهی اوقات، شما باید تمام اسنپ های نصب شده روی رایانه شخصی خود را با استفاده از دستور زیر فهرست کنید:
sudo snap list
به دنبال بسته هایی که استفاده نمی کنید از خروجی بگردید و با استفاده از:
sudo snap remove package_name
با استفاده از دستور du، به طور منظم بر میزان فضای دیسکی که بسته ها مصرف می کنند نظارت کنید. اسنپ ها بیشتر در فهرست اصلی شما در پوشه snap ذخیره می شوند.
du -h ~/snap
3. وابستگی های بسته استفاده نشده را حذف کنید
اگرچه اسنپ در مدیریت وابستگی ها بسیار خوب عمل می کند، اما چالش این است که در برخی موارد وابستگی های بیشتری نسبت به نیاز نصب می کند، که منجر به اشغال فضای دیسک بسته ها می شود.
برای کنترل دقیق بر وابستگی های نرم افزاری، باید از مدیر بسته پیش فرض توزیع خود استفاده کنید. برای حذف بسته های استفاده نشده می توانید از دستورات زیر استفاده کنید:
در توزیعهای لینوکس مبتنی بر دبیان:
sudo apt autoremove
در توزیعهای مبتنی بر RHEL:
sudo dnf autoremove
در توزیعهای لینوکس مبتنی بر Arch:
sudo pacman -Rns $(pacman -Qdtq)
دستور قبلی، بسته به توزیع شما، یک درخت وابستگی ایجاد میکند و وابستگیهای بستهای را که سیستم شما مورد نیاز نیست حذف میکند.
4. در صورت امکان از یک مدیر بسته دیگر استفاده کنید
بیایید با آن روبرو شویم، عکسها زیبا هستند. اما اگر روی دستگاهی با فضای دیسک محدود هستید، میتوانید از یک مدیریت بسته جایگزین مانند APT، Pacman یا DNF استفاده کنید.
ابتدا بسته را با استفاده از دستور sudo snap remove package_name حذف کنید و سپس بسته را با استفاده از APT یا مدیریت بسته پیش فرض خود دوباره نصب کنید.
در توزیعهای لینوکس مبتنی بر دبیان:
sudo apt install package_name
در RHEL، اجرا کنید:
sudo dnf install package_name
در توزیعهای لینوکس مبتنی بر Arch، از:
sudo pacman -S package_name
به یاد داشته باشید که بسته_name را در دستور با نام بسته واقعی جایگزین کنید.
توجه داشته باشید که برخی از بسته های نرم افزاری فقط به عنوان بسته های اسنپ ارائه می شوند. بنابراین حتی اگر از مدیر بسته پیشفرض در پسزمینه استفاده کنید، باز هم از Snap برای نصب آن استفاده میکند. به عنوان مثال، مرورگر فایرفاکس در اوبونتو. حتی اگر از APT استفاده کنید، بسته فایرفاکس اسنپ را نصب می کند.
بسته های اسنپ عالی هستند، اما حجیم هستند!
بسته های اسنپ علیرغم حجیم بودن، دارای مزایای بسیاری مانند مدیریت وابستگی و امنیت بهتر است. علاوه بر این، بسته های اسنپ به طور جهانی با تمام توزیع های اصلی لینوکس سازگار هستند.