إزالة قفل Zypper بأمان على نظام SUSE Linux Enterprise

إذا أبلغ نظام SUSE Linux Enterprise بأن برنامج Zypper مُقفل بواسطة عملية أخرى، فانتظر حتى تنتهي جميع تحديثات البرامج النشطة، وعمليات حزم YaST، ووظائف الصيانة الآلية. تحقق من عملية إدارة الحزم المسؤولة عن هذه العملية قبل إيقاف أي شيء. إذا لم تكن هناك أي عملية حزمة قيد التشغيل وبقي القفل قائمًا، فابحث عن سبب المشكلة دون حذف ملفات القفل عشوائيًا، ثم أعد تشغيل Zypper. zypper addlockيُعد قفل الحزمة الذي تم إنشاؤه بواسطة YaST مشكلة مختلفة وتتطلب حلًا مختلفًا.

ماذا يعني "مُقفل بواسطة عملية أخرى"؟

يحمي برنامج Zypper وأدوات إدارة الحزم الأساسية عمليات الحزم من التغييرات المتداخلة. يمكن لعملية التحديث أو التصحيح أو التثبيت أو مهمة برنامج YaST أو التحديث المجدول أن تمنع مؤقتًا عملية ثانية. يُعد القفل آلية تنسيق: إزالته أثناء قيام RPM أو Zypper بتغيير الحزم قد يُؤدي إلى ترك قاعدة بيانات الحزم أو النظام في حالة غير متناسقة.

تمييز مُؤكَّد: يمنع قفل العملية عمليات الحزم المتزامنة؛ بينما يمنع قفل الحزمة تحديد حزمة مُسماة للتثبيت أو الترقية أو الإزالة. تُعرِّف وثائق SUSE أقفال الحزم كميزة منفصلة. يشرح دليل SUSE لتغليف RPM أقفال حزم Zypper . إذا أشار الخطأ إلى عملية أخرى أو ذكر أن مدير الحزم مشغول، فابدأ بفحوصات العملية أدناه. أما إذا ذكر أن حزمة مُعينة مقفلة أو مُستبعدة، فقم بتشغيل sudo zypper locksقواعد الحزم المُدرجة ومراجعتها.

1. تحقق مما إذا كانت عملية الحزمة لا تزال قيد التشغيل

انتظر بضع دقائق إذا بدأ تحديث أو تثبيت أو تحديث للمستودع للتو. على الخادم، تحقق أولاً مع المسؤول أو مالك نظام الصيانة الآلي؛ فقد لا تظهر نافذة طرفية لعملية تصحيح الأخطاء التي تعمل في الخلفية.

ps -eo pid,ppid,etime,stat,cmd | grep -E '[z]ypper|[r]pm|packagekit|YaST|yast'

ابحث عن مهمة حقيقية من Zypper أو RPM أو YaST أو PackageKit، وسجّل مُعرّف العملية (PID) والوقت المنقضي والأمر. يتجنب تعبير grep مطابقة أمر البحث نفسه في Zypper وRPM. قائمة العمليات هي لقطة، لذا أعد تشغيلها بعد انتظار قصير إذا كانت النتيجة غير واضحة. المثال أدناه هو عرض توضيحي لطرفية النظام، وليس تقريرًا من جهاز حقيقي.

قائمة عمليات الطرفية التي تعرض عملية تحديث Zypper وعملية RPM
تحقق من اسم العملية، ومعرف العملية (PID)، والوقت المنقضي قبل تحديد ما إذا كان مدير الحزم لا يزال نشطًا.

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

2. تحقق من خدمة إدارة البرامج ومهام الصيانة

قد تستخدم عمليات تثبيت سطح المكتب PackageKit، بينما قد تُجري الخوادم المُدارة تحديثات مُجدولة عبر مؤقتات systemd أو SUSE Manager. حدد الخدمات الموجودة على جهازك المضيف فقط.

systemctl status packagekit
systemctl list-timers --all

إذا لم يكن PackageKit موجودًا، فسيُبلغ systemd بأنه تعذر العثور على الوحدة؛ وهذا لا يعني بالضرورة أن Zypper معطل. إذا كان نشطًا، فافحص سجلاته الأخيرة وتأكد من عدم وجود أي تثبيت أو تحديث جارٍ قبل التفكير في إيقافه.

sudo journalctl -u packagekit --since "30 minutes ago"

عند انتهاء عملية PackageKit مؤكدة، ولكن تبقى خدمتها نشطة وتمنع Zypper، يُرجى التنسيق مع الشخص أو النظام الآلي المسؤول عن إدارة التحديثات. على المضيف الذي يُناسب إيقافها، استخدم الأمر المناسب sudo systemctl stop packagekit، ثم تحقق من ذلك باستخدام الأمر المناسب systemctl status packagekit. لا تُعطّل الخدمة أو تُوقف مؤقتات التحديثات غير ذات الصلة كحل عام. تعتمد أسماء التحديثات وجداولها على مكونات النظام المُثبّتة وسياسة الإدارة.

يعرض الأمر Systemctl status view أن PackageKit غير نشط
استخدم حالة الخدمة وسجل العمليات لتحديد ما إذا كان PackageKit يقوم بعمل الحزمة قبل إيقافه.

3. إذا لم يكن هناك مالك نشط، فافحص القفل القديم بأمان

قد ينتج قفل قديم عن جلسة منقطعة، أو إعادة تشغيل، أو فشل مهمة إدارة، لكن وجوده وحده لا يُحدد السبب. لا تُقدم وثائق مستخدم SUSE تعليمات عامة لحذف ملف القفل لكل إصدار وتكوين من SLES. تجنب استخدام أوامر مثل تلك rmالتي تُشير إلى مسارات مُخمنة، ولا تستخدمها kill -9مع مُعرّف عملية غير معروف. يُمكن إعادة إنشاء ملف القفل أو استبداله أثناء نشاط معاملة ما، وحذفه لا يُوقف العملية التي تملك المعاملة.

أعد فحص قائمة العمليات، واطلع على سجلات الخدمة ذات الصلة، وتأكد من عدم وجود أي عملية حزمة جارية. إذا تمكنت من تحديد ملف PID قديم أو مسار قفل، فتحقق من مالكه وتأكد من الإجراء الموثق لحزمة خدمة SLES الخاصة بك أو إرشادات الدعم قبل تغييره. بالنسبة لأنظمة الإنتاج، سجّل الخطأ والسجلات بدقة واتبع إجراءات دعم SUSE المعتمدة في مؤسستك. هنا تبرز أهمية التفاصيل المحلية: فنص الخطأ، وحزمة خدمة SLES، وأدوات سطح المكتب المثبتة، ووكيل الإدارة، كلها عوامل قد تؤثر على إجراء الاسترداد الصحيح.

4. أعد محاولة استخدام Zypper وراجع المعاملة

بمجرد اكتمال العملية المنافسة، قم بتحديث بيانات تعريف المستودع:

sudo zypper refresh

يؤكد التحديث الناجح أن برنامج Zypper أصبح الآن قادرًا على الوصول إلى مستودعاته، وأن قفل العملية لم يعد يعيق تنفيذ هذا الأمر. إذا كانت مهمتك الأصلية هي ترقيع النظام، فاستعرض التغييرات المقترحة قبل تطبيقها.

sudo zypper patch --dry-run

راجع الحزم والإجراءات في المخرجات. التشغيل التجريبي هو فحص تخطيطي، ولا يقوم بتثبيت التحديثات المذكورة. عندما يكون الاقتراح متوقعًا وتسمح فترة الصيانة بذلك، قم بتشغيله sudo zypper patch. تغطي وثائق SUSE SLES 15 SP7 إدارة البرامج عبر سطر الأوامر، بما في ذلك تثبيت البرامج وإزالتها؛ قد يختلف سلوك الأوامر والخيارات المتاحة باختلاف الإصدار. راجع وثائق إدارة البرامج SLES 15 SP7 ومرجع Zypper من SUSE .

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

الافتراضات الشائعة التي يجب تجنبها

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

تحقق من الإصلاح

تُحل المشكلة عند sudo zypper refreshاكتمال العملية بنجاح دون حدوث خطأ في القفل، وعندها يُمكن تشغيل الأمر المطلوب. عند تطبيق التحديثات، يُرجى فحص sudo zypper patch --dry-runالإجراءات المقترحة والتأكد منها قبل تطبيق أي شيء. في حال عودة القفل، سجّل الخطأ بالتحديد، وقائمة العمليات، وحالة الخدمة ذات الصلة، ومخرجات السجل الأخيرة، وإصدار SLES، ثم ابحث عن العملية أو أداة الإدارة التي تُعيد الحصول عليه بدلاً من حذف حالة القفل بشكل متكرر.

اترك تعليقاً

إزالة قفل Zypper بأمان على نظام SUSE Linux Enterprise

إزالة قفل Zypper بأمان على نظام SUSE Linux Enterprise

ابحث عن العملية التي تحتفظ بقفل حزمة Zypper، وميز بين تعارضات العمليات وأقفال الحزم، وأعد محاولة التحديثات دون حذف ملفات القفل بشكل أعمى.

أنشئ مجموعة SLES 15 HA مدعومة باستخدام Fencing First

أنشئ مجموعة SLES 15 HA مدعومة باستخدام Fencing First

قم بتسجيل SLE HA، وقم بتشغيل SLES 15 عقدة، ثم أضف الحماية، والنصاب القانوني، وموارد الخدمة المختبرة قبل الاعتماد على تجاوز الفشل.

خطأ HTTP 500 في SLES Zypper: تحديد المستودع المعطل

خطأ HTTP 500 في SLES Zypper: تحديد المستودع المعطل

تتبع خطأ تحديث Zypper إلى SUSE أو RMT أو نقطة نهاية تابعة لجهة خارجية، ثم قم بتطبيق الإصلاح الصحيح من جانب الخادم أو ذاكرة التخزين المؤقت دون تعطيل التحديثات الأساسية.

نفاد مساحة التخزين في نظام SLES Thin Pool: توسيع LVM بأمان واستعادة عمليات الكتابة

نفاد مساحة التخزين في نظام SLES Thin Pool: توسيع LVM بأمان واستعادة عمليات الكتابة

قم بحل أخطاء مساحة التخزين الرقيقة في SUSE LVM عن طريق التحقق من استخدام البيانات والبيانات الوصفية، وتوسيع المجموعة بأمان، ومنع الانقطاعات المتكررة.

عندما يصبح نظام ملفات Btrfs الخاص بنظام SLES للقراءة فقط: قم بالتشخيص قبل إعادة التثبيت

عندما يصبح نظام ملفات Btrfs الخاص بنظام SLES للقراءة فقط: قم بالتشخيص قبل إعادة التثبيت

حدد ما إذا كان نظام الملفات Btrfs مخصصًا للقراءة فقط عن قصد، أو يعاني من نقص في المساحة، أو يحمي البيانات بعد حدوث أخطاء، ثم اختر مسار استعادة يناسب السبب.

قم بتسجيل SLES 15 باستخدام SUSE Manager في شبكة غير متصلة بالإنترنت

قم بتسجيل SLES 15 باستخدام SUSE Manager في شبكة غير متصلة بالإنترنت

قم بإعداد القنوات المتطابقة، وإنشاء مفتاح التنشيط، وتشغيل عميل SLES 15 بدون اتصال مباشر بالإنترنت مع الحفاظ على الاتصال اللازم لتسجيل دخول المدير.

تفعيل خاصية إعادة توجيه X11 في YaST عبر SSH

تفعيل خاصية إعادة توجيه X11 في YaST عبر SSH

قم بإصلاح خطأ تشغيل XIO الخاص بـ YaST عبر SSH، وتحقق من إعادة توجيه X11 و xauth، وقم بالتبديل إلى واجهة ncurses عندما تكون النافذة البعيدة غير ضرورية.

التراجع الآمن عن تحديث SLES الفاشل باستخدام Snapper

التراجع الآمن عن تحديث SLES الفاشل باستخدام Snapper

ابحث عن لقطة Btrfs قبل التحديث، واختبرها للقراءة فقط، واجعل الاسترداد دائمًا باستخدام Snapper مع فهم البيانات التي تبقى خارج عملية التراجع الجذرية.

إعادة توجيه سجلات النظام الآمنة في SLES باستخدام rsyslog وبروتوكول TLS المتبادل

إعادة توجيه سجلات النظام الآمنة في SLES باستخدام rsyslog وبروتوكول TLS المتبادل

إرسال سجلات نظام SLES إلى جامع rsyslog عن بعد عبر TLS مصادق عليه، مع عمليات التحقق من الشهادات، وتخزين الانقطاعات مؤقتًا، واختبارات التسليم.

تتبع أخطاء الذاكرة في ترقية نظام SLES قبل إعادة المحاولة

تتبع أخطاء الذاكرة في ترقية نظام SLES قبل إعادة المحاولة

استخدم سجلات ذاكرة الوصول العشوائي (RAM) والمبادلة والنواة وZypper لتحديد ضغط الذاكرة الحقيقي وحماية حالة الحزمة واختيار محاولة إعادة ترقية SLES أكثر أمانًا.