مدير الحزم لا يمكنه أن يعمل أكثر من مرة بذات الوقت

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته


مدير الحزم لا يمكنه أن يعمل أكثر من مرة بذات الوقت  .

عندما تقوم بتثبيت شيء على لينكس بالطريقة التقليدية (من خلال مدير الحزم والمتجر ) ,يقوم مدير الحزم بطريقة ما بعمل قفل ليمنع تشغيله بذات الوقت اكثر من مرة ,السبب واضح حتى لا يحصل تضارب بين اكثر من عملية .

عندما تقوم مثلا بتشغيل apt ويظهر لك شيء كما في الصورة في الأعلى يكون apt بالفعل يعمل قد تكون خدمة (service) قامت بتشغيله وهي موجودة بالفعل هناك خدمة في أبونتو تعمل كل وقت محدد بتحديث معلومات apt عن المستودعات وأيضا هناك خدمة خاصة ب packagekit .
(ال packagekit بشكل بسيط يستخدم من قبل المتجر الرسومي لتثبيت البرامج  والحذف والترقية و...إلخ  ويستخدم أيضا من قبل بعض البرامج مثلا برنامج totem لتشغيل الوسائط عندما يطلب منك الموافقة على تثبيت بعض ال codecs ,على كلن الذي أريد أن أقوله أن packagekit في أبونتو يستخدم apt ك backend وفي فيدورا سيستخدم dnf لهذا سيضع القفل عندما يعمل.


ممكن التأكد من أن apt أو packagekit يعملو من خلال مثلا عرض كل ال processes التي تعمل وفلترت النتيجة من خلال grep ,وممكن أيضا كما في الصور في الأسفل من خلال أمر lsof معرفة من يستخدم ملف lock .



الخلاصة ليس دائما أنسب حل هو حذف var/lib/dpkg/lock/ (أو الملف الذي يظهر في الخطأ ) او على الأقل إعرف ما الذي يحصل إذا رأيت ان هناك نتيجة أي بالفعل apt أو مثلا packagekit يعملو إنتظر إلى ان ينتهو ويمكنك أيضا قتل العملية من خلال kill يتبعها برقم ال Process (PID)  .






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


مدير الحزم لا يمكنه أن يعمل أكثر من مرة بذات الوقت مدير الحزم لا يمكنه أن يعمل أكثر من مرة بذات الوقت بواسطة Yucuf Sourani on 5:44 ص Rating: 5

ليست هناك تعليقات

مدون محترف