Linux: تعطل apt / dnf / pacman — الأسباب وطرق الإصلاح

في Linux، تُعد apt وdnf وpacman الأساس الرئيسي لتثبيت البرامج وتحديثها. وعندما تبدو “معطلة”، فالمشكلة لا تعني فقط عدم القدرة على تثبيت تطبيق جديد، بل قد تؤدي أيضاً إلى توقف تحديثات الأمان وصعوبة كبيرة في صيانة النظام. من الأسباب الشائعة: انقطاع التحديث في منتصفه، تلف أحد المرايا، عدم اتساق قاعدة بيانات الحزم، فشل التحقق من التوقيع، تلف dependencies، أو بقاء ملفات lock. المهم هنا ألا تبدأ بحذف cache أو ملفات الإعدادات بشكل عشوائي، بل أن تفهم أولاً ما الجزء الذي تعطل فعلاً.

في بعض الحالات يبدو وكأن مدير الحزم نفسه قد تعطل، بينما تكون المشكلة الحقيقية في الشبكة أو DNS أو إعدادات repository أو نقص المساحة الحرة. لذلك يجب أن تبدأ عملية الفحص بتمييز ما إذا كانت المشكلة في الاتصال، أو في repository، أو في قاعدة البيانات المحلية، أو في dependencies.

الأعراض الشائعة

  • تتوقف apt update أو dnf update أو pacman -Syu مع ظهور خطأ
  • تظهر رسائل عن dependencies غير قابلة للحل أو عن حزم تالفة
  • تصبح repository غير قابلة للاستخدام بسبب خطأ GPG أو خطأ في التوقيع
  • وجود قفل على قاعدة البيانات يمنع أي عملية على الحزم
  • تعيد المرايا أخطاء 404 أو timeout
  • بعد انقطاع التحديث، تتوقف عمليات إدارة الحزم عن العمل بشكل طبيعي
  • بعد تحديث بعض المكتبات، لا يعود مدير الحزم نفسه قادراً على التشغيل

ما الذي يجب التحقق منه أولاً

أول خطوة هي التأكد مما إذا كانت المشكلة فعلاً في مدير الحزم أم أن السبب في الشبكة أو DNS.

ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route

إذا كانت الشبكة أو DNS معطلين أصلاً، فقد يبدو الأمر وكأنه عطل في apt أو dnf أو pacman بينما السبب الحقيقي في مكان آخر. أما إذا كانت الشبكة العادية تعمل ولم تتعطل إلا عمليات الحزم، فعندها يجب التركيز على repository، والمفاتيح، وملفات lock، وcache، وقواعد البيانات، وdependencies.

الأسباب المشتركة بين apt / dnf / pacman

1. انقطاع عملية التحديث

من أكثر الأسباب شيوعاً أن تتوقف عملية التحديث في المنتصف. انقطاع الكهرباء، إغلاق الطرفية، انقطاع اتصال SSH أو تجمد الواجهة الرسومية يمكن أن يترك قاعدة بيانات الحزم أو بعض الحزم في حالة غير مكتملة.

في هذه الحالة لا ينبغي البدء بحذف الملفات مباشرة، بل يجب أولاً محاولة إكمال الحالة غير المنتهية بشكل صحيح.

2. بقاء ملفات lock

تستخدم مدراء الحزم آلية lock لمنع تنفيذ أكثر من عملية في الوقت نفسه. فإذا بقيت عملية تحديث أخرى تعمل أو تُرك ملف lock بعد crash، سيظهر لك أن مدير الحزم قيد الاستخدام من عملية أخرى.

لكن لا ينبغي حذف ملف lock بشكل عشوائي. يجب أولاً التأكد من عدم وجود أي عملية مرتبطة ما زالت تعمل.

ps aux | grep -E 'apt|dpkg|dnf|yum|pacman'

3. تلف إعدادات repository

قد تؤدي repositoryات الطرف الثالث، أو PPA قديم، أو mirror لم يعد صالحاً، أو بقايا إعدادات بعد ترقية التوزيعة، إلى جعل مصادر الحزم نفسها غير صالحة. من الأعراض المعتادة هنا أخطاء 404 أو غياب Release file أو فشل جلب metadata.

4. مشاكل مفاتيح GPG أو التوقيع

يتم التحقق من repositoryات الحزم عادةً بطريقة مشفرة. إذا انتهت صلاحية المفتاح، أو لم يتم استيراده، أو تغيرت آلية إدارة المفاتيح، أو تلف keyring المحلي، فسيتوقف مدير الحزم لأسباب أمنية.

5. تلف dependencies

غالباً ما تتلف dependencies عندما يتم فرض تثبيت إصدارات غير متوافقة، أو خلط أكثر من repository، أو تنفيذ تحديثات جزئية، أو استبدال مكتبات النظام يدوياً. ويُعد هذا أكثر خطورة في الأنظمة التي تستخدم pacman، حيث إن partial update غير موصى به بشدة، لكن apt وdnf أيضاً يصبحان غير مستقرين عند خلط المصادر دون ضوابط.

6. تلف cache أو metadata

قد تؤدي الحزم التي تم تنزيلها بشكل غير كامل، أو metadata القديمة، أو قواعد بيانات المزامنة التالفة، إلى فشل قراءة قوائم الحزم أو إتمام عمليات التثبيت.

7. نقص المساحة الحرة

سبب شائع لكنه مهمل أحياناً هو امتلاء المساحة. فإذا كانت أقسام مثل /var أو /boot ممتلئة، فقد تفشل عملية فك الحزم وكتابة الملفات في منتصف الطريق، مما يترك النظام في حالة غير متناسقة.

df -h
du -sh /var/cache/* 2>/dev/null

ما الذي يجب فحصه عندما يتعطل apt

في أنظمة Debian وUbuntu، من المهم ألا تنظر إلى apt فقط، بل أيضاً إلى حالة dpkg الذي يعمل في الطبقة الأدنى.

إصلاح الحزم غير المكتملة الإعداد

sudo dpkg --configure -a
sudo apt --fix-broken install

بعد تحديث متوقف في المنتصف، غالباً ما تكون هاتان الأمران أول وأفضل نقطة بداية.

إعادة تحميل قوائم الحزم

sudo apt update

إذا ظهرت هنا أخطاء 404 أو أخطاء توقيع أو Release file، فيجب مراجعة /etc/apt/sources.list ومحتويات /etc/apt/sources.list.d/.

تنظيف cache

sudo apt clean
sudo apt autoclean

إذا كانت المشكلة في cache التالف أو القديم، فقد يساعد تنظيفه.

ما الذي يجب فحصه عندما يتعطل dnf

في أنظمة Fedora وRHEL، يجب التركيز بشكل خاص على metadata، وسجل المعاملات، وإعدادات repository.

إعادة بناء metadata

sudo dnf clean all
sudo dnf makecache

إذا كانت معلومات mirror أو metadata تالفة، فهذه غالباً خطوة أولى مفيدة.

فحص dependencies وتناسق النظام

sudo dnf check
sudo dnf distro-sync

يساعد ذلك في معرفة ما إذا كان النظام ما زال متوافقاً مع الحالة المتوقعة لحزم التوزيعة.

مراجعة السجل

sudo dnf history
sudo dnf history info last

غالباً ما يوضح السجل من أي تحديث بدأت المشكلة فعلاً.

ما الذي يجب فحصه عندما يتعطل pacman

في Arch Linux، من المهم فحص قواعد مزامنة الحزم، والمفاتيح، والمرايا، وما إذا كانت هناك تحديثات جزئية.

إعادة مزامنة قواعد البيانات

sudo pacman -Syy

إذا لم تعد قاعدة المزامنة المحلية متطابقة مع repository، فهذه خطوة أولى معتادة.

تنفيذ تحديث كامل

sudo pacman -Syu

في Arch يجب تجنب التحديث الجزئي. تحديث بعض الحزم وترك أخرى قديمة من أكثر أسباب عدم الاتساق شيوعاً.

فحص مشاكل المفاتيح

sudo pacman-key --init
sudo pacman-key --populate

إذا كانت المشكلة مرتبطة بالتوقيعات أو keyring، فقد يلزم إعادة تهيئته.

السجلات مهمة جداً

عند حدوث أخطاء في مدير الحزم، لا تكفي قراءة السطر الأخير فقط. وحدها السجلات والمخرجات التفصيلية توضح ما إذا كانت المشكلة في التوقيع أو dependencies أو الشبكة أو قاعدة البيانات.

apt / dpkg

sudo tail -n 100 /var/log/apt/history.log
sudo tail -n 100 /var/log/dpkg.log

dnf

sudo dnf history
sudo journalctl -xe --no-pager | tail -n 100

pacman

sudo tail -n 100 /var/log/pacman.log

ترتيب عملي للفحص

الخطوة 1: فحص الشبكة وDNS

ping -c 4 8.8.8.8
ping -c 4 google.com

الخطوة 2: فحص المساحة الحرة

df -h

الخطوة 3: فحص العمليات وملفات lock

ps aux | grep -E 'apt|dpkg|dnf|yum|pacman'

الخطوة 4: قراءة السجلات

يجب أولاً معرفة أي عملية تحديداً كانت آخر عملية فشلت فعلياً.

الخطوة 5: استخدام أوامر الإصلاح المناسبة للتوزيعة

في أنظمة apt يبدأ الإصلاح عادةً بـ dpkg --configure -a، وفي dnf بتنظيف metadata، وفي pacman بالمزامنة الكاملة وفحص المفاتيح.

أمور لا ينبغي فعلها

  • حذف ملفات lock دون فهم السبب
  • تثبيت ملفات .deb / .rpm / أو غيرها من مصادر غير موثوقة
  • تكرار التحديثات الجزئية في Arch
  • الخلط العشوائي بين apt وdpkg أو dnf وrpm أو pacman مع تعديلات يدوية
  • تعطيل التحقق من التوقيع دون فهم الخطأ

كيف تتجنب تكرار المشكلة

  • تجنب انقطاع الكهرباء أو الإيقاف القسري أثناء التحديث
  • لا تضف عدداً كبيراً جداً من repositoryات الطرف الثالث
  • أنشئ snapshot أو backup قبل التحديثات الكبيرة
  • اتبع أسلوب التحديث الموصى به من التوزيعة
  • خصوصاً في Arch، تجنب partial update

الخلاصة

حتى لو بدا أن apt أو dnf أو pacman هو نفسه المعطل، فإن السبب الحقيقي يكون غالباً في الشبكة أو locks أو التوقيعات أو dependencies أو cache أو المساحة الحرة أو إعدادات repository. الأهم هو ألا تتصرف مباشرة بالحذف أو إعادة التثبيت العشوائي، بل أن تفهم أولاً من خلال السجلات في أي طبقة حدث الخلل فعلاً. بعد ذلك، استخدم الطريقة المناسبة لكل عائلة: إصلاح dpkg في أنظمة apt، وفحص metadata والسجل في dnf، والمزامنة الكاملة مع فحص المفاتيح في pacman.

اترك ردّاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *