دیستروباکس

دیسترو‌باکس (Distrobox) یک لایه‌ی پوششی روی کانتینرها است (Container wrapping layer) که به کاربر اجازه می‌دهد نسخه‌های کانتینری‌شده‌ای از توزیع‌های مختلف لینوکس را درون سیستم‌عامل میزبان نصب و اجرا کند. دیسترو‌باکس با ایجاد یک تلفیق و یکپارچگی عمیق با سیستم میزبان، امکان اجرای برنامه‌های ساخته‌شده برای یک توزیع را روی توزیع دیگر فراهم می‌سازد.

خود دیسترو‌باکس یک مدیریت‌کننده‌ی کانتینر (Container Manager) نیست و برای ساخت و مدیریت کانتینرها به Podman یا Docker متکی است.

طبق مستندات رسمی دیستروباکس:

«هر توزیع لینوکسی را مستقیماً درون ترمینال خود استفاده کنید. با این ابزار، سازگاری رو به عقب و رو به جلو (Backward/Forward Compatibility) برای نرم‌افزارها و همچنین آزادی عمل در استفاده از هر توزیعی که با آن راحت‌تر هستید فراهم می‌شود. دیسترو‌باکس از Podman یا Docker برای ساخت کانتینر بر پایه توزیع دلخواه شما استفاده می‌کند.
کانتینر ساخته‌شده به‌طور کامل با سیستم میزبان یکپارچه می‌شود؛ این یکپارچگی شامل اشتراک‌گذاری پوشه $HOME کاربر، حافظه‌های خارجی، دستگاه‌های USB، برنامه‌های گرافیکی (X11/Wayland) و سیستم خروجی صدا است.»

ملاحظات امنیتی

هدف اصلی دیسترو‌باکس ایزوله‌سازی و ایزوله نگه‌داشتن (Sandboxing) کانتینرها از سیستم میزبان نیست. کانتینرهایی که درون دیسترو‌باکس اجرا می‌شوند دسترسی کامل به پوشه‌ی خانگی (HOME) و برخی از بخش‌های دیگر سیستم شما دارند.

توصیه می‌شود به جای Docker از Podman استفاده کنید؛ زیرا داکر به‌صورت پیش‌فرض کانتینرها را با دسترسی Root اجرا می‌کند و کانتینرهای Rootful دسترسی بدون محدودیت به فایل‌سیستم میزبان خواهند داشت.

روش‌های نصب

با دسترسی Root

ابتدا باید یکی از ابزارهای podman یا docker را روی سیستم خود نصب کنید.

نصب docker :

sudo pacman -S docker

نصب podman :

sudo pacman -S podman

سپس بسته distrobox یا distrobox-git را از AUR (مثلاً با استفاده از دستیار paru) نصب نمایید.

sudo pacman -S distrobox

بدون دسترسی Root

اگر دسترسی Root به سیستم ندارید یا از یک توزیع غیرقابل‌تغییر (Immutable) استفاده می‌کنید، امکان نصب Distrobox درون پوشه‌ی خانگی (HOME) وجود دارد. این روش نیازمند اجرا از طریق اسکریپت آنلاین (curl-to-sh) است که به دلیل مخاطرات امنیتی، یک روش نصب رسمی و پشتیبانی‌شده محسوب نمی‌شود.

دستورالعمل‌های این روش را می‌توانید در صفحه مستندات رسمی Distrobox پیدا کنید.

نحوه استفاده (Usage)

نکته: در تمام دستورات زیر، عبارت name یک متغیر است و می‌توانید نام دلخواه خود را جایگزین آن کنید.

برای مشاهده لیست کامل گزینه‌های هر دستور از پرچم help-- استفاده کنید (مثلاً distrobox create --help).

لیست کامل توزیع‌های پشتیبانی‌شده به همراه نام ایمیج آن‌ها در سایت رسمی Distrobox موجود است.

    برای کاربردهای پیشرفته‌تر به صفحه مستندات کاربری مراجعه کنید.