بستههای فلتپک و اسنپ الآن بسیار محبوب هستند بین کاربران لینوکسی که ترجیحشان برنامههای بومی یا AppImage نیست. این به دلیل آسانی استفاده، تطابق با فروشگاههای نرمافزار سیستمعاملها و راحتی در دریافت بروزرسانیها است. در این بستهها دیگر نگران درباره پیشنیازهای برنامهها هنگام نصب نیستید. امنیتشان هم به دلیل سندباکس و ایزوله کردن برنامهها هم مزید بر علت میشود.
با توجه به مزایای این دو، تفاوتهایشان چیست؟ چه موضوعاتی را در مقایسه این دو باید لحاظ کنیم؟ در این نوشته ما تفاوتهای این دو نوع بسته را بررسی میکنم تا به شما برای انتخاب یکی از این دو کمک کنم.
اسنپ توسط کنونیکال ساخته شده است برای توسعه برنامههای IoT. هدف از اسنپ، تشویق توسعهدهندگان برای آپدیتهای زیاد و همچنین تسهیل نگهداری نرمافزارها نسبت به مخازن deb است. در نهایت، اسنپ راه خود را به برنامههای میزکار و برنامههای GUI باز کرد.
برای بررسی تاریخ اسنپ میتوانید از این نوشته استفاده کنید.
فلتپک توسط الکساندر لَرسون در ردهت ساخته شده است. فلتپک یک پروژه مستقل متنباز است؛ به همین دلیل توسعهدهندگان برجستهی گنوم، فدورا و ردهت در توسعه آن نقش دارند.
هدف از ساخت فلتپک، تسهیل توزیع برنامهها در توزیعهای مختلف گنوست. در ابتدا با نام xdg-app شناخته میشد و بعدا در سال ۲۰۱۶ به فلتپک تغییر نام یافت.
برای دریافت اطلاعات بیشتر درباره تاریخ فلتپک میتوانید از این نوشته بهره ببرید.
هر یک از این دو نوع بسته، ویژگیهای خود را دارند. شما میتوانید با توجه به نیازتان بین این دو انتخاب کنید. مهم است که بدانید به هرکدام از آنها چرا نیاز دارید.
فلتپک تنها برای رایانههای ورکاستیشن ساخته شده تا بتوانند برنامههای میزکار را اجرا کنند. درحالیکه اسنپ برای استفاده در سمت سرور و برنامههای غیرگرافیکی و تخت کنسول نیز کاربرد دارد. به عنوان مثالUbuntu core سیستمعاملی برای IoT است که از بستههای اسنپ استفاده میکند تا امنیت و بروزرسانی سروقت را محقق کند. ولی فلتپک برای چنین اهدافی استفاده نمیشود زیرا ذات دلیل ساختش متفاوت است.
بستههای اسنپ مشهور هستند به شروع کندتر نسبت به فلتپک. کنونیکال مدتی روی این مشکل کار کرده است ولی در زمان نوشتن این متن، فعلا این مشکل موجود است.
البته ممکن است هر کاربری متوجه تفاوتی بزرگ بین این دو نشود. علیرغم اینکه در کل این زود یا دیر باز شدن برنامه نسبت به برنامههای مختلف، متفاوت است ولی درکل سرعت شروع شدن برنامههای فلتپک بیشتر است از اسنپ.
بازدهی برنامه به پایداری و ویژگیها و قابلیتهایی که ارائه میدهد بستگی دارد. در نتیجه برخی برنامهها پرفورمنس بهتری در اسنپ و برخی در فلتپک دارند.
مثلا نسخه فلتپک «جعبههای گنوم»، از ویژگی اشتراکگذاری دستگاه پشتیبانی نمیکند درحالیکه نسخه اسنپ از این قابلیت پشتیبانی میکند. ولی چنین اتفاقاتی به صورت عکس هم اتفاق میافتند که نسخه اسنپ بدتر از نسخه فلتپک باشد.
بطور کلی شما باید برنامه مورد نظر خود را در هرکدام تست کنید تا نتیجه بگیرید. دادن گزاره کلی برای این قضیه درست نیست.
در مقابل اسنپ، فلتپک موقعیت بهتری در زمینه دارا بودن تعداد برنامههای کاربری دارد. به همین دلیل توزیعهای مثل مینت، دارای اسنپ غیرفعال هستند درحالیکه فلتپک آنها فعال است. توزیعهایی مثل Pop!OS و اوبونتو میت هم همچنین.
ولی اسنپ بیشتر محبوب اوبونتو و خانواده آن (مثل زوبونتو، کوبونتو و …) است. طوریکه به مدتی پیش فایرفاکس و به تازگی تلگرام در اوبونتو از مخازن اصلی به اسنپ منتقل شده است.
فلتپک کاملا متنباز است. ولی برای اسنپ نمیتوان با یک کلمه پاسخ داد. هسته اسنپ یه پروژه متنباز است، از جمله snapd، سرویسی که نصب و اجرای برنامهها را مدیریت میکند؛ ولی بکاند اسنپ مالکیتی است و تحت کنترل کنونیکال است.
فلتپک کاملا متنباز است و رویکردی کاملا غیرمتمرکز را در پیش گرفته. فلتپک مخزنی بنام فلتهاب دارد که اکثر برنامههای مورد نیاز در آن قرار دارند ولی شما میتوانید از مخازن دیگری نیز استفاده کنید و یا حتی مخزنی برای فلتپک بسازید. ولی در اسنپ شما محدود به فروشگاه کنونیکال هستید.
بستههای اسنپ بطور پیشفرض، بصورت خودکار بروزرسانیها را دریافت میکنند. کاربر میتواند تعیین کند که چه زمانی بروزرسانی انجام شود. همچنین میتواند بستههایی را انتخاب کند که بروزرسانیشان به تاخیر بیافتند.
در مقابل، بستههای فلتپک بطور خودکار بروزرسانی را دریافت نمیکنند. اگر فروشگاه برنامه شما (مثل دیسکاور در KDE)، با فلتپک یکپارچه شده باشد، اعلان بروزرسانیها را دریافت میکنید ولی باید دستی بروزرسانی را انجام دهید. با فلتپک شما کنترل بیشتری روی بستهها دارید ولی برخی کاربران بروزرسانی آنها را فراموش میکنند و از قابلیتهای جدید و رفع باگها محروم میشوند.
فلتپک برای نصب برنامهها نیازی به مجوز ریشه (root privilege) ندارد؛ ولی اسنپ به این دسترسی نیاز دارد.
فلتپک بطور پیشفرض قابلیت سندباکس را فعال کرده است. یعنی مثل iOS، برنامهها را در یک محیط ایزوله میکند تا امنیت حفظ شود و دسترسی به برنامه از دیگر مکانها و دسترسی برنامه به دیگر مکانها قطع شود. فلتپک از قابلیت namespaces کرنل لینوکس استفاده میکند درحالیکه اسنپ از AppArmour استفاده میکند.
در بررسی انجمنها و ردیت قبل از نوشتن مقاله، به نکات جالبی در نگاه توسعهدهندگان برخوردم:
برای دریافت اطلاعات فنی بیشتر، مستندات برای شروع عالی هستند.
شما کدام را ترجیح میدهید؟ من به شخصه به فلتپک علاقه دارم.
منبع: https://itsfoss.com/flatpak-vs-snap