انتقل إلى المحتوى الرئيسي

الفصل 10.3 - التجميع والحزم البديلة

أهداف التعلم​

في نهاية هذا الفصل، ستكون قادرًا على:

  • تجميع البرمجيات من المصادر
  • استخدام Snap للحزم العالمية
  • استخدام Flatpak للتطبيقات
  • فهم المزايا/العيوب
  • اختيار الأداة المناسبة حسب الحالة

التجميع من المصادر​

المتطلبات المسبقة​

# أدوات التجميع
sudo apt install build-essential # Ubuntu/Debian
sudo yum groupinstall "Development Tools" # Red Hat/CentOS

# الأدوات اللازمة
# - gcc/g++ (المترجم)
# - make (نظام البناء)
# - autoconf, automake
# - libtool

العملية القياسية​

# 1. تنزيل المصادر
wget http://example.com/software-1.0.tar.gz
tar -xzf software-1.0.tar.gz
cd software-1.0

# 2. التكوين
./configure --prefix=/usr/local

# الخيارات الشائعة
./configure --prefix=/usr/local \
--enable-feature \
--disable-other \
--with-library=/usr/lib

# 3. التجميع
make

# 4. التثبيت
sudo make install

# 5. التنظيف (اختياري)
make clean

مثال كامل​

#!/bin/bash
# مثال تجميع

VERSION="1.0"
SOFTWARE="mon-software"
PREFIX="/usr/local"

# تنزيل
wget "http://example.com/${SOFTWARE}-${VERSION}.tar.gz"
tar -xzf "${SOFTWARE}-${VERSION}.tar.gz"
cd "${SOFTWARE}-${VERSION}"

# التكوين
./configure --prefix="$PREFIX"

# التجميع
make -j$(nproc) # استخدام جميع وحدات المعالجة المركزية

# التثبيت
sudo make install

# التحقق
which mon-software
mon-software --version

Snap​

ما هو Snap؟​

Snap هو نظام حزم عالمي تم تطويره بواسطة Canonical.

المزايا:

  • عالمي (جميع التوزيعات)
  • تحديث تلقائي
  • عزل (sandbox)
  • التبعيات مضمنة

التثبيت​

# Ubuntu (مثبت بالفعل)
# توزيعات أخرى
sudo apt install snapd # Debian
sudo yum install snapd # Red Hat/CentOS

الاستخدام​

# البحث
snap find nom-paquet

# التثبيت
sudo snap install nom-paquet

# قائمة المثبتات
snap list

# التحديث
sudo snap refresh nom-paquet
sudo snap refresh # الكل

# الإزالة
sudo snap remove nom-paquet

# المعلومات
snap info nom-paquet

أمثلة​

# التطبيقات الشائعة
sudo snap install code # VS Code
sudo snap install docker # Docker
sudo snap install node --classic # Node.js
sudo snap install chromium # Chromium

Flatpak​

ما هو Flatpak؟​

Flatpak هو نظام توزيع تطبيقات عالمي.

المزايا:

  • عالمي
  • عزل
  • تطبيقات سطح المكتب
  • مستودعات (Flathub)

التثبيت​

# Ubuntu/Debian
sudo apt install flatpak

# Red Hat/CentOS/Fedora
sudo yum install flatpak
# أو
sudo dnf install flatpak

التكوين​

# إضافة Flathub (المستودع الرئيسي)
flatpak remote-add --if-not-exists flathub \
https://flathub.org/repo/flathub.flatpakrepo

# عرض المستودعات
flatpak remotes

الاستخدام​

# البحث
flatpak search nom-app

# التثبيت
flatpak install flathub nom-app

# قائمة المثبتات
flatpak list

# التحديث
flatpak update nom-app
flatpak update # الكل

# الإزالة
flatpak uninstall nom-app

# المعلومات
flatpak info nom-app

أمثلة​

# التطبيقات الشائعة
flatpak install flathub org.gimp.GIMP
flatpak install flathub org.videolan.VLC
flatpak install flathub com.spotify.Client

المقارنة​

الميزةapt/yumSnapFlatpakالتجميع
عالميلانعمنعمنعم
عزللانعمنعملا
الحجمصغيركبيركبيرمتغير
الأداءممتازجيدجيدممتاز
التحديثاتيدويتلقائيتلقائييدوي
الاستخدامنظامتطبيقاتسطح المكتبتطوير

اختيار الأداة المناسبة​

apt/yum​

متى تستخدم:

  • حزم النظام
  • خدمات الخادم
  • الأداء الحرج
  • التحكم الكامل

Snap​

متى تستخدم:

  • تطبيقات عالمية
  • تحديثات تلقائية
  • الحاجة إلى العزل
  • تطوير

Flatpak​

متى تستخدم:

  • تطبيقات سطح المكتب
  • الحاجة إلى العزل
  • متعددة التوزيعات
  • تطبيقات رسومية

التجميع​

متى تستخدم:

  • الحاجة إلى إصدار محدد
  • خيارات تجميع مخصصة
  • عدم توفر حزمة
  • تطوير

الممارسات الجيدة​

التجميع​

# 1. قراءة README/INSTALL
# 2. التحقق من التبعيات
# 3. استخدام --prefix المناسب
# 4. اختبار قبل التثبيت
# 5. توثيق الخيارات المستخدمة

Snap/Flatpak​

# 1. التحقق من المصدر (رسمي)
# 2. فهم الأذونات
# 3. مراقبة مساحة القرص
# 4. التحديث بانتظام

الملخص​

في هذا الفصل، تعلمت:

التجميع: configure, make, make install
Snap: حزم عالمية، تحديث تلقائي، عزل
Flatpak: تطبيقات سطح المكتب، Flathub، عزل
المقارنة: اختيار حسب الاحتياجات
الممارسة: تجميع، تثبيت Snap/Flatpak


الخطوات التالية​

الوحدة 11: المراقبة والسجلات (مع مراقبة crons)
الوحدة 12: الإدارة المتقدمة


تم إنشاء الفصل في: ديسمبر 2024