۱. دیستروباکس (Distrobox):
قبلا تو این پست یک مقدار راجع بهش نوشته بودم:
لینکبه نظر من Distrobox دقیقاً همون شکافی که بین مخازن رسمی، فلتپک و اسنپ وجود داشت برای کاربران با نیازهای خاص پر کرد. این ابزار فوقالعاده است، خیلی روان کار میکنه و با اصل «سیستم خود را خراب نکنید» همسو است.
دیستروباکس کنترل عمیقی روی برنامهها به شما میده؛ حتی اجازه میده کانتینری با دسترسی root بسازید یا کلاً اون رو در حالت ایزوله نگه دارید. اگرچه دیستروباکس بیشتر یک ابزار تخصصی برای توسعهدهندگان (Developers) به حساب میاد، اما برای نصب برنامههایی که نیاز به نصب سیستمی دارند ولی در پکیجمنیجر اصلی سیستم شما نیستند بسیار کاربردیه.
سناریوهای کاربردی دیستروباکس:
نصب پکیجهای .deb یا .rpm (با دستور dpkg / rpm): من به شخصه به هیچ عنوان نصب مستقیم فایلهای .deb یا .rpm متفرقه رو روی سیستمعامل اصلی نمیپسندم؛ چون احتمال تداخل کتابخانهها یا عدم پاکسازی کاملشون وجود داره. اما نصب این فایلها داخل کانتینر دیستروباکس فوقالعاده است!
مثال واقعی: من خودم نرمافزار Cherry Studio (نسخه .deb) رو داخل یک کانتینر دبیان ۱۳ در دیستروباکس نصب کردم و به راحتی و بدون هیچ مشکلی از اون تو توزیع فدورا استفاده میکنم.
زنده کردن نرمافزارهای قدیمی یا متروکه (Legacy Software): اگر به نرمافزاری نیاز دارید که چند سال پیش توسعهاش متوقف شده، احتمالاً روی فدورای جدید شما اجرا نمیشه چون به کتابخانههای قدیمی نیاز داره. با دیستروباکس میتونید یک کانتینر از اوبونتو ۱۸.۰۴ بسازید؛ برنامه از کتابخانههای قدیمی داخل کانتینر استفاده میکنه اما روی هسته (Kernel) جدید سیستم اصلی شما با حداکثر سرعت اجرا میشه!
عبور از محدودیتهای ایزولهسازی فلتپک: برخی برنامههای پیچیده (مثل برنامههای مبتنی بر الکترون یا ابزارهایی که نیاز به دسترسی عمیق به ترمینال و فایلهای سیستمی دارند) داخل محیط ایزوله (Sandbox) فلتپک کار نمیکنند یا کُند میشوند. دیستروباکس دسترسی سیستمی و عملکرد نیتیو (Native) رو به این برنامهها میده.
دور زدن محدودیتهای شبکه و مدیریت میرورها: فرض کنید دسترسی به اینترنت بینالملل محدود شده و به یک پکیج خاص نیاز دارید، اما توزیع شما میرور داخلی نداره یا نمیخواید به کانفیگهای شبکه سیستم اصلی دست بزنید. کافیه میرور داکر را برای دریافت ایمیجهای دیستروباکس تنظیم کنید. سپس داخل کانتینر ساختهشده هر میروری خواستید اضافه و ادیت کنید. اگر همه چیز بههم ریخت، خیلی راحت کل کانتینر را پاک میکنید، بدون اینکه سیستم اصلی آسیبی ببیند!
۲. اپایمیج (AppImage)
فایلهای AppImage بیشتر برای امتحان کردن یک برنامه یا داشتن یک نسخه پرتابل (Portable) عالی هستند تا استفاده مداوم روزمره.
مزایا: بینهایت برای تست سریع مناسبند. مثلاً زمانی که میخواید روی نسخه لایو (Live) یک توزیع کار کنید، یا برنامهای رو سریع بین چند ماشین مجازی (VirtualBox) اجرا کنید بدون اینکه حجم سنگین اولیه فلتپک یا دردسر نصب سیستمی رو تحمل کنید.
معایب: آپدیتها باید به صورت دستی انجام بشن. همچنین ممکنه با برخی سیستمها مشکل اجرا داشته باشند. بعلاوه، خیلی از نرمافزارهایی که در سالهای اخیر منتشر شدهاند کلاً نسخه AppImage ارائه نمیدهند.
۳. نسخههای باینری لینوکس (Executable Binaries)
همون روش معروف اعطای دسترسی اجرا با دستور chmod +x و سپس اجرای فایل با .yourapp/...
این روش هم تا حد زیادی شبیه AppImage حس یک برنامه پرتابل رو میده. من برای برنامههای مختلفی از این روش استفاده میکنم:
کلاینتهای v2ray مثل Throne
ابزار کامپایل اسناد ConTeXt (بدون نیاز به کامپایل سنگین یا نصب از طریق Snap)
ابزار scrcpy (برای کنترل گوشی در لینوکس)
ویژگیهای این روش:
این روش بهخصوص برای پروژههای open-source موجود در گیتهاب (GitHub) عالیه. شما بدون کثیف کردن سیستم به جدیدترین نسخه برنامه با عملکرد کامل دسترسی دارید و هر زمان برنامه رو نخواستید، کافیه فول더ش رو پاک کنید.
چند نکته مهم موقع استفاده از باینریها:
فایلهای تنظیمات: با اینکه برنامه پرتابل است، اما فایلهای کانفیگ خود رو معمولاً در مسیر Home/ قرار میده.
احتیاط در اجرا با sudo: اگر برنامهای برای اجرا به دسترسی روت نیاز داره، حتماً بررسی کنید که قراره چه تغییری در سیستم ایجاد کنه.
مثال: در برنامههای v2ray اگر حالت TUN Mode فعال باشه و سیستم ناگهانی ریستارت بشه، اینترنت معمولی سیستم قطع میشه! برای حلش باید دوباره برنامه رو باز کنید و TUN Mode رو غیرفعال کنید.
کتابخانههای پیشنیاز: این باینریها برای اجرا به یکسری کتابخانههای پایه روی سیستم شما نیاز دارند. اگر برنامهای اجرا نشد، حتماً اون رو از طریق ترمینال با دستور yourapp./ اجرا کنید تا دقیقاً ببینید کمبود چه پکیج یا کتابخانهای باعث اجرا نشدنش شده.
۴. محیطهای مجازی پایتون (venv.) و ابزارهای جدید
شاید بپرسید محیط مجازی پایتون چه ربطی به نصب برنامه روی سیستمعامل داره؟ ربطش جلوگیری از بریک شدن سیستم است!
بسیاری از پکیجمنیجرهای مهم توزیعها (مثل dnf در فدورا) شدیداً به کتابخانههای داخلی پایتون وابسته هستند. اگر شما بیایید و کتابخانههای جانبی پایتون رو به صورت سراسری (Global) با دستورات قدیمی مثل pip نصب یا آپدیت کنید، یک ناسازگاری کوچک در نسخه کتابخانهها میتواند پکیجمنیجر و در نهایت کل سیستمعامل شما رو از کار بیندازد!
راهحل: همیشه برای پروژهها و برنامههای پایتونی از محیط مجازی (venv.) استفاده کنید.
یک پیشنهاد بهروز: به جای ابزار قدیمی pip سراغ ابزار فوقالعاده سریع و جدید uv بروید. اگر میخواید برنامهها و محیطهای پایتونی رو مدام جابهجا کنید، uv کار رو بینهایت راحتتر و امنتر میکنه.