إصلاح مشكلة عدم قدرة الأمر Apt-Get Lock على الحصول على القفل /var/lib/dpkg/lock-frontend في أوبونتو

تعني هذه الرسالة E: Could not get lock /var/lib/dpkg/lock-frontendأن عملية أخرى لإدارة الحزم تمتلك القفل الذي يحتاجه نظام إدارة الحزم المتقدم (APT). يحمي هذا القفل تغييرات الحزم من العمليات المتداخلة. وتظهر هذه الرسالة عادةً عندما يقوم مُحدِّث البرامج، أو طرفية أخرى، أو تحديث تلقائي بتثبيت الحزم أو تهيئتها. الحل الأمثل هو تحديد هذه العملية وتركها تُكمل عملها؛ فحذف ملف القفل ليس الخطوة الأولى.

تنطبق الأوامر المذكورة أدناه على أنظمة أوبونتو التي تستخدم APT وdpkg. تختلف تسميات سطح المكتب وتوقيت التحديث التلقائي باختلاف إصدار أوبونتو وإعداداته، لذا اعتبر مخرجات العملية على جهازك هي الدليل الحاسم. توثق أدلة أوبونتو 24.04 LTS المرفقة أدناه هذه الأوامر؛ راجع الدليل الخاص بإصدارك إذا كان سلوكها مختلفًا.

ما يُخبرك به خطأ القفل - وما لا يُخبرك به

تم التحقق: dpkg يقوم dpkg بتثبيت وإدارة الحزم، بينما APT هي واجهة سطر الأوامر الخاصة به. lock-frontendيُستخدم المسار لتنسيق عملية إدارة الحزم. لذا، يشير الخطأ إلى وجود تعارض في القفل وقت تنفيذ الأمر، وليس بالضرورة إلى تلف قاعدة بيانات الحزم. يوضح دليل dpkg الخاص بنظام Ubuntu دور dpkg وحالات الحزم.

يعتمد الأمر على نظامك: قد يكون مُثبِّت القفل برنامج تحديث رسومي، aptأو apt-getبرنامجًا ثانويًا، أو مُثبِّت برامج، أو مهمة صيانة تلقائية. لا تفترض اسم العملية من الخطأ وحده. أولًا، أغلق أي نافذة أخرى لمدير الحزم قمت بفتحها، وتحقق من العمليات النشطة على الجهاز.

لم يثبت ذلك من خلال الرسالة: فهي لا تثبت أن ملف القفل قديم، أو أن نظام أوبونتو متوقف، أو أن قاعدة بيانات الحزم تالفة. قد يبقى ملف القفل على القرص بعد انتهاء العملية؛ وجوده وحده لا يدل على أن عملية ما لا تزال تملك القفل. تحقق من وجود عملية قبل إجراء أي تغيير.

الخطوة 1: التحقق من وجود مدير حزم قيد الاستخدام بالفعل

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

نافذة تحديث البرامج تقوم بتثبيت التحديثات، لذا انتظر حتى تنتهي عملية تثبيت الحزمة قبل إعادة محاولة أمر الطرفية.
يعرض برنامج تحديث البرامج عملية تثبيت تحديث جارية؛ انتظر حتى تنتهي العملية قبل بدء مهمة حزمة أخرى.

إذا لم يظهر أي تحديث رسومي، فافحص قائمة العمليات:

ps -eo pid,ppid,stat,etime,cmd | grep -E '[a]pt|[d]pkg|unattended'

ابحث عن أوامر مثل aptأو apt-getأو dpkgأو أو unattended-upgrade. التطابق دليلٌ فقط، وليس دليلاً قاطعاً على أن المستخدم هو صاحب القفل: فقد يُظهر البحث أيضاً أوامر غير ذات صلة أو عملية الفحص نفسها. دوّن مُعرّف العملية (PID) والأمر، ثم افحص العملية في الخطوة التالية.

الخطوة الثانية: تحديد العملية التي تُبقي القفل

استخدم هذه الأداة fuserلمعرفة ما إذا كانت عملية ما تصل إلى قفل الواجهة الأمامية. شغّلها بصلاحيات المسؤول حتى تتمكن من الإبلاغ عن العمليات المملوكة لمستخدمين آخرين.

sudo fuser -v /var/lib/dpkg/lock-frontend

يمكنك أيضًا التحقق من مسارات قفل مدير الحزم الشائعة الأخرى:

sudo fuser -v /var/lib/dpkg/lock /var/cache/apt/archives/lock /var/lib/apt/lists/lock

fuserيعرض هذا الأمر معرّفات العمليات التي تستخدم الملف المحدد؛ ويتضمن وضعه المطوّل تفاصيل العملية. إذا طبع معرّف عملية (PID)، قارنه بقائمة العمليات وافحصه باستخدام الأمر المناسب ps -fp PID، مع استبدال المعرّف PIDبالرقم المعروض. قد لا يُرجع الأمر أي نتيجة عندما لا تستخدم أي عملية متاحة المسار؛ هذه النتيجة مفيدة، لكنها لا تُشخّص سبب فشل الأمر السابق. راجع دليل Ubuntu fuser للاطلاع على مخرجاته وقيوده.

يقوم طرفية بالتحقق من عمليات APT و dpkg ويسأل fuser عن العملية التي تصل إلى قفل الواجهة الأمامية.
أوامر طرفية للتحقق من عمليات apt و dpkg وتحديد عملية باستخدام قفل الواجهة الأمامية.

الخطوة 3: انتظر، أو أوقف فقط المهمة التي تم التأكد من تعطلها

إذا كانت العملية تقوم بتنزيل الحزم، أو فك ضغط الملفات، أو تهيئة الحزم، أو عرض التقدم في مُحدِّث رسومي، فدعها تُكمل. قد تستغرق التحديثات الكبيرة والأقراص البطيئة وقتًا أطول من المتوقع. عند انتهاء العملية، أعد محاولة تنفيذ apt-getالأمر الأصلي. لن يؤدي بدء أمر APT آخر أثناء تشغيل الأمر الأول إلى تسريع انتهاء الأمر الأول.

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

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

كحل أخير، إذا تحققت من أن العملية لا تستجيب بالفعل، وحددت معرف العملية (PID) الخاص بها بدقة، وفهمت أن مقاطعة تكوين الحزمة قد تترك الحزم غير مكتملة، فأرسل إشارة إنهاء عادية:

sudo kill -TERM PID

استبدل PIDبمعرف العملية المؤكد. تجنب استخدام أوامر مثل kill -9`request` killall dpkgأو `request` أو ` fuser -krequest` كإصلاحات روتينية؛ فقد يؤدي الإنهاء القسري إلى مقاطعة البرامج النصية للحزمة أو ترك العمل قيد الاستعادة. إذا كانت المهمة خدمة تلقائية وليست خدمة قمت بتشغيلها، فتحقق من حالتها أو انتظر بدلاً من إنهاء عملية غير مألوفة.

الخطوة الرابعة: إصلاح إعدادات الحزمة فقط في حال انقطاع المهمة السابقة.

إذا لم تكن هناك عملية APT أو dpkg متبقية وتم مقاطعة التثبيت أو الترقية السابقة، فاطلب من dpkg إنهاء تكوين الحزم غير المضغوطة، ثم تحقق من حالة حزمة APT:

sudo dpkg --configure -a
sudo apt-get check
بعد التأكد من عدم وجود أي عملية حزمة نشطة، يمكن تشغيل تكوين dpkg وفحوصات تبعية APT.
أوامر طرفية لإكمال تكوين dpkg المعلق والتحقق من قاعدة بيانات الحزم بعد عملية مقاطعة.

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

المفاهيم الخاطئة الشائعة حول أخطاء القفل

  • "ملف القفل موجود، لذا يجب حذفه." كلا. وجود الملف وحده لا يُحدد ما إذا كانت عملية ما تحتفظ بالقفل. حذفه أثناء عمل عملية ما لا يُوقف تلك العملية، وقد يسمح بتشغيل أمر حزمة آخر على قاعدة بيانات الحزم نفسها. تحقق fuserمن ذلك باستخدام قائمة العمليات.
  • "لم يظهر مُعرّف العملية، لذا فإن قاعدة البيانات تالفة." ليس بالضرورة. قد يكون حامل القفل قد خرج بين عمليات التحقق، أو ربما تم تحرير القفل السابق، أو قد يكون الخطأ متعلقًا بمسار قفل آخر. أعد المحاولة مرة واحدة بعد التأكد من عدم وجود أي مهمة حزمة متبقية. أصلح dpkg فقط إذا تمت مقاطعة عملية ما أو إذا أشارت أخطاء الحزمة إلى تكوين غير مكتمل.
  • "كل خطأ في القفل يحتاج إلى dpkg --configure -a." يعالج هذا الأمر عمليات التهيئة المعلقة؛ ولا يحل قفلًا لا يزال محجوزًا بواسطة عملية نشطة. انتظر أو حلّ القفل المحجوز أولًا، ثم استخدم أمر الإصلاح عند الحاجة فقط.
  • يُزال القفل تلقائيًا بعد عدد محدد من الدقائق. تعتمد جداول التحديث التلقائي ومدة المهمة على الإصدار والإعدادات والشبكة والجهاز. تحقق من العملية والتقدم الفعليين بدلًا من الاعتماد على مؤقت.

كيفية معرفة ما إذا كان الإصلاح قد نجح

أعد تنفيذ الأمر الأصلي بعد خروج حامل القفل. في حال نجاح التنفيذ، يجب تجاوز رسالة القفل وإكمال عملية الحزمة المطلوبة. إذا dpkg --configure -aانتهى الأمر apt-get checkولم يُبلغ عن أي مشاكل في التبعيات، فهذا يعني أن إعدادات الحزمة وفحوصات التبعيات في حالة أفضل؛ مع ذلك، لا يضمن هذا حل جميع مشاكل المستودع أو الشبكة غير ذات الصلة.

إذا عاد خطأ القفل فورًا، فسجّل مسار القفل بدقة، ومخرجات sudo fuser -vذلك المسار، وأمر العملية المطابق ومعرّفها (PID)، وما إذا كانت المهمة لا تزال قيد التقدم. هذه التفاصيل تميّز بين تحديث متنافس عادي وعملية تحتاج إلى مزيد من استكشاف الأخطاء وإصلاحها. لا تقم بإزالة الملفات من /var/lib/dpkgملفات القفل أو مسحها كبديل لتحديد العملية.

المراجع الرسمية

اترك تعليقاً

حمّل لعبة FlightGear مجاناً: دليل التثبيت الرسمي

حمّل لعبة FlightGear مجاناً: دليل التثبيت الرسمي

حمّل برنامج FlightGear مجاناً من الموقع الرسمي. قارن بين حزم Windows و macOS و Linux، وثبّت ملفات البيانات، وابدأ رحلتك الأولى.

أو كي سامبلر: برنامج مجاني وبسيط لأخذ عينات موسيقية لإيقاعات لوحة المفاتيح

أو كي سامبلر: برنامج مجاني وبسيط لأخذ عينات موسيقية لإيقاعات لوحة المفاتيح

يقوم برنامج OKSampler بربط مقاطع MP3 بمفاتيح لوحة المفاتيح، كما يتيح تكرار الصوت. تعرّف على وظائف هذا البرنامج المجاني القديم، وحدود ميزاته القديمة، وما يجب التحقق منه قبل التنزيل.

تطبيق مهام جوجل لسطح المكتب: كيفية استخدامه على الكمبيوتر

تطبيق مهام جوجل لسطح المكتب: كيفية استخدامه على الكمبيوتر

افتح مهام جوجل في متصفح، وأضف اختصارًا لمتصفح كروم أو قم بتشغيلها على غرار التطبيقات، وقم بإدارة المهام المؤرخة من خلال التقويم وجيميل.

كيفية لعب لعبة Don't Starve Together على نظام لينكس

كيفية لعب لعبة Don't Starve Together على نظام لينكس

قم بتثبيت نسخة لينكس من لعبة Don't Starve Together عبر Steam، وابدأ عالمًا جديدًا، أو انضم إلى أصدقائك باتباع خطوات الإعداد واستكشاف الأخطاء وإصلاحها هذه.

كيفية تشغيل لعبة Squad على نظام Linux باستخدام Steam Proton

كيفية تشغيل لعبة Squad على نظام Linux باستخدام Steam Proton

قم بإعداد Squad على نظام Linux باستخدام Steam Play و Proton، ثم قم بتثبيت اللعبة، واختر أداة التوافق، وقم باستكشاف مشكلات مكافحة الغش وإصلاحها.

كيفية تثبيت نظام لينكس منت ديبيان الإصدار الخامس "إلسي" من خلال USB

كيفية تثبيت نظام لينكس منت ديبيان الإصدار الخامس "إلسي" من خلال USB

قم بتنزيل ملف LMDE 5 ISO المؤرشف والتحقق منه، ثم أنشئ قرص USB قابلًا للإقلاع، واختر إعدادات التثبيت الآمنة. انتهى دعم Elsie؛ راجع إصدار LMDE الحالي.

كيفية إنشاء قرص USB قابل للتشغيل لنظام التشغيل Windows 11 على نظام Linux

كيفية إنشاء قرص USB قابل للتشغيل لنظام التشغيل Windows 11 على نظام Linux

قم بإنشاء قرص USB لتثبيت نظام التشغيل Windows 11 على نظام Linux باستخدام Ventoy: احصل على ملف ISO الرسمي، وقم بتثبيت Ventoy بأمان، وانسخ الصورة، وقم بتشغيل جهاز الكمبيوتر المستهدف.

كيفية تشغيل لعبة It Takes Two على نظام لينكس باستخدام Steam Proton

كيفية تشغيل لعبة It Takes Two على نظام لينكس باستخدام Steam Proton

تعلم كيفية تشغيل لعبة It Takes Two على نظام Linux باستخدام Steam Proton، وتثبيت إصدار Steam، وتمكين التوافق، وإعداد وضع اللعب التعاوني، وحل مشاكل التشغيل.

كيفية تثبيت برنامج Wireshark على أنظمة Linux: أوبونتو، فيدورا، آرتش، وغيرها

كيفية تثبيت برنامج Wireshark على أنظمة Linux: أوبونتو، فيدورا، آرتش، وغيرها

قم بتثبيت Wireshark على Ubuntu أو Debian أو Fedora أو Arch أو openSUSE باستخدام أوامر الحزمة الحالية، ثم قم بتكوين التقاط الحزم المباشر بأمان.

كيفية لعب Slay the Spire على نظام Linux: قم بتثبيته وتشغيله باستخدام Steam

كيفية لعب Slay the Spire على نظام Linux: قم بتثبيته وتشغيله باستخدام Steam

قم بتثبيت Steam على نظام Linux، ثم احصل على نسخة Slay the Spire الأصلية لنظام Linux من مكتبتك، وقم بتشغيلها. يتضمن ذلك خطوات عملية لحل مشاكل بدء التشغيل الشائعة.