3.1.1. آمادهسازی محیط (Preparing Your Environment)
پیش از شروع مسیر خود برای موفقیت در آزمونهای بینالمللی و تسلط بر مفاهیم لینوکس، به یک «فضای یادگیری» (Learning Space) نیاز دارید. یک فضای یادگیری شامل سیستمهای لینوکسی (مجازی یا فیزیکی) است که در آن میتوانید به صورت عملی دستورات و ابزارهای مختلف لینوکس را آزمایش، تمرین و کاوش کنید. افزون بر مطالعه این کتاب، داشتن یک فضای اختصاصی برای کار آزادانه، کلید موفقیت شما خواهد بود.
ممکن است از قبل تجربه کار با لینوکس را در محیطهای شرکتی و سازمانی داشته باشید؛ اما به احتمال زیاد تنها از یک توزیع خاص استفاده کردهاید. برای تسلط واقعی و آمادگی کامل، تمرین با بیش از یک توزیع لینوکسی الزامی است.
علاوه بر این، کارفرمای شما ممکن است رفتارهای پرخطر را روی سیستمهای اصلی شرکت نپسندد! شما باید این آزادی عمل را داشته باشید که دستوراتی را که ممکن است باعث کرش کردن یا خرابی سیستم شوند، بدون نگرانی آزمایش کنید. بنابراین، داشتن یک محیط آزمایشگاهی اختصاصی که شامل توزیعهای مختلف لینوکس و ابزارهای متنوع آنها باشد، یک فاکتور کلیدی در فرآیند یادگیری شماست.
در این فصل، ابتدا به بررسی موارد مربوط به راهاندازی محیط یادگیری میپردازیم. سپس توزیعهای مختلف لینوکس را برای این فضا بررسی کرده و در پایان فصل، روشهای دسترسی به خط فرمان (Terminal) را آموزش خواهیم داد.
3.1.1.1. راهاندازی یک فضای یادگیری (Setting Up a Learning Space)
فضای یادگیری شما باید محیطی باشد که بتوانید در آن با خیالی آسوده لینوکس، توزیعهای مختلف آن (توزیع یا اصطلاحاً Distro) و ابزارهای سیستمی را کاوش کنید. اگرچه برخی شرکتها ممکن است یک سرور لینوکس اضافه و بدون استفاده را به طور کامل در اختیار شما بگذارند، اما اکثر ما چنین شانسی نداریم! حتی اگر دانشجو هستید و به یک محیط آزمایشگاهی خوب در دانشگاه دسترسی دارید، باز هم داشتن یک فضای کاملاً اختصاصی و بدون محدودیت برای کاوش، بهترین گزینه است.
اگرچه روشهای مختلفی برای راهاندازی فضای یادگیری شخصی وجود دارد، تمرکز ما در اینجا بر روی چند روش اصلی خواهد بود: راهاندازی لینوکس روی یک لپتاپ قدیمی، پیادهسازی یک محیط مجازیسازیشده (Virtualized) و استفاده از محیطهای ابری (Cloud).
3.1.1.1.1. استفاده از آن لپتاپ قدیمی (Using That Old Laptop)
اگر یک لپتاپ قدیمی یا اضافه در گوشهای افتاده است، تغییر کاربری آن به یک محیط یادگیری لینوکس میتواند گزینه بسیار خوبی برای شما باشد. این روش بهویژه زمانی مفید است که دوست دارید محیط مطالعه خود را جابهجا کنید؛ مثلاً رفتن به یک اتاق دیگر یا مکانی آرامتر در خانه، مخصوصاً زمانی که محیط خانه شلوغ و پر سر و صدا میشود. البته یک کامپیوتر رومیزی (Desktop) قدیمی نیز همین کارایی را دارد، اما انعطافپذیری و قابلیت جابهجایی آن کمتر خواهد بود.
هر سیستمی را که انتخاب میکنید، باید مطمئن شوید که ظرفیت سختافزاری کافی برای میزبانی از محیط یادگیری شما را دارد. اگر قصد دارید توزیعهای مختلف لینوکس را به صورت مستقیم روی یک سیستم سختافزاری نصب کرده و آنها را به صورت مجزا بوت کنید (بدون استفاده از محیط مجازی)، جدول زیر به عنوان راهنمای نیازمندیهای سختافزاری شما خواهد بود:
منبع سختافزاری (Resource) |
حداقل میزان لازم (Minimum) |
مقدار پیشنهادی (Recommended) |
|---|---|---|
حافظه رم (Memory) |
۲ گیگابایت (2GB) |
۴ گیگابایت یا بیشتر (4GB =<) |
فضای دیسک (Free disk space) |
۲۵ گیگابایت (25GB) |
۳۰ گیگابایت یا بیشتر (30GB =<) |
پردازنده (Processor) |
۲ گیگاهرتز دو هستهای (2GHz dual core) |
قویتر از ۲ گیگاهرتز دو هستهای (2GHz dual core <) |
توجه
اگرچه میتوانید از این نوع محیط یادگیری (سیستم فیزیکی قدیمی) استفاده کنید، اما مطمئناً ایدهآل نیست. علاوه بر محدودیت جابهجایی بین توزیعها، باید انتظار داشته باشید که این نوع محیطهای قدیمی کمی کند بوت و اجرا شوند. این روش تنها زمانی پیشنهاد میشود که گزینه دیگری در اختیار نداشته باشید.
3.1.1.1.2. ایجاد یک محیط مجازیسازی شده (Creating a Virtualized Environment)
ایجاد یک محیط مجازیسازیشده برای فضای یادگیری لینوکس، بهترین و ایدهآلترین گزینه است. این ساختار به شما اجازه میدهد تا چندین توزیع لینوکس را به صورت همزمان بوت و اجرا کنید، به سرعت بین آنها جابهجا شوید و تجربههای متفاوتی را در لحظه مقایسه کنید. علاوه بر این، در چنین محیطی میتوانید ابزارها و سناریوهای شبکه را به صورت بسیار دقیقتر و عمیقتر آزمایش و بررسی کنید.
نکته
اگر با محیطهای مجازیسازی آشنایی کافی ندارید، اصلاً نگران نباشید! نه تنها منابع بیشماری در اینترنت برای یادگیری سریع وجود دارد، بلکه ما مفاهیم پایه و پیشرفته مجازیسازی را به طور کامل در فصل ۲۸ همین کتاب پوشش دادهایم.
سیستمهای مجازیسازی عالی و رایگان متعددی (که به آنها هایپروایزر یا مدیریتکنندههای ماشین مجازی میگویند) وجود دارند که میتوانید آنها را نصب کنید. از جمله مهمترین آنها میتوان به موارد زیر اشاره کرد:
- Oracle VirtualBox
این نرمافزار متنباز و قدرتمند به صورت فعال توسط اوراکل توسعه داده میشود و پورتال رسمی آن در آدرس www.virtualbox.org در دسترس است. این ابزار به راحتی روی سیستمعاملهای لینوکس، ویندوز، مکینتاش و حتی سولاریس اجرا میشود. شما میتوانید از VirtualBox برای اجرای همزمان چندین توزیع لینوکس استفاده کنید (البته به شرطی که سختافزار سیستم اصلی شما منابع کافی داشته باشد). وبسایت رسمی این پروژه پروپیمان از داکیومنتهای آموزشی و تالارهای گفتگو (Community Forums) است که به شما در راهاندازی بینقص محیط یادگیری کمک میکنند.
- VMware Workstation Player
نرمافزار
VMware Workstation Proیک محصول مجازیسازی انحصاری و کدبسته (Proprietary) است. شرکت VMware یک نسخه رایگان از آن به نامWorkstation Playerارائه میدهد که از طریق آدرس رسمی پورتال آنها در دسترس است. البته این نسخه رایگان محدودیتهایی دارد؛ برای مثال در هر لحظه تنها اجازه اجرای یک ماشین مجازی را به شما میدهد. همچنین به یاد داشته باشید که اگر بخواهید این نسخه را در محیطهای شرکتی و تجاری نصب کنید، باید هزینه لایسنس آن را بپردازید.
توجه
اگر از سیستمعامل مک (Mac) استفاده میکنید، ابزار VMware Workstation Player روی سیستم شما کار نخواهد کرد. در عوض، شرکت VMware یک محصول مجازیسازی رایگان دیگر به نام VMware Fusion را برای کاربران مک ارائه میدهد.
- Microsoft Hyper-V
این محصول مجازیسازی کدبسته و انحصاری، به صورت پیشفرض روی بسیاری از نسخههای ۶۴ بیتی مدرن ویندوز (مانند ویندوز ۱۰ نسخههای Professional و Enterprise) در دسترس است. با این حال، نسخه Windows 10 Home از آن پشتیبانی نمیکند. در صورت داشتن منابع سختافزاری کافی، میتوانید از Hyper-V برای اجرای همزمان چندین توزیع لینوکس استفاده کنید.
اصلاً خود را به این لیست محدود نکنید. اینها صرفاً چند هایپروایزر پیشنهادی برای شروع تحقیق و بررسی شما بودند. اگر محصول مجازیسازی دیگری پیدا کردید که با محیط سیستمعامل میزبان شما سازگاری بهتری دارد، حتماً از همان برای فضای یادگیری خود استفاده کنید.
پیش از انتخاب و نصب یک هایپروایزر خاص، ابتدا مطمئن شوید که لپتاپ یا سیستم انتخابی شما توانایی و ظرفیت کافی برای پاسخگویی به حداقل نیازمندیهای سختافزاری کل فضای یادگیری را دارد. اگر قصد دارید چندین توزیع لینوکس را به صورت همزمان نصب و اجرا کنید، از جدول زیر به عنوان راهنمای منابع سختافزاری مورد نیاز خود استفاده کنید:
منبع سختافزاری (Resource) |
حداقل میزان لازم (Minimum) |
مقدار پیشنهادی (Recommended) |
|---|---|---|
حافظه رم (Memory) |
۸ گیگابایت (8GB) |
۸ گیگابایت یا بیشتر (8GB =<) |
فضای دیسک (Free disk space) |
۷۰ گیگابایت (70GB) |
۱۰۰ گیگابایت یا بیشتر (100GB =<) |
پردازنده (Processor) |
معماری x86_64 و پردازنده ۲ هستهای ۲ گیگاهرتز |
معماری x86_64 و پردازنده قویتر از ۲ هستهای ۲ گیگاهرتز |
استفاده از یک فضای یادگیری مجازیسازیشده بسیار انعطافپذیر است. تصویر زیر نمونهای از این نوع محیط آزمایشگاهی پویا و منعطف را نشان میدهد.
شکل ۱.۱: فضای یادگیری پیادهسازیشده با استفاده از Oracle VirtualBox
در فضای یادگیری نشاندادهشده در شکل ۱.۱، توجه کنید که دو نسخه از توزیع CentOS نصب شده است. روی یکی از آنها سیستم فِرمور UEFI تنظیم شده و روی دیگری تنظیم نشده است (سیستم سنتی BIOS). این ویژگی به شما اجازه میدهد تا نحوه بوت شدن سیستم را هم در حالت BIOS و هم در حالت UEFI به صورت عملی بررسی و کاوش کنید. به یاد داشته باشید که تنظیمات بوت UEFI درون خود نرمافزار هایپروایزر قرار دارد و باید حتماً پیش از شروع نصب توزیع تنظیم شود؛ شما نمیتوانید پس از اتمام فرآیند نصب، سیستم بوت ماشین را بین این دو حالت جابهجا کنید.
امیدواریم تا اینجای کار ایدههای خوبی درباره نحوه پیکربندی فضای یادگیری شخصی خود به دست آورده باشید. اما قبل از اینکه دست به کار شوید، یک امکان و فضای دیگر وجود دارد که باید آن را هم با هم بررسی کنیم.
3.1.1.1.3. پرش به محیط ابری (Jumping to the Cloud)
اگر لپتاپ یا کامپیوتر رومیزی شما منابع سختافزاری کافی برای میزبانی همزمان چندین توزیع لینوکس را ندارد، محیط ابری (Cloud) یک جایگزین فوقالعاده است. کِریس واتِرسون در وبلاگ خود جمله معروفی را نوشت که به شدت محبوب شد: «چیزی به نام کلود وجود ندارد؛ کلود صرفاً کامپیوتر یک نفر دیگر است!». اگرچه این جمله فرآیند محاسبات ابری را بیش از حد ساده جلوه میدهد، اما تعریف خوبی برای درک کاربرد آن در راهاندازی یک فضای یادگیری است.
ارائهدهندگان سرویسهای ابری متعددی وجود دارند که میتوانید در آنها ماشینهای مجازی با توزیعهای مختلف لینوکس را راهاندازی کنید؛ از جمله سرویسهای معروف جهانی مانند آمازون (AWS)، مایکروسافت اژور (Azure) و دیجیتالاوشن (DigitalOcean). سرویسهای ابری به سرعت تغییر میکنند، بنابراین ممکن است دقیقاً همان نسخهای از توزیع لینوکس را که به دنبالش هستید پیدا نکنید. با این حال، ارزشش را دارد که زمان بگذارید و پیشنهادات مختلف این ارائهدهندگان ابری را بررسی کنید. محیط ابری در بسیاری از مواقع میتواند گزینهای بسیار ارزانتر از خرید یک کامپیوتر جدید برای فضای یادگیری شما باشد.
توجه
اگر استفاده از یک سرویس ابری را انتخاب کنید، این سرویسها ممکن است به شما اجازه ندهند برخی از سرفصلهای عملی آزمون لینوکس (مانند دستکاری نحوه بوت شدن سرور یا جابهجایی بین حالتهای BIOS و UEFI) را آزمایش کنید. هنگام بررسی و انتخاب فضای یادگیری خود، این محدودیت را به یاد داشته باشید.
قبل از اینکه روی محل و نحوه راهاندازی فضای یادگیری خود تصمیم قطعی بگیرید، بیایید با هم توزیعهای پیشنهادی لینوکس و نسخههای آنها را بررسی کنیم. این توزیعها المانهای اصلی محیط یادگیری موفق شما خواهند بود.
3.1.1.2. بررسی توزیعهای لینوکس (Exploring Linux Distributions)
آزمونهای استاندارد بینالمللی لینوکس معمولاً مبتنی بر توزیع خاصی نیستند (Vendor Neutral). در عمل، این یعنی تمرکز آموزشها روی یک توزیع خاص نیست. اگر شما تجربه کار با توزیع ردهت (RHEL) را دارید، نیاز دارید تا درباره ابزارها و ویژگیهای موجود در اوبونتو (Ubuntu) و اوپنسوزه (openSUSE) نیز یاد بگیرید و برعکس.
گاهی این تصور اشتباه پیش میآید که همه توزیعهای لینوکس دقیقاً مثل هم هستند و تفاوت چندانی با یکدیگر ندارند؛ اما این یک مغالطه است! ما دوست داریم هسته لینوکس (Linux Kernel) را به «موتور یک خودرو» و توزیع لینوکس را به «امکانات و ویژگیهای خودِ آن خودرو» تشبیه کنیم. اگر تا به حال خودرویی رنت (اجاره) کرده باشید، میدانید که ویژگیهای ماشین اجارهای معمولاً با خودرویی که همیشه سوار میشوید متفاوت است. وقتی وارد ماشین جدید میشوید، باید چند دقیقه وقت بگذارید تا صندلی را تنظیم کنید، کنترلرهای مختلف را بررسی کنید و قبل از حرکت در جاده، نحوه کار با آنها را یاد بگیرید. این قانون دقیقاً برای یادگیری توزیعهای جدید لینوکس هم صدق میکند. خبر خوب این است که اگر از قبل تجربه کار با لینوکس را داشته باشید، یادگیری یک توزیع جدید برای شما اصلاً کار سختی نخواهد بود.
توجه
توزیعهای لینوکس معمولاً بر پایه توزیعهای مادر یا انشعابهای (Forks) آنها ساخته میشوند. دو گروه اصلی از توزیعها که برای تسلط بر لینوکس حیاتی هستند، توزیعهای مبتنی بر ردهت (Red Hat-based) و توزیعهای مبتنی بر دبین (Debian-based) هستند. تفاوت اصلی بین این دو گروه شامل پکیجهای نرمافزاری، نامها و ابزارهای مدیریت آنها، نام و مسیر فایلهای پیکربندی، زمانبندی انتشار نسخهها، ابزارهای مدیریت فایروال و غیره میشود. شرکت ردهت معمولاً روی حوزههای تجاری و سازمانی (Enterprise) تمرکز دارد، در حالی که پروژه دبین روی نرمافزارهای کاملاً آزاد تمرکز میکند. به دلیل همین تفاوتها، یادگیری و استفاده از هر دو گروه در محیط آزمایشگاهی الزامی است.
بسیار مهم است که بدانید کدام توزیعهای لینوکس به موفقیت و تسلط شما کمک میکنند. علاوه بر این، باید بدانید کدام نسخههای خاص از یک توزیع برای شما کاربردیتر هستند.
3.1.1.2.1. نگاهی به سنتاواس (Looking at CentOS)
توزیع Community Enterprise Operating System یا به اختصار CentOS از سال ۲۰۰۴ وجود داشته است. این توزیع تقریباً یک کپی دقیق و همتای توزیع تجاری ردهت (RHEL) است. در حالی که استفاده از RHEL نیاز به خرید اشتراک و لایسنس از شرکت ردهت دارد، CentOS کاملاً رایگان بوده و یک منبع فوقالعاده برای یادگیری مفاهیم لینوکس سازمانی به شمار میرود.
شما میتوانید فایل ایمیج (ISO) این توزیع را از وبسایت رسمی آن دانلود کنید. به یاد داشته باشید که این توزیع نیز مانند بسیاری دیگر، در نسخههای مختلفی (Flavors) ارائه میشود. پیشنهاد میشود نسخه پایدار و کامل آن (مانند نسخه ۷ که نسخه پایانی و مرجع بسیاری از پکیجهای آزمونهای استاندارد است) را به صورت ایمیج کامل (Everything ISO) تهیه کنید.
نکته
با گذر زمان، نسخههای جدیدی از CentOS معرفی میشوند. اگرچه همیشه وسوسهانگیز است که آخرین و جدیدترین نسخه موجود را نصب کنید، اما برای اهداف آموزشی این کار همیشه مفید نیست. به یاد داشته باشید که سرفصلهای آموزشی و استانداردها معمولاً تا زمان آپدیت بعدی ثابت میمانند؛ بنابراین، عاقلانهترین کار این است از نسخههایی استفاده کنید که با زمان نگارش داکیومنتها و استانداردهای آموزشی همخوانی دارند.
پس از نصب نسخه CentOS مورد نظر خود، باید پکیجهای نرمافزاری آن را بروزرسانی کنید. برای این کار، با کاربر ریشه (Root) یا دسترسی مدیریت وارد شده و دستورات نشان داده شده در کادر زیر را اجرا کنید:
Listing 1.1: بروزرسانی نرمافزارها در CentOS
# sudo yum update
Loaded plugins: fastestmirror
[...]
Upgrade 3 Packages
Total download size: 1.3 M
Is this ok [y/d/N]: y
[...]
Complete!
#
به یاد داشته باشید که به صورت پیشفرض، برخی نسخههای سروری CentOS فاقد رابط گرافیکی (GUI) هستند و به عنوان یک سرور کمینه (Minimal Server) نصب میشوند. اگر ترجیح میدهید یک رابط گرافیکی روی این توزیع داشته باشید، با کاربر ریشه لاگین کرده و دستورات مربوط به نصب محیط گرافیکی را (که در بخشهای بعدی بررسی میکنیم) اجرا کنید.
Listing 1.2: نصب محیط گرافیکی (GUI) روی CentOS
# yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
[...]
Total download size: 727 M
Installed size: 2.3 G
Is this ok [y/d/N]: y
Downloading packages
[...]
Complete!
#
# ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
#
# reboot
توجه
اگر تا به حال از توزیع CentOS استفاده نکردهاید یا تجربهی شما در لینوکس محدود است، توصیه میشود پیش از اقدام به نصب محیط گرافیکی (GUI)، ابتدا تمام بخشهای این فصل را مطالعه کنید. با این حال، اجازه ندهید این یادداشت مانع کار شما شود؛ اگر تمایل دارید این کار را آزمایش کنید، حتماً انجامش دهید! گاهی اوقات تلاش کردن، به مشکل خوردن و دوباره تلاش کردن، شگفتانگیزترین تجربههای یادگیری را رقم میزند.
در حالی که CentOS یک توزیع بسیار محبوب در دنیای ردهت (Red Hat) به شمار میرود، شما برای تسلط کامل به یک توزیع از دنیای دبین (Debian) نیز نیاز دارید. در بخش بعدی به بررسی توزیع اوبونتو خواهیم پرداخت.
3.1.1.2.2. نگاهی به اوبونتو (Looking at Ubuntu)
توزیع لینوکس اوبونتو (Ubuntu) توسط شرکت کاننیکال (Canonical LTD) مدیریت میشود و از سال ۲۰۰۴ پا به عرصه گذاشته است. این توزیع رایگان و بسیار محبوب، بر پایهی دبین توسعه یافته و یکی از موارد ضروری و دستنشدنی در فضای یادگیری شخصی شماست.
شما میتوانید فایل ISO توزیع اوبونتو را از وبسایت رسمی آن به آدرس www.ubuntu.com دریافت کنید. اوبونتو نسخههای مختلفی دارد، اما پیشنهاد ما دانلود و استفاده از نسخه دسکتاپ اوبونتو با پشتیبانی بلندمدت (به عنوان مثال نسخه مرجع 18.04 LTS) است.
توجه
عبارت LTS در نام نسخههای اوبونتو مخفف Long Term Support (پشتیبانی بلندمدت) است. این نشانهای است که شرکت کاننیکال از آن استفاده میکند تا مشخص کند این نسخه برای یک بازهی زمانی طولانی (مثلاً برای نسخه 18.04 LTS تا آوریل ۲۰۲۳)، آپدیتهای امنیتی و پشتیبانی فنی را دریافت خواهد کرد.
اگر با اوبونتو آشنایی ندارید، باید از چند نکتهی بسیار مهم آگاه باشید. به صورت پیشفرض، شما نمیتوانید به طور مستقیم با حساب کاربری ریشه (Root) به سیستم لاگین کنید. در عوض، زمانی که نیاز به استفاده از امتیازات کاربر کل (Superuser) دارید، باید با همان حساب کاربری که در زمان نصب سیستمعامل ساختهاید لاگین کرده و دستور مقتدرانه sudo را قبل از دستورات خط فرمان خود قرار دهید. نمونهای از این کاربرد در کادر زیر آورده شده است:
Listing 1.3: استفاده از دستور sudo در اوبونتو
$ sudo grep root /etc/shadow
root:!:17737:0:99999:7:::
$
توجه
اگر تا به حال دستورات خط فرمان را در ترمینال اجرا نکردهاید، توصیه میشود پیش از شروع کار عملی، ابتدا کل این فصل را تا انتها بخوانید. در ادامهی همین فصل، با جزئیات بیشتری درباره ترمینالها آشنا خواهید شد.
نکتهی مهم دیگر به فرآیند نصب اوبونتو مربوط میشود؛ اگر سیستم شما در طول نصب به شبکه اینترنت متصل باشد، اوبونتو میتواند پکیجهای نرمافزاری را به صورت خودکار بروزرسانی کند. این گزینه در فرآیند نصب با یک چکباکس در کنار عبارت Download updates during installation مشخص شده است. عموماً توصیه میشود که این گزینه را فعال نکنید؛ در عوض، اجازه دهید فرآیند نصب با موفقیت به پایان برسد و سپس خودتان به صورت دستی و از طریق ترمینال، با استفاده از امتیازات کاربر مدیریت و طبق دستورات کادر زیر سیستم را آپدیت کنید:
Listing 1.4: بروزرسانی نرمافزارها در اوبونتو
$ sudo apt-get update
[sudo] password for Christine:
Hit:1 http://us.archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
[...]
Fetched 1,053 kB in 2s (631 kB/s)
Reading package lists... Done
$
$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
[...]
Do you want to continue? [Y/n] Y
[...]
$
اگر در محیط یادگیری خود تنها برای دو توزیع فضا دارید، ترکیب CentOS و Ubuntu بهترین انتخاب ممکن خواهد بود. با این حال اگر منابع سختافزاری بیشتری در اختیار دارید، ارزشش را دارد که توزیع سوم یعنی اوپنسوزه (openSUSE) را نیز اضافه کنید.
3.1.1.2.3. نگاهی به اوپنسوزه (Looking at openSUSE)
توزیع اوپنسوزه (openSUSE) اولین نسخهی خود را در سال ۱۹۹۴ با نام دیگری یعنی SUSE Linux روانه بازار کرد. شرکتهای متعددی در پشتیبانی از این پروژه نقش داشتهاند که شرکت آلمانی SUSE بنیانگذار و اصلیترین آنهاست.
این توزیع کاربران بسیار وفادار و جامعه کاربری قدرتمندی دارد و توسعهدهندگان آن را به شدت تحسین میکنند. یکی از ابزارهای منحصربهفرد و بسیار محبوب این توزیع، ابزار مدیریتی YaST (مخفف Yet another Setup Tool) است. این ابزار به عنوان مرکز کنترل سیستم (Command-Center) عمل کرده و به شما اجازه میدهد تا اکثر سرویسها و تنظیمات سیستمعامل را از طریق یک رابط یکپارچه مدیریت کنید.
شما میتوانید فایل ISO این توزیع را از پورتال رسمی آن به آدرس https://software.opensuse.org دانلود کنید. اوپنسوزه در دو نسخه اصلی ارائه میشود: Leap (نسخه پایدار با انتشار منظم) و Tumbleweed (نسخه توزیع غلتان یا Rolling Release). پیشنهاد ما برای کارهای آموزشی، استفاده از نسخه پایدار یعنی openSUSE Leap (مانند سری نسخه های 15) است.
توجه
جامعه کاربری openSUSE در سال ۲۰۱۷ ساختار شمارهگذاری نسخههای خود را تغییر داد؛ به طوری که نسخه قبل از ۱۵.۰ شمارهی عجیب ۴۲.۳ بود! هنگام دانلود و تهیه نسخه Leap به این تغییر ناگهانی در شمارهگذاریها توجه داشته باشید.
پس از نصب موفقیتآمیز اوپنسوزه، ایده بسیار خوبی است که پیش از شروع کاوش، تمام پکیجهای نرمافزاری آن را بروزرسانی کنید. برای آپدیت سیستم از طریق خط فرمان، ترمینال را باز کرده و دستورات نشان داده شده در کادر زیر را با دسترسی مدیریت اجرا کنید:
Listing 1.5: بروزرسانی نرمافزارها در openSUSE
$ sudo zypper patch
[sudo] password for root:
Loading repository data...
Reading installed packages...
Resolving package dependencies...
[...]
Note: System reboot required.
Continue? [y/n/... shows all options] (y): y
[...]
Warning: One of the installed patches requires a reboot of your machine. Reboot as soon as possible.
There are some running programs that might use files deleted by recent upgrade. You may wish to check and restart some of them. Run 'zypper ps -s' to list these programs.
$
مطمئناً تا اینجای کار متوجه شدهاید که این سه توزیع از دستورات کاملاً متفاوتی (Yum، Apt و Zypper) برای بروزرسانی نرمافزارها استفاده میکنند. این تفاوت ساختاری دقیقاً همان دلیلی است که شما را ملزم میکند در فضای یادگیری خود به چندین توزیع مختلف دسترسی داشته باشید. در بخش بعدی، به سراغ یک توزیع مهم دیگر میرویم.
3.1.1.2.4. نگاهی به فدورا (Looking at Fedora)
توزیع فدورا (Fedora) توسط «پروژه فدورا» مدیریت و توسعه داده میشود و تحت حمایت رسمی شرکت ردهت (Red Hat) قرار دارد. این توزیع به نوآوری و استفاده از نرمافزارهای بسیار مدرن و لبهی تکنولوژی (Bleeding-edge) معروف است و بستری برای تست ابزارهایی است که بعداً قرار است وارد ردهت سازمانی شوند. اگر دوست دارید ابزارهای کاملاً جدید لینوکس را تجربه کنید، فدورا بهترین انتخاب برای شماست.
این توزیع نیز مانند سایرین در نسخههای متعددی ارائه میشود که پروژه فدورا به آنها Editions میگوید. پیشنهاد ما برای محیط آزمایشگاهی، نسخه ایستگاه کاری یعنی Fedora Workstation (مانند نسخه مرجع 28) است. میتوانید فایل ایمیج آن را از آدرس رسمی https://getfedora.org دریافت کنید.
توجه
توجه داشته باشید که این توزیع خاص، چرخهی انتشار بسیار سریعی دارد و هر شش ماه یک نسخه جدید از آن منتشر میشود. بنابراین برای دسترسی به نسخههای مراجع آموزشی خاص، ممکن است نیاز باشد آنها را مستقیماً از مخازن آرشیو فدورا دانلود کنید.
توزیع فدورا علاوه بر نسخههای اصلی (Editions)، دارای نسخههای سفارشیسازی شدهی دیگری به نام Spins نیز هست. یک لایه یا Spin در واقع نسخهای از فدورا است که با یک محیط گرافیکی متفاوت (غیر از گنوم پیشفرض) عرضه میشود. اگر از رابط گرافیکی پیشفرض راضی نیستید یا میخواهید دسکتاپهای مختلف را آزمایش کنید، میتوانید به وبسایت اختصاصی لایههای فدورا به آدرس https://spins.fedoraproject.org مراجعه کنید.
ساختار دسترسی کاربران در فدورا کاملاً شبیه به اوبونتو است؛ یعنی به صورت پیشفرض امکان لاگین مستقیم با کاربر Root وجود ندارد و باید از ابزار دسترسی مدیریت یعنی دستور sudo در ابتدای کدهای خود استفاده کنید. پس از نصب موفقیتآمیز فدورا، با اجرای دستورات زیر در ترمینال، پکیجهای سیستم را آپدیت کنید:
Listing 1.6: بروزرسانی نرمافزارها در فدورا
$ sudo su -c 'dnf upgrade'
[sudo] password for Christine:
[...]
Install 4 Packages
Upgrade 161 Packages
Total download size: 295 M
Is this ok [y/N]: y
Downloading Packages:
[...]
Complete!
$
اگر در حین آپدیت متوجه شدید که پکیجهای بسیار کمی بروزرسانی شدهاند، ممکن است نیاز باشد تا سوئیچ تازهسازی مخازن را نیز به دستور خود اضافه کنید. برای این کار دستور ترکیبی زیر را در خط فرمان وارد کنید: sudo su -c 'dnf upgrade --refresh'
3.1.1.3. یافتن و راهاندازی ترمینال (Locating a Terminal)
اگر تا به حال تمام وقت خود را در محیطهای گرافیکی (GUI) لینوکس گذراندهاید یا کاملاً در دنیای لینوکس تازهوارد هستید، ممکن است با روشهای دسترسی به خط فرمان یا همان ترمینال آشنایی نداشته باشید. این بخش به شما کمک میکند تا این درگاه حیاتی را پیدا کنید. (اگر یک کاربر باسابقه خط فرمان هستید، میتوانید از این بخش عبور کنید).
برای کاوش در لینوکس و آمادگی کامل برای آزمونها، باید بخش عمدهای از زمان خود را در خط فرمان سپری کنید. ترمینال در واقع دروازه ورود شما به دنیای فرامین لینوکس است. زمانی که یاد بگیرید چگونه ترمینال را پیدا کرده و از آن استفاده کنید، آمادهی پیشروی در بقیه مباحث این کتاب خواهید بود.
سادهترین راه برای دسترسی به محیط متنی و خط فرمان در اکثر توزیعهای لینوکس، فشردن کلیدهای ترکیبی Ctrl+Alt+F2 پس از بوت شدن سیستم است. این کار شما را به یک ترمینال متنی خالص به نام tty2 منتقل میکند. پس از وارد کردن نام کاربری و رمز عبوری که در زمان نصب توزیع ساختهاید، خط فرمان در اختیار شما قرار میگیرد. شکل زیر یک ترمینال تنی tty2 را در توزیع اوپنسوزه نشان میدهد.
شکل ۱.۲: محیط متنی ترمینال tty2 در توزیع openSUSE
در این محیط میتوانید شروع به تایپ و اجرای دستورات خود کنید. اگر توزیع را تازه نصب کردهاید، بهتر است طبق آموزشهای قبلی همین فصل، ابتدا سیستم را آپدیت کنید. برای خارج شدن از این محیط متنی و بستن جلسهی کاری، کافی است دستور exit را تایپ کرده و کلید اینتر را بفشارید.
3.1.1.4. خلاصه فصل (Summary)
داشتن یک فضای یادگیری (Learning Space) فیزیکی یا مجازی، اولین و حیاتیترین نیاز شما برای تمرین آزادانه، اجرای سناریوهای پرخطر و تسلط بر دستورات خط فرمان لینوکس بدون نگرانی از خرابی سیستمهای اصلی است.
پیادهسازی یک محیط مجازیسازیشده (Virtualized) با استفاده از هایپروایزرهای رایگان و قدرتمندی چون Oracle VirtualBox، بهترین راهکار برای اجرای همزمان چندین توزیع و شبیهسازی سناریوهای شبکه است؛ هرچند استفاده از یک لپتاپ قدیمی یا سرورهای ابری (Cloud) نیز گزینههای جایگزین محسوب میشوند.
به دلیل تفاوتهای ساختاری در پکیجمنجرها، ابزارهای مدیریت فایروال و مسیر فایلهای پیکربندی، دسترسی همزمان به توزیعهای دو خانوادهی بزرگ ردهت (مانند CentOS و فدورا) و دبین (مانند اوبونتو) در محیط آزمایشگاهی برای یادگیری همهجانبه الزامی است.
خط فرمان یا همان ترمینال، دروازه اصلی تعامل شما با هسته و ابزارهای لینوکس است که در محیطهای گرافیکی از طریق اپلیکیشن ترمینال و در محیطهای متنی خالص با کلیدهای ترکیبی مانند Ctrl+Alt+F2 (محیطهای TTY) در دسترس قرار میگیرد.