سیستم عامل لینوکس
Distrobox: چند توزیع لینوکس در 1 ترمینال

Distrobox: چند توزیع لینوکس در 1 ترمینال

Distrobox یک ابزار کاربردی است که به شما اجازه می دهد هر توزیع لینوکسی را که لازم دارید در داخل ترمینال لینوکس فعلی خود اجرا کنید. البته بدون دست زدن به ساختار لینوکس فعلی.

هدف Distrobox: چند توزیع لینوکس در 1 ترمینال است که دست یافتن به آن به ساده ترین شکل ممکن قابل انجام است.

به عنوان نمونه، لینوکسی که فقط در آن ابزار AUR موجود باشد و شما از طریق سیستم اوبونتوی دسکتاپ خود به آن دسترسی داشته باشید. Distrobox این راحتی می تواند شما را به این هدف برساند.

بنابراین، Distrobox چیست؟

Distrobox: چند توزیع لینوکس در 1 ترمینال
Distrobox: چند توزیع لینوکس در 1 ترمینال

Distrobox یک روکش برای podman یا داکر (هر کدام که شما دوست دارید) است. ابزار Distrobox برای شما کانتینرها را یکپارچه می کند، بگونه ای که شما فکر می کنید یک نرم افزار بومی روی بستر اوبونتوی فعلی خود نصب کرده اید.

بطورخلاصه:

Distrobox راهی است برای کانتینرایز کردن نرم افزار های مورد نیاز. حال ممکن است این نرم افزار روی توزیع خاصی نصب باشد و امکان راه اندازی آن روی توزیع فعلی نباشد. با این اوصاف در نهایت ما نرم افزار مورد نظر را به صورت کاملا native یا بومی در اختیار خواهیم داشت.

بهترین نکته ای که در رابطه با این تکنولوژی می توان بیان کرد این است که، شما می توانید محیط برنامه نویسی خود را بدون دسترسی root ایجاد کنید.

شما برای استفاده از ابزارها نیاز نیست هاست خود رو عوض کنید زیرا که نرم افزار در بهینه ترین حالت ممکن و مطابق پایدار ترین پلتفرم ممکن نصب شده است. در نتیجه شما در پس زمینه و درمحیط کاملا ایزوله نرم افزتر مورد نظر را مستقر کرده اید و به شکل کاملا دسترس پذیر (در محیط کاربری خود) آن را استفاده می نمایید.

ویژگی های Distrobox

ویژگی های Distrobox
ویژگی های Distrobox

اکنون که ایده وجود Distrobox را مطرح کردیم، به طور کلی میدانید که چه کارهایی می توان توسط Distrobox انجام داد؟

بررسی نکات کلیدی Distrobox بطور خلاصه:

  1. امکان ایجاد یک محیط آزمایشی برای ایجاد تغییرات بدون تأثیر بر توزیع میزبان شما.
  2. یک محیط توسعه که به دسترسی های sudo نیاز ندارد می تواند برای کار شما انعطاف پذیر باشد.
  3. روشی آسان برای مدیریت چندین محیط
  4. پشتیبانی از توزیع های مختلف

چگونه Distrobox را نصب کنیم؟

برای نصب Distrobox ابتدا باید پیشنیاز های آن را فراهم نمود. بدین منظور باید podman یا داکر را نصب کرده باشید. توصیه می کنم اگر توزیع لینوکسی نسبتاً مدرنی دارید، podman را از مخازن نرم افزار خود نصب کنید. در غیر این صورت، docker را نصب کرده و مراحل ذکر شده در زیر را دنبال کنید.

در زمان نوشتن این مقاله، Distrobox در مخازن توزیع های زیر موجود است:

  1. Arch Linux (AUR)
  2. EPEL 8 و
  3. Fedora 34 و بالاتر
  4. Ubuntu 22.10 و بالاتر

همانطور که ممکن است متوجه شده باشید، آخرین نسخه اوبونتو که برای عموم در دسترس است، اوبونتو 22.04 است. توزیع های زیادی هنوز Distrobox را بسته بندی نکرده اند.

اگر آن را در مخازن توزیع لینوکس خود پیدا نکردید، می توانید دستور زیر را برای نصب Distrobox استفاده کنید:

curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh

دستور بالا یک اسکریپت پوسته را دانلود کرده و با دسترسی های superuser اجرا می کند. اگر خودتان نمی‌توانید منبع را تأیید کنید، در زیر دستوری وجود دارد که می‌توانید بدون نگرانی در مورد اعطای دسترسی superuser به یک اسکریپت ناشناخته از آن استفاده کنید.

curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --prefix ~/.local

اکنون که Distrobox را نصب کرده اید، بیایید به چند نمونه از کاربردهای آن بپردازیم.

شروع کار با Distrobox

داشتن یک پیچ گوشتی در جعبه ابزار خود اما هرگز استفاده نمی کنید، مهارت شما را بهبود نمی بخشد. بنابراین بیایید تا به چند دستور اساسی برای استفاده از Distrobox، کارهایی که آنها انجام می دهند و موارد دیگر اشاره کنیم.

شاید کار کردن با لینوکس کمی مشکل به نظر برسه. ولی با یادگیری لینوکس به عنوان یک هکر می توانید از کار با این محیط لذت ببرید.

لینوکس مقدماتی برای هکرها
لینوکس مقدماتی برای هکرها

1. یک کانتینر جدید ایجاد کنید

یک “کانتینر” در اینجا به یک نرم افزار کانتینری مانند nextcloud، syncthing و … اشاره نمی کند، بلکه به یک سیستم عامل اشاره دارد.

دستور ایجاد یک کانتینر جدید به شرح زیر است:

distrobox-create --name CONTAINER-NAME --image OS-NAME:VERSION

در اینجا، می‌توانید موارد زیر را مشخص کنید:

  1. نام کانتینر خود با CONTAINER-NAME
  2. نام سیستم‌عاملی که می‌خواهید استفاده کنید با OS-NAME
  3. نسخه سیستم‌عاملی که می‌خواهید استفاده کنید با VERSION

بیایید نگاهی به نحوه ایجاد یک کانتینر جدید برای Fedora 36 با نام “fedoraonwebyar” بیندازیم. با دستور زیر این کار را انجام خواهم داد:

distrobox-create --name fedoraonwebyar --image fedora:36

همچنین می‌توانید «36» را با «latest» جایگزین کنید، بدین طریق آخرین نسخه سیستم عاملی مورد نظر برای شما فراهم خواهد شد.

این دستور فقط طول می کشد تا image کانتینر فدورا 36 را دانلود کنید.

پس از اتمام فرآیند، پیامی دریافت خواهید کرد که به شما اطلاع می دهد که کانتینر ساخته شده است.

ایجاد کانتینر جدید در distrobox
ایجاد کانتینر جدید در distrobox

2. اجرا و ورود به کانتینر

اجرای یک کانتینر و ورود به سیستم عامل آن و دسترسی به آن جزو ضروریات ادامه کار است.

بدین منظور، از دستور ‘distrobox-enter’ استفاده کنید. سینتکس آن مانند زیر است:

distrobox-enter CONTAINER-NAME

هنگامی که کانتینر برای اولین بار راه اندازی می شود، Distrobox یک راه اندازی اولیه خودکار برای نصب چند کانتینر، تنظیم mount ها، قالب ها، آیکون ها، فونت ها، گروه ها، کاربران و موارد دیگر را ایجاد می کند.

بر اساس قدرت پردازش کامپیوتر شما، امکان دارد کمی زمانبر باشد. لطفاً برای اولین باربرای زمان تقریبی 15 دقیقه صبور باشید.

پس از تکمیل توسط شما، به طور خودکار در پوسته کانتینر آزاد خواهد شد.

اجرا و ورود به کانتینر distrobox
اجرا و ورود به کانتینر distrobox

ورود به کانتینر نصب شده توسط Distrobox توسط خود Distrobox انجام میشود. چرا که خود Distrobox این اقدام را انجام داده است.

اگر با دقت نگاه کنید، قبلاً، زمانی که من فرمان «distrobox-enter» را اجرا کردم، نام میزبان نشان داده شده در فرمان من «webyar» بود(در هنگامی که راه اندازی اولیه). اکنون من در پوسته ای با نام میزبان متفاوتی هستم، یعنی “fedoraonwebyar”.

اجازه دهید VERSION یا نسخه سیستم عامل نصب شده روی کانتینر را در فایل /os-release’ مشاهده کنیم کنیم.

grep VERSION /etc/os-release

خروجی مشابه به زیرخواهد بود.

مشاهده نسخه سیستم عامل کانتینر distrobox
مشاهده نسخه سیستم عامل کانتینر distrobox

توصیه می کنیم به مقایسه متن نسخه (VERSION) بین اوبونتو و فدورا بپردازید.

3. نصب نرم افزار

اگر به این مرحله رسیده اید، مانند آن است که یک فدورای تازه نصب شده روی رایانه داریم و به تازگی بوت شده است.از این رو میتوانیم هرآنچه می خواهیم روی آن نصب نماییم.

دقیقا مانند ماشین مجازی، سیستم عاملی که روی کانتینر نصب شده کاملا از سیستم عامل میزبان مجزا است و برای نصب نرم افزار تنها نیاز به ابزار مدیریت بسته DNF است که این ابزار اختصاصی فدورا است.

در این مثال Foliate نصب گردید. دلیل استفادت از این ابزار این است که به تازگی برای اوبونتو نرم افزار هایی ارائه نموده است. ولی چون قبلا برای فدورا وجود داشت از این مثال استفاده کردیم تا کاربردی آن را بیان کنیم.

دستور زیر را روی کانتینر استفاده کنید تا Foliate روی فدورا نصب گردد.

sudo dnf install foliate.noarch

برای دسترسی از خارج از فدورا روی کانتینر دستور زیر را وارد کنید.

distrobox-export --app foliate

وقتی دستور distrobox-export اجرا شد میتوانید در لیست نرم افزار های اوبونتو آیکون Foliate را مشاهده کنید و از آن برای نمایش فایل های pdf استفاده نمایید.

نصب نرم افزار در distrobox
نصب نرم افزار در distrobox

جذاب نیست

4.تطبیق نرم افزار کانتینر با محیط کاربری اوبونتو

بدین منظور فایل داکیومنت دستورات کاربردی لینوکس را دانلود نمایید و در پوشه مستندات (~/Documents) ذخیره کنید.

بنظر شما چه اتفاقی می افتد؟ آیا لازم است تا فایل داکیومنت مورد نظر را در جایی دیگر (مثلا به داخل فضای کانتینر) کپی کنیم؟

همان طور که در تصویر زیر مشاهده نمایید این اتفاق می افتد. و شما لازم نیست فایل داکیومنت را به جایی کپی نمایید.

اتصال نرم افزار distrobox به محیط سیستم عامل محلی
اتصال نرم افزار distrobox به محیط سیستم عامل محلی

دقت بفرمایید، چقدر جذاب! حتی نمای محیط کاربری را هم که تغییر می دهیم اعمال میگردد. و حتی آیکون نرم افزار به درستی در سیستم عامل اوبونتو تشخیص داده می شود.

کاملا مثل نرم افزار بومی اوبونتو با سیستم تطبیق پیدا می کند.

5. مدیریت ایمیج های Distrobox

Distobox دستوراتی را برای مدیرست ایمیج ها فراهم نموده است.

اولین دستور distrobox list است. همان طور که از نام آن پیدا است لیستی از نام تمام کانتینر های نصب شده را بازگردانی می کند.

مدیریت ایمیج های Distrobox
مدیریت ایمیج های Distrobox

دستور بعدی distrobox stop است که کمک می کند تا کانتینر درحال اجرا را متوقف کنیم.

سیسنتکس آن در زیر قابل مشاهده است:

distrobox stop CONTAINER-NAME

در نهایت نیاز به حذف کانتینر ها می باشد که دستور distrobox rm نیز بدسن منظور فراهم شده است.

سیسنتکس آن در زیر قابل مشاهده است:

distrobox rm CONTAINER-NAME

برای تسلط بیشتر به جزئیات این سیستم به صفحه گیت هاب distrobox مراجعه نمایید.

مانیتور کانتینر های داکر با زبیکس

همیشه پارامتریک (بر اساس دریافت اطلاعات از سیستم) تصمیم گیری کنید. چون شما یک مهندس هستید و باید علمی برخورد کنید. دکتر ها نیز از طریق مشاهده علائمی از طرف بدن انسان (به عنوان یک سیستم پیچیده) راجع به آن تصمیم گیری می کنند و تجویز های علمی صادر می کنند.

اگر کانتینر های شما نیاز به مراقبت دارند، بهتر است شروع به آموزش زبیکس به عنوان یک سیستم جامع جهت مانیتورینگ نمایید.

Author

خسرو نظری

دانش آموخته کارشناسی ارشد فناوری اطلاعات (گرایش طراحی و تولید نرم افزار)، توسعه دهنده وب، مدیرپروژه های نرم افزاری، مدیرسیستم (sysadmin) لینوکس، مشاور مانیتورینگ و مدیر مجموعه تحلیل یار

Leave a comment

نشانی ایمیل شما منتشر نخواهد شد.