الدرس 5 من 7 · التاريخ
توزيعات Linux — Slackware و Debian و Red Hat و Ubuntu وغيرها
الهدف
أن تفهم ما هي التوزيعة (distribution)، ومن أين جاءت العائلات الكبرى التي ستصادفها في الشركات، ولماذا يتغيّر أمر تثبيت البرامج من خادم إلى آخر.
الخلاصة
- النواة وحدها لا تكفي: التوزيعة تجمع النواة، وأدوات GNU، وآلاف البرامج، وأداة تثبيت، ومدير حزم (gestionnaire de paquets).
- الأجداد الذين ما زالوا أحياء وُلدوا سنة 1993: Slackware و Debian. ثم تلاهما Red Hat و SUSE سنة 1994.
- عائلتان كبيرتان تهيمنان على الخوادم: Debian (حزم
.deb، والأداةapt) و Red Hat (حزم.rpm، والأداتانyum/dnf). - Ubuntu (2004) مشتقّة من Debian؛ و Fedora (2003) تُعدّ مستقبل RHEL.
- تنشر التوزيعة إمّا إصدارات ثابتة (Debian و RHEL و Ubuntu LTS)، وإمّا بشكل مستمر (rolling release: مثل Arch).
1. لماذا توجد التوزيعات؟
في سنة 1992 كان تثبيت Linux مغامرة: كان عليك أن تجلب النواة من خادم، وأن تترجم بنفسك عشرات برامج GNU، وأن تنسخها على أقراص مرنة، ثم تأمل أن يعمل كل شيء معًا.
التوزيعة تقوم بهذا العمل نيابةً عنك. قارن ذلك بالمطبخ:
| في المطبخ | في التوزيعة |
|---|---|
| المكوّنات (الدقيق، البيض، السكر) | نواة Linux، و bash، و coreutils، و nginx، و MariaDB… |
| الوصفة، المجرَّبة حتى تتناسق المكوّنات | الإصدارات المختارة والمختبَرة بعضها مع بعض |
| الطاهي وأسلوبه | فريق التوزيعة، واختياراته، وفلسفته |
| التزويد المنتظم بمكوّنات طازجة | التحديثات الأمنية |
وبشكل ملموس، توفّر التوزيعة:
- أداة تثبيت (Anaconda لدى Red Hat، و debian-installer، و Subiquity لدى Ubuntu)؛
- مدير حزم لتثبيت البرامج وتحديثها وحذفها؛
- مستودعات (dépôts): خوادم تستضيف عشرات الآلاف من الحزم الجاهزة للاستعمال؛
- إعدادات افتراضية: نظام الإقلاع، والجدار الناري (firewall)، والأمان، ومواضع الملفات؛
- سياسة إصدارات ومدة دعم.
2. الروّاد (1992-1993)
أولى التوزيعات على الإطلاق اسمها MCC Interim Linux (1992، جامعة مانشستر) و SLS (Softlanding Linux System، 1992). كانت SLS عملية لكنها مليئة بالعلل. فقرّر شخصان أن يصنعا أفضل منها.
Slackware (يوليو 1993)
صحّح باتريك فولكردينغ (Patrick Volkerding)، وهو طالب أمريكي، توزيعة SLS لاستعماله الخاص، ثم نشر النتيجة: Slackware. وهي أقدم توزيعة ما زالت تُصان. فلسفتها: البقاء قريبة من UNIX، بسيطة، بلا أدوات «سحرية». وهي قليلة الاستعمال جدًّا في الشركات اليوم، لكنها كوّنت أجيالًا من مديري الأنظمة.
Debian (16 أغسطس 1993)
أعلن إيان موردوك (Ian Murdock)، الطالب في جامعة Purdue، في 16 أغسطس 1993 عن توزيعة يبنيها مجتمع بشكل علني، لا شخص واحد. ويجمع الاسم بين Debra (رفيقته آنذاك) و Ian.
لدى Debian ثلاث خصائص ما زالت مهمة:
- لا تملكها أي شركة. يحييها آلاف المتطوّعين، وفق عقد اجتماعي (Contrat social، 1997) يتعهّد بأن تبقى حرة 100 %.
- مبادئ Debian للبرمجيات الحرة (DFSG) كانت الأساس الذي قام عليه تعريف المصدر المفتوح (الدرس 0.3).
- تحمل إصداراتها أسماء شخصيات من فيلم Toy Story:
buzz(1.1، 1996)، وwoody، وsqueeze، وjessie، وstretch، وbuster، وbullseye(11)، وbookworm(12)، وtrixie(13)…
وابتكرت Debian أيضًا نظام حزم قويًّا: dpkg (منتصف التسعينيات)، ثم APT (1998) الذي ينزّل الاعتماديات (dépendances) ويثبّتها تلقائيًّا. وكان ذلك في حينه ثورة صغيرة.
3. التوزيعات التجارية (1994)
Red Hat (1994)
أنشأ مارك يوينغ (Marc Ewing) توزيعة Red Hat Linux سنة 1994؛ ثم شاركه بوب يونغ (Bob Young) في تأسيس شركة Red Hat (1995). وابتكرت Red Hat صيغة الحزم RPM (Red Hat Package Manager)، ثم جعلتها حرة. ودخلت Red Hat البورصة في أغسطس 1999 بنجاح مذهل: فأصبح Linux في نظر الشركات أمرًا جادًّا.
وفي سنة 2003 أوقفت Red Hat توزيعتها «Red Hat Linux» الموجّهة للعموم لتركّز على RHEL (مدفوعة، للشركات)، وأطلقت Fedora (مجانية، مجتمعية). وهذه الملحمة كلها مفصّلة في الدرس 0.6.
SUSE (1992-1994)
نشرت الشركة الألمانية S.u.S.E. (نورنبرغ، تأسست سنة 1992) أول توزيعة لها سنة 1994، وكانت في البداية مبنية على Slackware. ثم أصبحت المرجع في أوروبا، بأداة الإعداد الرسومية YaST. واليوم تنافس SUSE Linux Enterprise (SLES) توزيعة RHEL في الشركات الكبرى، بينما openSUSE (2005) هي نسختها المجتمعية. وتستعمل SUSE حزم RPM مع أداتها الخاصة zypper.
4. Ubuntu: نظام Linux للجميع (2004)
في سنة 2004 أسّس رجل الأعمال الجنوب إفريقي مارك شاتلوورث (Mark Shuttleworth) شركة Canonical وأطلق Ubuntu، وهي كلمة من أصل بانتوي توحي بالإنسانية والتقاسم. والهدف: Linux سهل، ومحدَّث، بجدول زمني يمكن توقّعه.
- مبنية على Debian: الحزم نفسها
.deb، والأداة نفسهاapt. - إصدار كل ستة أشهر، مرقَّم بالسنة والشهر:
24.04= أبريل 2024. - إصدار LTS (Long Term Support) كل سنتين، في أبريل من السنوات الزوجية: 20.04، و 22.04، و 24.04… ويُدعَم مدة 5 سنوات (وأكثر مع الاشتراك المدفوع Ubuntu Pro).
- أسماء حيوانات، بترتيب أبجدي منذ 2006:
jammy(22.04، Jammy Jellyfish)، وnoble(24.04، Noble Numbat)…
أصبحت Ubuntu نظام Linux الأكثر انتشارًا في السحابة (cloud) وعلى أجهزة المطوّرين. ولها بدورها مشتقّات، مثل Linux Mint (2006).
5. عائلات أخرى يجب معرفتها
| التوزيعة | السنة | الحزم | الفكرة الرئيسية |
|---|---|---|---|
| Gentoo | 2002 | تُترجَم من المصادر (emerge) |
تحسين كل شيء ليناسب آلتك |
| Arch Linux | 2002 | pacman |
بسيطة، مقتصدة، rolling release؛ وموسوعتها (wiki) مرجع لكل أنظمة Linux |
| Alpine Linux | 2005-2006 | apk |
صغيرة جدًّا وآمنة (musl، BusyBox): مستعملة كثيرًا أساسًا لصور الحاويات |
| Linux Mint | 2006 | apt |
Ubuntu بشكل مألوف أكثر لمستخدمي Windows السابقين |
| Kali Linux | 2013 | apt (أساس Debian) |
أدوات اختبار الاختراق (الأمن الهجومي) |
| Oracle Linux | 2006 | rpm، dnf |
إعادة ترجمة RHEL من طرف Oracle |
يُحصي موقع DistroWatch مئات التوزيعات. لكن في الشركات، احفظ أساسًا عائلتين:
عائلة DEBIAN — حزم .deb، والأداتان dpkg و apt
Debian (1993)
└── Ubuntu (2004)
└── Linux Mint, Pop!_OS…
عائلة RED HAT — حزم .rpm، والأدوات rpm و yum (RHEL 5-7) / dnf (RHEL 8+)
Red Hat Linux (1994-2003)
├── Fedora (2003) ──► CentOS Stream ──► RHEL
└── RHEL ──► Rocky Linux, AlmaLinux, Oracle Linux (إعادة ترجمة)
خارج هاتين العائلتين
SUSE (rpm + zypper), Arch (pacman), Alpine (apk), Gentoo (emerge)
6. مدير الحزم: قلب التوزيعة
الحزمة (paquet) أرشيف يحتوي على برنامج وعلى معلومات: إصداره، ووصفه، وخصوصًا اعتمادياته (الحزم الأخرى التي يحتاج إليها).
في كل عائلة مستويان من الأدوات:
| المستوى | الدور | عائلة Debian | عائلة Red Hat |
|---|---|---|---|
| المستوى المنخفض | تثبيت ملف حزمة موجود مسبقًا، والاستعلام من القاعدة المحلية | dpkg |
rpm |
| المستوى المرتفع | البحث في المستودعات، والتنزيل، وحلّ الاعتماديات، وتحديث النظام كله | apt (و apt-get) |
yum (RHEL 5 إلى 7)، و dnf (RHEL 8 وما بعده) |
# عائلة Debian / Ubuntu
apt update && apt install nginx # تثبيت nginx واعتمادياته
dpkg -l | grep nginx # هل هو مثبّت؟
# عائلة Red Hat
dnf install nginx # (yum install nginx على RHEL 7)
rpm -qa | grep nginx # هل هو مثبّت؟
والاعتماديات هي بيت القصيد: تطلب nginx، فتثبّت الأداة معه المكتبات اللازمة، بإصدارات مختبَرة معًا. وبدون مدير حزم، ستقضي ساعات في البحث عنها واحدة واحدة.
ومؤخرًا ظهرت صيغ عامّة مستقلة عن التوزيعة: Snap (Canonical، 2016)، و Flatpak (خصوصًا لتطبيقات سطح المكتب)، وعلى جهة الخوادم، الحاويات (Docker سنة 2013، و Podman). وهي لا تعوّض الحزم الكلاسيكية: بل تُضاف إليها.
7. إصدارات ثابتة أم نشر مستمر
| النموذج | المبدأ | أمثلة | لمن؟ |
|---|---|---|---|
| إصدارات ثابتة، ودعم طويل | إصدار رئيسي كل 2-3 سنوات، ثم تصحيحات فقط طوال سنوات | RHEL و Rocky و Alma (10 سنوات)، و Debian (≈ 5 سنوات مع دعم LTS)، و Ubuntu LTS | خوادم الإنتاج: الاستقرار قبل كل شيء |
| إصدارات ثابتة، ودورة قصيرة | إصدار كل 6 أشهر تقريبًا | Fedora، و Ubuntu غير LTS | محطات العمل، واكتشاف الجديد |
| نشر مستمر (rolling) | لا إصدارات: نحدّث باستمرار | Arch، و openSUSE Tumbleweed | الشغوفون، والأجهزة الشخصية |
خادم بنك أو متجر إلكتروني يريد ألّا يتغيّر شيء دون قرار مسبق: فهو يعمل بإصدار ثابت ذي دعم طويل. ولهذا تُدرِّس هذه الدورة Red Hat (RHEL ونسخها المطابقة)، و Debian، و Ubuntu LTS.
8. كيف تعرف على أي توزيعة أنت؟
هذا أول ردّ فعل يجب أن تكتسبه عند وصولك إلى خادم لا تعرفه:
cat /etc/os-release # معيار موحّد على كل التوزيعات الحديثة
# ID=debian, ID=ubuntu, ID="rocky"… → التوزيعة
# ID_LIKE="rhel centos fedora" → العائلة
# VERSION_ID="12" → الإصدار
cat /etc/debian_version # عائلة Debian فقط
cat /etc/redhat-release # عائلة Red Hat فقط
وقد وُحِّد الملف /etc/os-release نحو سنة 2012 مع ظهور systemd. وعلى الخوادم القديمة جدًّا (CentOS 6 مثلًا) قد يكون غائبًا: فاستعمل حينئذ /etc/redhat-release.
9. الخط الزمني للدرس
1992 MCC Interim Linux و SLS — تأسيس S.u.S.E. في ألمانيا
1993 Slackware (يوليو) — Debian (16 أغسطس)
1994 Red Hat Linux — أول توزيعة SuSE
1997 العقد الاجتماعي لـ Debian
1998 APT (Debian) — Mandrake
1999 دخول Red Hat إلى البورصة
2002 Arch Linux و Gentoo
2003 Fedora Core 1؛ RHEL يصبح المنتج الرئيسي لـ Red Hat
2004 Ubuntu 4.10 (أكتوبر)؛ CentOS
2005 openSUSE؛ Alpine (2005-2006)
2013 Docker: الحاويات تنتشر
2023 Debian 12 « bookworm »
2024 Ubuntu 24.04 LTS « noble »
2025 Debian 13 « trixie »؛ RHEL 10
أخطاء متكررة
- نسخ أمر تثبيت وجدته على الإنترنت دون التحقق من العائلة. الأمر
apt installغير موجود على Rocky؛ والأمرdnfغير موجود على Debian. انظر أولًا في/etc/os-release. - تثبيت حزمة
.debعلى توزيعة Red Hat (أو حزمة.rpmعلى Debian). ليست الصيغة نفسها ولا المكتبات نفسها. ابحث عن الحزمة الخاصة بعائلتك. - خلط مستودعات إصدارين (مثلًا إضافة حزم Debian 13 إلى Debian 12). إنها أفضل طريقة لتخريب النظام: فالاعتماديات لم تعد متطابقة.
- الظن بأن Ubuntu و Debian متطابقتان. تتقاسمان
aptو.deb، لكن إصدارات برامجهما، وأدوات الشبكة (Netplan على Ubuntu)، والجدار الناري الافتراضي تختلف.
التطبيق العملي (Lab)
أنت على Debian 12. قم بالتحقيق كما لو كنت على خادم لا تعرفه:
cat /etc/os-release
cat /etc/debian_version
dpkg -l | head -n 10 # أولى الحزم المثبّتة
dpkg -l | grep -c '^ii' # كم عددها في المجموع؟
dpkg -s coreutils # بطاقة حزمة
المهام: التعرّف على التوزيعة، وتسجيل إصدارها الدقيق، وعدّ الحزم المثبّتة، وقراءة إصدار الحزمة coreutils. آلة التطبيق مقتصدة عن قصد: فالخادم الكامل يضم غالبًا عدة مئات من الحزم. ثم انقر على تحقّق.
اختبار قصير
- اذكر أربعة عناصر تضيفها التوزيعة إلى نواة Linux.
- ما أقدم توزيعتين ما زالتا تُصانان، وفي أي سنة وُلدتا؟
- إلى أي عائلة تنتمي Ubuntu؟ وما صيغة حزمها؟
- ما الفرق بين
rpmوdnf؟ - وصلت إلى خادم لا تعرفه. ما أول أمر تكتبه لتعرف أي توزيعة يشغّل؟
الأجوبة
- حسب الاختيار: أدوات GNU وآلاف البرامج، وأداة تثبيت، ومدير حزم، ومستودعات، وإعدادات افتراضية، وسياسة إصدارات وتحديثات أمنية.
- Slackware (يوليو 1993) و Debian (أغسطس 1993).
- إلى عائلة Debian؛ حزم
.deb، تُدار بالأداتينdpkgوapt. rpmأداة المستوى المنخفض (تثبّت ملف.rpm، وتستعلم من القاعدة المحلية)؛ أماdnfفأداة المستوى المرتفع التي تجلب الحزم من المستودعات وتحلّ الاعتماديات.cat /etc/os-release(وعلى خادم Red Hat قديم جدًّا:cat /etc/redhat-release).
المصادر المرجعية: التاريخ الرسمي لـ Debian وعقدها الاجتماعي (debian.org)، وتوثيق Fedora و Red Hat، ودورة إصدارات Ubuntu. نص أصلي من MasterLinux.