مدیریت بسته‌های Flatpack ،SnapCarft و AppImage در توزیع‌های لینوکسی

منبع عکس : لینکتا قبل از همه‌گیری مدیریت بسته‌های جدید، توزیع‌ها مجبور به استفاده از مدیریت بسته‌های سنتی یا کامپایل برنامه از کد منبع بودند.این کار مشکلات و دردسرهای مربوط به خود را هم برای توسعه‌دهندگان و هم برای کاربران به همراه داشت؛ از جمله نیاز هر برنامه به کتابخانه و فایل‌های پیش‌نیاز متناسب با آن برنامه که ممکن است یا در سیستم‌عامل وجود نداشته باشد و یا با سرویس‌های دیگر تداخلی نرم‌افزاری را ایجاد کند.عموماً نصب به روش سنتی احتمال شکست و خطا را همیشه داشتند و گاهی کاربر مجبور می‌شد تغییراتی در کتابخانه‌ها و سرویس‌های نرم‌افزاری ایجاد کند تا نرم‌افزار بتواند روی توزیع لینوکس مورد استفاده‌ی او نصب و اجرا شود.با ورود سیستم‌های جدید مدیریت بسته، اما همه‌چیز تغییر کرد. حال توسعه دهندگان می‌توانند بیشتر روی توسعه‌ی برنامه‌ها تمرکز کرده و با خیالی ‌آسوده‌تر آنها را منتشر کنند. از طرفی کاربران نیز می‌توانند به سادگی اقدام به نصب برنامه‌ها کرده و احتمال بروز خطا یا عدم عملکرد صحیح برنامه‌ها به شدت کاهش یافته است.در این نوشتار قصد دارم به بررسی Flatpack ،SnapCarft و AppImage در توزیع‌های لینوکسی بپردازم پس با من همراه باشید.مزایای سیستم‌های جدید مدیریت بستهقالب‌های جدید بسته‌بندی مانند Flatpack ،SnapCarft و AppImage بسته‌های بدون وابستگی و مستقل را در توزیع‌های لینوکسی ارائه می‌کنند.با این‌کار مشکلات بسته‌بندی نرم‌افزار که توسعه‌دهندگان قبلاً با آن دست و پنجه نرم می‌کردند رفع شده و حالا می‌توانند به راحتی بسته‌ی نرم‌افزاری خود را برای توزیع‌های بیشتری عرضه کنند.اکنون به جای اینکه توسعه‌دهندگان وقت خود را برای پشتیبانی از مدیریت بسته‌های مختلف صرف کنند، آن را برای توسعه‌ و بالابردن قابلیت‌های برنامه‌ی خود صرف خواهند کد.کنترل مجوزهای دسترسیبرنامه‌های مدیریت بسته‌ی جدید به کاربران قابلیت می‌دهند که دسترسی هر برنامه به فایل‌های سیستم و شخصی را مدیریت کنند.برای مثال در سیستم مدیریت بسته‌ی Snap و Flatpack می‌توانید از طریق فروشگاه نرم‌افزار توزیع‌تان یا خط‌فرمان مجوزهای مربوط به هر نرم‌افزار را بررسی و هر یک را به شکل مستقل فعال یا غیر فعال کنید.البته برنا‌مه‌هایی که به شکل AppImage ارائه می‌شوند شامل این قابلیت نیستند اما توسعه‌دهندگان گفته‌اند که در آینده ممکن است سیستم کنترل مجوزی به سبک اندروید در این سیستم مدیریت بسته ارائه شود.شما با نوشتن این دستور در خط‌فرمان می‌توانید مجوزهای دسترسی هر برنامه را مشاهده کنید :Snap :snap connections chromiumFlatpack :flatpak info --show-permissions org.kde.Platform*توضیح : به جای chromium و org.kde.Platform می‌توانید نام بسته‌ی مدنظر خود را بنویسید.برای مشاهده‌ی لیست بسته‌های نصب شده از این دستور استفاده کنید :Snap :snap listFlatpack :flatpak listبرای دیدن سایر دستورات این سیستم‌ها می‌توانید به مستندات آنها مراجعه کنید.ایزوله کردن و قابلیت Sandboxingهر سه سیستم مدیریت بسته از قابلیت Sandboxing پیشتیبانی می‌کنند. در واقع Sandbox محیطی ایزوله و کاملاً مستقل از فایل سیستم اصلی سیستم‌عامل است که به برنامه‌ها قابلیت اجرای امن را می‌دهد.در این روش هرگونه تعامل برنامه با سیستم‌عامل با استفاده از APIها و کنترل‌های مجاز و محدود شده انجام می‌شود. همچنین همانطور که قبلاً گفته شد برخی از این مجوز‌ها توسط کاربر انتخاب می‌شوند.بر خلاف مدیریت بسته‌های قدیمی، در سیستم‌های جدید مدیریت بسته برنامه‌ها هیچ دسترسی مستقیمی به فایل‌سیستم ندارند و همین باعث می‌شود به شکل امن اجرا شده و یا از آسیب رسیدن به فایل‌سیستم یا شلوغ شدن بی‌خودی آن که باعث کاهش پرفورمنس‌نهایی می‌شود جلوگیری به عمل ‌آید.پشتیبانی از Themeهای بومی سیستم‌عاملهر سه سیستم مدیریت بسته از ظاهر و Themeهای بومی استفاده شده در سیستم‌عامل (GTK و QT) پشتیبانی می‌کنند.البته محدودیت‌هایی وجود دارد، به عنوان مثال Snap و Flatpack نیاز دارند که تم‌ها در سیستم بسته‌بندی آنها موجود باشند. برای همین اگر از Themeها و قالب‌های شخصی سازی شده استفاده می‌کنند احتمالاً ممکن است روی برنامه‌هایی که از این طریق نصب می‌کنید اعمال نشوند.قابلیت پرتابل بودن برنامهبر خلاف دو سیستم Snap و Flatpack، بسته‌های AppImage یک فایل اجرایی مستقل هستند که می‌توانید به راحتی آنها را هر جایی به اشتراک بگذارید و یا از هر پوشه‌ای که مدنظرتان است اجرا کنید.هرچند که می‌توان برنامه‌هایی که در Snap و Flatpack وجود دارند را قابل حمل کرد اما روش انجام این کار کمی دردسر دارد و نیاز به تایپ چندین دستور در خط‌فرمان است.به‌روز رسانی خودکاربرنامه‌هایی که از طریق Snap و Flatpack نصب شده‌اند از آنجایی که از طریق یک سیستم مدیریت بسته‌ی متمرکز نصب شده‌اند می‌توانند به شکل مستقل و بدون دخالت کاربر به‌روز رسانی شوند.متاسفانه بسته‌های AppImage فاقد چنین ویژگی هستند و کاربر باید به شکل دستی بسته‌های جدید را دانلود و جایگزین بسته‌های قبلی کند.حجم برنامه‌هادر حال حاضر برنامه‌هایی که توسط AppImage ارائه می‌شوند به دلیل تک فایل بودن و فشرده‌سازی، کمترین حجم ممکن را در بین هر سه سیستم مدیریت بسته دارند.اندازه‌ی برنامه‌ها در Snap و Flatpack از برنامه‌ای تا برنامه‌ی دیگر بسیار متفاوت است و به سختی می‌توان یک مقایسه‌ی درست بین آنها داشت.اما برای مرجع در زمان نگارش این مطلب برنامه‌ی InkScape در قابل AppImage حدود ۹۸ مگابایت، در Snap حدود ۱۸۳ مگابایت و در Flatpack حدود ۱۰۹ مگابایت حجم دارد.سخن پایانیسیستم‌های جدید مدیریت بسته هم برای توسعه‌دهندگان و هم برای کاربران یک وضعیت بُرد-بُرد ایجاد کرده‌اند.این قالب‌ها برخلاف سیستم‌هایی مثل مدیریت نصب بسته‌های Deb و RPM و مشابه آن، امکان انتشار سریع نرم‌افزار در توزیع‌های مختلف را به سادگی هرچه تمام‌تر فراهم آورده‌اند و حتی باعث شده‌اند توسعه‌دهندگانی که به خاطر سیستم‌های مدیریت بسته‌ی قدیمی از لینوکس دروی کرده‌اند دوباره ترغیب بشوند.علاوه بر توزیع‌های قدیمی‌تر مانند اوبونتو و فدورا و... که چند سالی است شروع به پشتیبانی از سیستم‌های مدیریت بسته‌ی جدید کرده‌اند، در حال حاضر توزیع‌های جدید مثل rlx OS وجود دارند که به شکل کلی از Flatpack ،Snap و AppImage پشتیبانی می‌کند و این نشان می‌دهد که توزیع‌ها به سرعت اقدام به استفاده این سه مدیریت بسته به عنوان تنها راه استاندارد نصب نرم‌افزار کرده‌ و می‌کنند.منبع : لینک