انتخاب توزیع با معیار چرخه عمر و سازگاری
در این درس ۴ بخش
این دوره، ادامهٔ رایگان آموزش مقدماتی لینوکس درسآوند است. پیش از شروع باید کار با ترمینال، مسیرها، مجوزهای پایه و اتصال SSH را بلد باشید. اگر هنوز این مهارتها تازهاند، ابتدا دورهٔ اول را کامل کنید:
https://www.darsavand.com/courses/linux-server-from-zero
در این مسیر روی انتخاب توزیع، مدیریت سرویس، تشخیص خرابی و بازیابی کار میکنیم. محیط و مجوز لازم برای هر تمرین در همان درس آمده است؛ آزمایشهای مدیریتی به ماشین آزمایشی اختصاصی نیاز دارند.
در این دوره رایگان از آشنایی با فرمانها عبور میکنیم و درباره تصمیمهای قابل دفاع برای نگهداری سیستم حرف میزنیم. پیشنیاز، مهارتهای دوره مقدماتی، دسترسی به یک ماشین آزمایشی و توانایی خواندن خروجی فرمانهاست. هدف این درس انتخاب توزیع براساس عمر پروژه، محدودیت نرمافزار و ظرفیت نگهداری است؛ نه رتبهبندی محبوبیت. متن آموزشی و سناریوها تألیف مستقل تحریریه درسآوند است و منابع رسمی برای راستیآزمایی فنی معرفی میشوند.
سیستمعاملهای لینوکسی چه تفاوتی دارند؟
Ubuntu، Debian، Fedora و خانوادههای دیگر توزیع لینوکساند: یک هسته لینوکس را با مجموعهای از کتابخانهها، ابزارها، بستهها، سیاستهای امنیتی و تنظیمات پیشفرض ترکیب میکنند. اشتراک خانواده هسته به معنی یکسان بودن فضای کاربر نیست؛ حتی نسخه و وصلههای هسته نیز میتواند متفاوت باشد. فایل اجرایی وابسته به glibc لزوماً روی Alpine مبتنی بر musl اجرا نمیشود. یک فایل RPM نیز صرفاً به دلیل پسوندش برای هر سیستم مبتنی بر RPM مناسب نیست؛ وابستگی، معماری پردازنده و قرارداد پشتیبانی تعیینکنندهاند.
ماتریس تصمیم به زبان عملی
• Ubuntu LTS و Debian stable: برای سرویس با تغییرات کنترلشده و عمر چندساله، نقطه شروع قابل بررسیاند. Ubuntu LTS پنج سال نگهداری امنیتی استاندارد برای Main دارد؛ پوشش مخازن دیگر و دورههای توسعهیافته شرایط جداگانه دارند. Debian معمولاً سه سال پشتیبانی عادی و دو سال LTS دارد، اما معماریها و بستههای تحت پوشش LTS باید جداگانه بررسی شوند. بهای تغییر کمتر، قدیمیتر بودن برخی نسخههای ظاهری است؛ اصلاح امنیتی میتواند بدون جهش نسخه بالادستی اعمال شود.
• Fedora: برای توسعهدهندهای که ابزارهای جدیدتر میخواهد و ارتقای منظم را میپذیرد مناسب بررسی است. انتشار تقریباً ششماهه و پشتیبانی حدود سیزدهماهه، برنامه مهاجرت مکرر میطلبد. RHEL برای چرخه سازمانی طولانی، گواهی نرمافزار و خدمات پشتیبانی طراحی شده است؛ مرحله چرخه عمر و عمر بعضی Application Streamها جداگانه اهمیت دارد. Rocky Linux بازسازی نزدیک به RHEL را هدف میگیرد؛ AlmaLinux سازگاری ABI را هدف اعلام میکند. این هدفها تضمین یکسان بودن همه بستهها، گواهی فروشنده یا قرارداد پشتیبانی نیستند.
• Arch: انتشار غلتان و دسترسی سریع به بستهها، همراه با مسئولیت پیگیری خبرهای ارتقا و تغییر تنظیمات است. نصب انتخابی چند بهروزرسانی بهجای ارتقای کامل، روش پشتیبانیشدهای نیست. openSUSE Leap انتشار دورهای و Tumbleweed انتشار غلتان دارد؛ بنابراین هزینه نگهداری این دو را یکسان فرض نکنید. یکپارچگی Snapper با Btrfs میتواند بازگشت سیستم را آسانتر کند، ولی به چیدمان و تنظیم درست وابسته است و جای پشتیبان مستقل داده را نمیگیرد.
• Alpine: برای محیط کمحجم، تصویر کانتینر یا سامانه محدود ارزش بررسی دارد. استفاده از musl و BusyBox یعنی برخی باینریها و گزینههای ابزارهای GNU نیازمند سازگارسازیاند؛ کوچک بودن بهتنهایی تضمین امنیت نیست. مخزن main معمولاً دو سال و community تا انتشار پایدار بعدی پشتیبانی میشود. قبل از انتخاب، بسته واقعی پروژه و مدت پوشش مخزنش را بررسی کنید. انتخاب را با چهار معیار ثبت کنید: عمر سرویس، نیاز نسخهای، بودجه ارتقا و مسیر بازیابی.
آزمایشگاه: شناسنامه را از خود سیستم بخوانید
این آزمایشگاه فقط خواندنی است و روی Ubuntu دوره اجرا میشود؛ نصب توزیع دیگری لازم نیست. os-release را مانند داده میخوانیم و آن را با source، نقطه یا eval اجرا نمیکنیم. اگر فایل اول وجود نداشت، فایل جایگزین را انتخاب میکنیم؛ داده دو فایل نباید با هم ادغام شود.
uname -r
osfile=/etc/os-release
[ -r "$osfile" ] || osfile=/usr/lib/os-release
sed -n '/^[[:space:]]*\(ID\|ID_LIKE\|VERSION_ID\|PRETTY_NAME\)=/p' "$osfile"خروجی نخست نسخه هسته جاری است؛ خروجی دوم باید نام توزیع و شناسههای موجود را نشان دهد. ID=ubuntu و ID_LIKE=debian مثالاند، نه خروجی اجباری همه ماشینها. PRETTY_NAME برای نمایش و ID برای شناسایی ماشینی است. ID_LIKE فقط خویشاوندی را بیان میکند، نه مجوز افزودن مخزن Debian به Ubuntu. نبود VERSION_ID در یک توزیع غلتان الزاماً خرابی نیست. خروجی داخل کانتینر هویت فضای کاربر کانتینر را نشان میدهد، در حالی که هسته معمولاً با میزبان مشترک است.
تمرین و پاسخ توضیحی
تمرین: یک سامانه حسابداری پنجساله با نرمافزاری که فروشنده فقط روی RHEL پشتیبانی میکند، با یک میزکار آزمایش کامپایلر جدید چه انتخاب متفاوتی دارد؟ پاسخ: برای اولی، نسخه و معماری دقیق در ماتریس رسمی فروشنده و قرارداد پشتیبانی مقدم است؛ شباهت Rocky یا Alma بهتنهایی کافی نیست. برای دومی Fedora، Arch یا Tumbleweed را با توجه به زمان نگهداری بررسی میکنیم. نتیجه تمرین باید یک انتخاب همراه با تاریخ بازبینی چرخه عمر و دلیل رد گزینه دیگر باشد، نه صرفاً نام توزیع.
منابع رسمی انگلیسی؛ سیاستها هنگام انتخاب نسخه دوباره بررسی شوند:
Ubuntu release cycle: https://ubuntu.com/about/release-cycle
Debian releases: https://www.debian.org/releases/
Debian LTS: https://wiki.debian.org/LTS
Fedora release lifecycle: https://docs.fedoraproject.org/en-US/releases/lifecycle/
RHEL life cycle: https://access.redhat.com/support/policy/updates/errata
Rocky releases: https://docs.rockylinux.org/latest/releases/
AlmaLinux FAQ: https://wiki.almalinux.org/FAQ
Arch system maintenance: https://wiki.archlinux.org/title/System_maintenance
openSUSE distributions: https://get.opensuse.org/desktop/
Alpine release branches: https://www.alpinelinux.org/releases/
os-release: https://www.freedesktop.org/software/systemd/man/latest/os-release.html
متن درسهای عمومی را بدون ورود بخوانید.