إصلاح: غير قادر على تصحيح المشكلات 'لديك حزم معطلة'



جرب أداة القضاء على المشاكل

قد تجد أنه عندما تحاول تثبيت حزمة على Linux تجد سطرًا مخيفًا يقرأ E: غير قادر على تصحيح المشكلات ، لقد قمت بحجز حزم معطلة. ثم يرفض التثبيت التقدم إلى ما بعد هذه النقطة. قد تجد هذا في أي توزيعة Linux تستخدم apt-get لإدارة الحزم ، والتي تتضمن Debian بالإضافة إلى مختلف البرامج الفرعية Linux Mint و Ubuntu.



إنه ناتج عن التبعيات المعطلة ، والتي تعد أحد الآثار الجانبية لوجود حزم مثبتة تعتمد على حزم أخرى لم يتم تثبيتها. عندما تنتقل apt-get لتثبيت شيء ما ، فإنها تلاحظ أنه ليس لديها إمكانية الوصول إلى شيء ما تحتاجه وبالتالي لا يمكنها المتابعة. يمكن لبعض الحيل الأساسية لسطر الأوامر بالإضافة إلى أداة رسومية إصلاح كل شيء بسرعة.



الطريقة الأولى: استخدام dpkg –configure لإصلاح الحزم المعطلة التي تم احتجازها

أثناء العمل في المحطة ، حاول الركض sudo dpkg –configure -a لبدء عملية التحديث التلقائي التي تبحث عن أي تبعيات معطلة على نظامك ناتجة عن الحزم التي لم يتم تثبيتها. يجب أن تقوم هذه الأداة تلقائيًا بتثبيت أي حزمة تشعر أنها مفقودة دون تدخل المستخدم ، على الرغم من أنه إذا طُلب منك تثبيت شيء ما ، فيجب عليك الضغط على المفتاح y للاستجابة للمطالبة.



إذا لم يعثر على أي حزم معطلة ، فلن ترى أي نتيجة. لقد قمنا بتشغيل هذا على جهاز اختبار نظيف يقوم بتشغيل Xubuntu ، لذلك لم يتم العثور على أي أخطاء ، ولكن إذا كنت تواجه مشكلات 'غير قادر على تصحيح المشكلات ، لديك حزم معطلة' ، فقد يجد هذا العديد من الحزم التي تحتاج إلى تثبيتها . بمجرد تشغيله ، حاول sudo apt-get install -f من سطر الأوامر.



هذا البرنامج سوف يمر ويبني قائمة تبعية ثم قراءة معلومات الحالة. إذا تلقيت رسالة تفيد بوجود حزم '0 تمت ترقيتها ، و 0 مثبتة حديثًا ، و 0 للإزالة و 0 لم تتم ترقيتها' ، فأنت إما تعمل بدون تبعيات معطلة أو أن الأمر السابق أصلح كل شيء. في هذه المرحلة ، يمكنك الجري sudo apt-get clean && sudo apt-get update تليها sudo apt-get ترقية لتحديث كل حزمة على نظامك. قد يستغرق هذا بعض الوقت اعتمادًا على المدة التي واجه فيها نظامك مشكلات الحزمة هذه.

الطريقة الثانية: استخدام الأمر dist-Upgrade

إذا تلقيت رسالة تفيد بأن 'بعض الحزم قد تم تأجيلها' لذا لا يمكنك إكمال الأمر السابق بنجاح ، فعليك تشغيل sudo apt-get dist-Upgrade لتثبيت باقي هذه الحزم. بالإضافة إلى أداء وظيفة الترقية العادية ، يعالج خيار ترقية التوزيع التبعيات المتغيرة بإصدارات أحدث من الحزم. نظرًا لأن apt-get لديه نظام تعارض خاص ، فإنه يحاول عادةً ترقية الحزم الأكثر أهمية على حساب عدم القيام بأي شيء للحزم الأقل أهمية لنظامك. استخدام هذا الأمر يجبر حتى هؤلاء على التحديث.

ومع ذلك ، إذا لم يتم اكتشاف أي حزم معطلة ، فسينتهي بك الأمر برسالة ثالثة حول عدم وجود أي شيء تمت ترقيته وعدم تثبيت أي شيء حديثًا. إذا كانت هذه هي الحالة ، فيمكنك المحاولة sudo apt-get ترقية مرة أخرى حتى إذا كان هناك أي تغييرات ، يمكن أن يترسخ روتين الترقية التلقائي. من ناحية أخرى ، إذا كنت تعرف الاسم المحدد للحزمة التي تحتاجها ، فيمكنك تثبيتها يدويًا.

على سبيل المثال ، افترض أن مكون وقت تشغيل GNUStep هو ما كنت تفتقر إليه لأنك أردت استخدام التوليف الصوتي. يمكنك ببساطة كتابة sudo apt-get install gnustep-gui-runtime لتثبيت هذه الحزمة الحيوية. ضع في اعتبارك أن هذا مجرد مثال ويمكنك استبدال gnustep-gui-runtime باسم أي حزمة تحتاج إلى تثبيتها. تحتوي التوزيعات الحديثة التي تستند إلى معيار apt-get على عدة آلاف من الحزم ، ولكن طالما أنك تعرف اسم الحزمة التي تبحث عنها ، فسيتم إجبارها على التثبيت.

الطريقة الثالثة: إصلاح الحزم المكسورة مع متشابك

إذا كان لديك مدير الحزم الرسومية Synaptic ، فيمكنك أيضًا استخدام هذه الأداة لإصلاح أي حزم معطلة قد تكون لديك. افتح البرنامج ثم حدد تعديل قائمة الاختيار المنسدلة. يجب أن يكون لديك خيار 'Fix Broken Packages' في هذه القائمة ، لذا حدده إذا قمت بذلك. لن يستغرق الأمر وقتًا طويلاً للتشغيل إذا لم يكن هناك العديد من الحزم المعطلة ، ولكن قد تجد عددًا من الأخطاء التي من شأنها إبطاء التنفيذ.

بمجرد الانتهاء من تشغيل كل شيء ، ستلاحظ الكلمات 'تم إصلاح مشاكل التبعية بنجاح' في سطر الحالة السفلي.

يمكنك الآن تحديث الحزم وتثبيتها تمامًا كالعادة. سيفعل معظم المستخدمين الأشياء بهذه الطريقة فقط إذا كانوا يعملون بالفعل في Synaptic ، ولكنها موجودة متى احتجت إليها. بمجرد تشغيله ، يمكنك إغلاق Synaptic والعمل من موجه الأوامر مرة أخرى أو الاستمرار في إجراء التغييرات هنا.

3 دقائق للقراءة