إدارة حزم Ubuntu: دليل مختصر لـ APT و dpkg
ال명령 الأساسية لـ APT و dpkg للحزم في Ubuntu
نظام إدارة الحزم في Ubuntu هو العمود الفقري لتركيب وصيانة البرامج، مما يجعله معرفة أساسية لأي مستخدم لـ Linux أو مسؤول نظام.
تم إنشاء هذه الصورة بواسطة نموذج الذكاء الاصطناعي Flux 1 dev.
ما هو إدارة الحزم APT؟
APT (Advanced Package Tool) هو نظام إدارة الحزم الأساسي في Ubuntu، وهو موروث من Debian. إنه أداة قوية على سطر الأوامر لتركيب، وتحديث، وإزالة حزم البرامج. يقوم APT بحل التبعيات تلقائيًا، ويتصل بالمستودعات الرسمية لـ Ubuntu، وهو الطريقة التقليدية لإدارة حزم النظام على أنظمة Ubuntu وDebian. إذا كنت جديدًا على Ubuntu، فراجع دليلنا حول كيفية تثبيت Ubuntu 24.04 والأدوات المفيدة للبدء بتكوين نظام مناسب.
الميزات الرئيسية:
- مدمج في Ubuntu/Debian: مدمج، لا حاجة لتنصيب إضافي
- مكتبات مشتركة: استخدام فعّال للقرص عبر التبعيات المشتركة للنظام
- تحديثات يدوية: أنت تتحكم في وقت تحديث الحزم
- لا يوجد تأمين: الحزم لها وصول كامل للنظام (مناسب للأدوات النظامية)
- خفيف الوزن: لا يوجد خادم خلفي، يعمل فقط عند الاستدعاء
- بيئة ناضجة: تطور استمر لعقود، مستقر جدًا
مقارنة بين أدوات إدارة الحزم
يدعم Ubuntu عدة أنظمة لإدارة الحزم. إليك كيف تقارن العمليات الأساسية:
| العملية | APT | Snap | Flatpak |
|---|---|---|---|
| البحث | apt search keyword |
snap find keyword |
flatpak search keyword |
| التركيب | sudo apt install package |
sudo snap install package |
flatpak install flathub app.id |
| عرض المثبتة | apt list --installed |
snap list |
flatpak list --app |
| عرض المعلومات | apt show package |
snap info package |
flatpak info app.id |
| تحديث كل شيء | sudo apt update && sudo apt upgrade |
sudo snap refresh |
flatpak update |
| تحديث واحد | sudo apt install --only-upgrade pkg |
sudo snap refresh package |
flatpak update app.id |
| إزالة | sudo apt remove package |
sudo snap remove package |
flatpak uninstall app.id |
| التنظيف | sudo apt autoremove |
snap remove --revision=N |
flatpak uninstall --unused |
| المستودع | /etc/apt/sources.list |
Snap Store (مدمج) | إضافته باستخدام flatpak remote-add |
مقارنة ميزات سريعة
| الميزة | APT | Snap | Flatpak |
|---|---|---|---|
| التحديثات التلقائية | لا | نعم | لا |
| التأمين | لا | نعم | نعم |
| الاعتماديات | مكتبات النظام | معبأة | مكتبات تشغيل مشتركة |
| حجم الحزمة | صغير (5-50MB) | كبير (50-500MB) | متوسط (20-200MB) |
| الوصول إلى الجذر | نعم | نعم | لا (التركيب من المستخدم) |
| سرعة التشغيل | سريعة | أبطأ | سريعة |
| الأفضل لـ | حزم النظام | تطبيقات عالمية | تطبيقات سطح المكتب |
حول هذا الدليل
يركز هذا الدليل على APT (apt/apt-get/dpkg) - نظام إدارة الحزم التقليدي في Ubuntu. APT ضروري لإدارة حزم النظام، والمكتبات، والخدمات على أنظمة Ubuntu وDebian.
للمُدراء الآخرين:
- 📦 دليل إدارة الحزم Snap - حزم عالمية مع تحديثات تلقائية وتأمين
- 📦 دليل إدارة الحزم Flatpak - تطبيقات سطح المكتب عبر الأنظمة مع أذونات دقيقة
لكل مُدير حزم مزايا محددة. استخدم APT للحزم النظامية والاعتماديات، Snap للمتوافقية عبر الإصدارات والتحديثات التلقائية، وFlatpak لتطبيقات سطح المكتب مع أذونات دقيقة.
إدارة الحزم APT - دليل مفصل
فهم APT مقابل apt-get
APT (apt) - الخيار الحديث
تم تقديمه في Ubuntu 14.04، apt يدمج ميزات من apt-get و apt-cache مع تجربة مستخدم محسّنة:
المزايا:
- شريط تقدم وألوان مُحسّنة
- أوامر أكثر سهولة
- إخراج أوضح للقراءة البشرية
- يدمج وظائف أداوت متعددة
متى تستخدمه: العمليات اليومية على سطر الأوامر التفاعلية
apt-get - الخيار التقليدي
الأداة الأصلية لإدارة الحزم، ما زال يُستخدم على نطاق واسع:
المزايا:
- واجهة برمجة تطبيقات أكثر استقرارًا (أفضل للكتابة)
- توافقية للنسخ القديمة
- تنسيق إخراج متوقع
- تحكم أكثر دقة
متى تستخدمه: النصوص البرمجية، التلقائية، الأنظمة القديمة
نصيحة مُهمة: للحصول على تنقل أسرع في النافذة وزيادة كفاءة العمل، راجع قائمة اختصارات لوحة المفاتيح في Ubuntu لزيادة إنتاجيتك أثناء إدارة الحزم.
أوامر إدارة الحزم الأساسية
تحديث قائمة الحزم
تحديث دائمًا قائمة الحزم قبل التثبيت أو التحديث:
# تحديث مؤشر الحزم
sudo apt update
# أو باستخدام apt-get
sudo apt-get update
هذا الأمر يتحديث قاعدة البيانات المحلية مع معلومات حول الحزم المتاحة وأحدث إصداراتها من المستودعات المُكوّنة.
تثبيت الحزم
التثبيت الأساسي:
# تثبيت حزمة واحدة
sudo apt install package-name
# تثبيت عدة حزم
sudo apt install package1 package2 package3
# تثبيت إصدار محدد
sudo apt install package-name=version-number
أمثلة:
# تثبيت خادم الويب Nginx
sudo apt install nginx
# تثبيت Python و pip
sudo apt install python3 python3-pip
# تثبيت أدوات البناء الأساسية
sudo apt install build-essential
# تثبيت أدوات مراقبة النظام
sudo apt install htop
للاحتياجات الخاصة لمراقبة الأداء، مثل تتبع أداء وحدات معالجة الرسومات على الأنظمة ذات وحدات NVIDIA، راجع دليلنا حول تطبيقات مراقبة وحدات معالجة الرسومات في Linux/Ubuntu.
تثبيت بدون طلبات (مفيد للنصوص البرمجية):
sudo apt install -y package-name
# أو
sudo DEBIAN_FRONTEND=noninteractive apt install -y package-name
تثبيت من ملف .deb:
# الطريقة 1: باستخدام apt (المُوصى بها، تتعامل مع التبعيات)
sudo apt install ./package.deb
# الطريقة 2: باستخدام dpkg
sudo dpkg -i package.deb
sudo apt install -f # إصلاح التبعيات المفقودة
ملاحظة: عند العمل مع ملفات .deb المُحمّلة، قد ترغب في استخدام مدير ملفات يحتوي على قائمة سياقية جيدة. راجع مقارنتنا بين مدير الملفات لـ Ubuntu 24.04 (Nautilus مقابل Nemo مقابل Dolphin مقابل Caja) للعثور على واحد يناسب مسارك.
تحديث الحزم
تحديث الحزم المثبتة:
# تحديث جميع الحزم (آمن، لا يزالحذف الحزم)
sudo apt upgrade
# تحديث حزمة محددة
sudo apt install --only-upgrade package-name
# تحديث كامل (قد يحذف الحزم لحل التبعيات)
sudo apt full-upgrade
# تحديث إصدار النظام (لتحديثات الإصدار الرئيسية)
sudo apt dist-upgrade
تسلسل التحديث الكامل:
# الإجراء الموصى به
sudo apt update
sudo apt upgrade -y
sudo apt autoremove
sudo apt autoclean
تحديث إصدار Ubuntu:
# من إصدار LTS إلى إصدار LTS التالي
sudo do-release-upgrade
# لتحديث أي إصدار
sudo do-release-upgrade -d
قائمة الحزم
قائمة الحزم المثبتة:
# جميع الحزم المثبتة
apt list --installed
# مع فلتر grep
apt list --installed | grep package-name
# عدد الحزم المثبتة
apt list --installed | wc -l
# باستخدام dpkg
dpkg -l
dpkg --list
dpkg -l | grep package-name
قائمة الحزم القابلة للتحديث:
# عرض الحزم ذات التحديثات المتاحة
apt list --upgradable
# محاكاة التحديث التفصيلية
apt list --upgradable -a
قائمة جميع الحزم المتاحة:
# جميع الحزم في المستودعات
apt list
# قائمة من مستودع محدد
apt list | grep "source-name"
البحث عن الحزم
بحث عن أسماء الحزم والوصف:
# البحث باستخدام apt
apt search keyword
# البحث غير الحساس للحالة
apt search -i keyword
# عرض أسماء الحزم فقط
apt-cache search keyword
# البحث عن أسماء الحزم فقط (أسرع)
apt-cache search --names-only keyword
أمثلة:
# البحث عن محرر
apt search text editor
# البحث عن قاعدة بيانات
apt search database
# البحث عن حزم Python
apt search python | grep python3
عرض معلومات الحزم
معلومات الحزم التفصيلية:
# عرض تفاصيل الحزمة
apt show package-name
# باستخدام apt-cache
apt-cache show package-name
# عرض التبعيات للحزمة
apt-cache depends package-name
# عرض التبعيات العكسية
apt-cache rdepends package-name
# فحص سياسة الحزمة وأحدث إصداراتها
apt-cache policy package-name
# عرض إحصائيات الحزمة
apt-cache stats
التحقق من إذا كانت الحزمة مثبتة:
# الطريقة 1
dpkg -s package-name
# الطريقة 2
dpkg -l package-name
# الطريقة 3
apt list --installed package-name
# الطريقة 4 (الخرج 0 إذا كانت مثبتة)
dpkg-query -W package-name
إزالة الحزم
إزالة الحزم:
# إزالة الحزمة (احتفظ بملفات التكوين)
sudo apt remove package-name
# إزالة الحزمة وملفات التكوين (إعادة تثبيت)
sudo apt purge package-name
# إزالة مع التبعيات
sudo apt autoremove package-name
# إزالة كاملة للحزمة وملفات التكوين
sudo apt purge package-name && sudo apt autoremove
تنظيف النظام:
# إزالة التبعيات غير المستخدمة
sudo apt autoremove
# إزالة مع إعادة تثبيت
sudo apt autoremove --purge
# حذف ملفات الحزم المحمّلة
sudo apt clean
# حذف إصدارات قديمة من الحزم
sudo apt autoclean
التحقق من استخدام القرص:
# التحقق من حجم المخزن
du -sh /var/cache/apt/archives
# التحقق من حجم الحزم الكلي
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n
إيقاف تحديث الحزم (منع التحديثات)
إيقاف الحزم:
# إيقاف الحزمة عند الإصدار الحالي
sudo apt-mark hold package-name
# إلغاء إيقاف الحزمة
sudo apt-mark unhold package-name
# عرض الحزم الموقوفة
apt-mark showhold
# إيقاف عدة حزم
sudo apt-mark hold package1 package2 package3
الحالة: منع إصدارات معينة من البرامج من التحديث تلقائيًا.
استخدام dpkg - أداة إدارة الحزم الأساسية
dpkg هو أداة إدارة الحزم الأساسية التي يستخدمها APT:
** الأوامر الأساسية لـ dpkg:**
# تثبيت حزمة
sudo dpkg -i package.deb
# إزالة حزمة
sudo dpkg -r package-name
# إزالة حزمة مع إعادة تثبيت
sudo dpkg -P package-name
# قائمة الحزم المثبتة
dpkg -l
# قائمة الملفات في الحزمة
dpkg -L package-name
# العثور على الحزمة التي تمتلك ملفًا
dpkg -S /path/to/file
# التحقق من حالة الحزمة
dpkg -s package-name
# إعادة تكوين الحزمة
sudo dpkg-reconfigure package-name
# التحقق من سلامة الحزمة
dpkg -V package-name
إصلاح الحزم المعطلة:
# إعادة تكوين الحزم المعطلة
sudo dpkg --configure -a
# إصلاح التبعيات المفقودة
sudo apt install -f
# إعادة تثبيت قسرية
sudo apt install --reinstall package-name
إدارة المستودعات
عرض المستودعات
التحقق من المستودعات المكوّنة:
# عرض قائمة المصادر
cat /etc/apt/sources.list
# عرض المصادر الإضافية
ls /etc/apt/sources.list.d/
# عرض جميع المستودعات النشطة
grep -r --include '*.list' '^deb ' /etc/apt/
إضافة مستودعات
إضافة PPA (مستودع الحزم الشخصي):
# إضافة مستودع PPA
sudo add-apt-repository ppa:user/ppa-name
sudo apt update
# مثال: إضافة مستودع Git
sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install git
إضافة مستودع يدويًا:
# إضافة مستودع إلى sources.list
echo "deb http://repository-url distribution component" | sudo tee -a /etc/apt/sources.list.d/custom.list
# إضافة مفتاح GPG
wget -qO - https://example.com/key.gpg | sudo apt-key add -
# تحديث قائمة الحزم
sudo apt update
إدارة المفاتيح الحديثة (Ubuntu 22.04+):
# تنزيل وإضافة المفتاح إلى المخزن
wget -qO - https://example.com/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/custom.gpg
# إضافة مستودع موقّع
echo "deb [signed-by=/etc/apt/keyrings/custom.gpg] http://repo-url dist component" | sudo tee /etc/apt/sources.list.d/custom.list
إزالة المستودعات
# إزالة PPA
sudo add-apt-repository --remove ppa:user/ppa-name
# أو حذف ملف القائمة
sudo rm /etc/apt/sources.list.d/ppa-name.list
# تحديث
sudo apt update
مُدراء الحزم البديلة
يدعم Ubuntu أيضًا Snap و Flatpak لتعبئة التطبيقات العالمية:
-
Snap: راجع دليلنا الشامل حول مدير الحزم Snap للحصول على معلومات تفصيلية حول التثبيت، الاستخدام، القنوات، التقييد، والمعالجة.
-
Flatpak: راجع دليلنا الشامل حول مدير الحزم Flatpak للحصول على معلومات تفصيلية حول التثبيت، Flathub، الأذونات، المكتبات، والإدارة.
إدارة الحزم المتقدمة
محاكاة العمليات (التشغيل بدون تثبيت)
# محاكاة التثبيت
apt install -s package-name
# محاكاة التحديث
apt upgrade -s
# عرض ما سيتم تثبيته
apt-cache showpkg package-name
تنزيل الحزم دون تثبيت
# تنزيل الحزمة فقط
apt download package-name
# تنزيل مع التبعيات
apt install --download-only package-name
# تنزيل إلى دليل محدد
cd /path/to/dir
apt download package-name
العثور على ملفات الحزم
# أي حزمة توفر ملفًا
dpkg -S /path/to/file
# بحث عن ملفات في الحزم (بما في ذلك غير المثبتة)
apt-file search filename
# تثبيت apt-file أولاً
sudo apt install apt-file
sudo apt-file update
تثبيت الحزم
أنشئ /etc/apt/preferences لتحكم في إصدارات الحزم:
# تثبيت حزمة إلى إصدار محدد
sudo nano /etc/apt/preferences
أضف:
Package: package-name
Pin: version 1.2.3*
Pin-Priority: 1001
التحقق من ثغرات الحزم
# التحقق من التحديثات الأمنية
sudo apt list --upgradable | grep security
# التحقق من حزمة محددة لـ CVEs
apt-cache policy package-name
حل المشكلات الشائعة
إصلاح الحزم المعطلة
# الطريقة 1: إصلاح التبعيات
sudo apt install -f
# الطريقة 2: إعادة تكوين الحزم
sudo dpkg --configure -a
# الطريقة 3: تنظيف وتحديث
sudo apt clean
sudo apt update
sudo apt upgrade
# الطريقة 4: إصلاح قسري
sudo apt --fix-broken install
إصلاح “قاعدة بيانات مغلقة”
# حذف ملفات القفل (فقط إذا لم يكن هناك عملية apt تعمل!)
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock
sudo dpkg --configure -a
التحقق من العمليات العاملة أولاً:
ps aux | grep -i apt
sudo lsof /var/lib/dpkg/lock-frontend
خطأ مطابقة المجموعات
# تنظيف المخزن وإعادة المحاولة
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update
أخطاء المفاتيح/GPG
# إعادة إضافة المفتاح
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY_ID
# أو تنزيل المفتاح
wget -qO - https://repo-url/key.gpg | sudo apt-key add -
# الطريقة الحديثة (Ubuntu 22.04+)
wget -qO - https://repo-url/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/repo.gpg
التبعيات غير المُلبية
# جرّب aptitude (محلل تبعيات أفضل)
sudo apt install aptitude
sudo aptitude install package-name
# أو حل يدوي
sudo apt install package-name package-dependency
مستودع غير موجود (404)
# تحديث إلى مستودع صحيح
sudo nano /etc/apt/sources.list
# تغيير اسم الإصدار القديم إلى الحالي
# أو حذف PPA القديم
sudo add-apt-repository --remove ppa:name/ppa
الممارسات المثلى
الصيانة الدورية
روتين أسبوعي:
#!/bin/bash
# نسخة نصية لتحديث النظام
echo "تحديث قائمة الحزم..."
sudo apt update
echo "تحديث الحزم..."
sudo apt upgrade -y
echo "إزالة الحزم غير المستخدمة..."
sudo apt autoremove -y
echo "تنظيف مخزن الحزم..."
sudo apt autoclean
echo "تم الانتهاء من التحديث!"
التحديثات الأمنية
تحديثات تلقائية للتحديثات الأمنية:
# تثبيت unattended-upgrades
sudo apt install unattended-upgrades
# تكوين
sudo dpkg-reconfigure unattended-upgrades
# تحرير التكوين
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
تكوين الخادم: إذا كنت تدير خادم Ubuntu، فإن تكوين الشبكة بشكل صحيح ضروري للحصول على تنزيلات الحزم وتحديثات النظام بشكل موثوق. تعلّم كيفية تغيير عنوان IP الثابت في خادم Ubuntu للتأكد من اتصال مستقر لإدارة الحزم.
نسخة احتياطية لقائمة الحزم
تصدير الحزم المثبتة:
# إنشاء نسخة احتياطية
dpkg --get-selections > ~/package-list.txt
# أو مع الحزم المثبتة بشكل صريح
apt-mark showmanual > ~/manually-installed.txt
# استعادة على نظام آخر
sudo dpkg --set-selections < ~/package-list.txt
sudo apt-get dselect-upgrade
التحقق من صحة النظام
# التحقق من التبعيات المعطلة
sudo apt check
# التحقق من جميع الحزم
sudo debsums -c
# التحقق من سجلات النظام
journalctl -xe | grep -i apt
tail -f /var/log/apt/history.log
تحسين الأداء
تنزيل الحزم أسرع
تفعيل التنزيل المتوازي:
تحرير /etc/apt/apt.conf.d/99parallel:
echo 'Acquire::Queue-Mode "host";' | sudo tee /etc/apt/apt.conf.d/99parallel
echo 'Acquire::http::Pipeline-Depth "5";' | sudo tee -a /etc/apt/apt.conf.d/99parallel
استخدام أسرع مرآة:
# تثبيت apt-fast
sudo add-apt-repository ppa:apt-fast/stable
sudo apt update
sudo apt install apt-fast
# استخدم apt-fast بدلًا من apt
sudo apt-fast install package-name
تقليل حجم المخزن
# حد حجم المخزن إلى 100MB
echo 'APT::Archives::MaxSize "100";' | sudo tee /etc/apt/apt.conf.d/99max-cache
نصائح مفيدة لإدارة الحزم
تحديث جميع مُدراء الحزم
#!/bin/bash
# تحديث جميع مُدراء الحزم
echo "=== تحديث APT ==="
sudo apt update && sudo apt upgrade -y
echo "=== تحديث Snap ==="
sudo snap refresh
echo "=== تحديث Flatpak ==="
flatpak update -y
echo "تم تحديث جميع الأنظمة!"
العثور على الحزم الكبيرة
# قائمة الحزم المثبتة الأكبر
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head -20
# أو تنسيق أكثر قابلية للقراءة
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head -20 | awk '{printf "%.2f MB\t%s\n", $1/1024, $2}'
مراجعة الحزم
#!/bin/bash
# مراجعة نظام الحزم
echo "=== إحصائيات الحزم ==="
echo "عدد الحزم المثبتة: $(dpkg -l | grep ^ii | wc -l)"
echo "عدد الحزم القابلة للتحديث: $(apt list --upgradable 2>/dev/null | grep -c upgradable)"
echo "عدد الحزم الموقوفة: $(apt-mark showhold | wc -l)"
echo "عدد الحزم القابلة للإزالة: $(apt autoremove --dry-run | grep -Po '^\d+')"
echo "حجم المخزن: $(du -sh /var/cache/apt/archives | cut -f1)"
ملخص سريع
** الأوامر الأساسية:**
# تحديث وتحديث
sudo apt update && sudo apt upgrade -y
# تثبيت حزمة
sudo apt install package-name
# إزالة حزمة
sudo apt remove package-name
# بحث عن حزمة
apt search keyword
# عرض معلومات الحزمة
apt show package-name
# قائمة المثبتة
apt list --installed
# تنظيف النظام
sudo apt autoremove && sudo apt autoclean
# إصلاح الحزم المعطلة
sudo apt install -f && sudo dpkg --configure -a
الخاتمة
الاستحواذ على نظام إدارة الحزم في Ubuntu ضروري لإدارة النظام بكفاءة. سواء كنت تستخدم الأمر الحديث apt للجلسات التفاعلية، أو apt-get للنصوص البرمجية، أو استكشاف الحزم العالمية مع Snap وFlatpak، فإن فهم هذه الأدوات سيساعدك في الحفاظ على نظام Ubuntu آمن، محدث، ومرتب.
ابدأ بأوامر أساسية، وقم تدريجيًا بدمج تقنيات متقدمة، واحتفظ دائمًا بنظامك محدثًا. الصيانة الدورية، مع الممارسات المثلى، تضمن تجربة Ubuntu سلسة وموثوقة.
نصيحة مُهمة: دائمًا قم بتشغيل sudo apt update قبل تثبيت أو تحديث الحزم للتأكد من أنك تعمل مع أحدث معلومات الحزم!
روابط مفيدة
- التوثيق الرسمي لـ Ubuntu
- دليل المستخدم لـ APT
- بحث الحزم في Ubuntu
- متجر Snap
- مستودع Flathub
- دليل المدير في Debian
- دليل خادم Ubuntu
- صفحات المساعدة:
man apt,man apt-get,man dpkg