إزالة قفل Zypper بأمان على نظام SUSE Linux Enterprise
ابحث عن العملية التي تحتفظ بقفل حزمة Zypper، وميز بين تعارضات العمليات وأقفال الحزم، وأعد محاولة التحديثات دون حذف ملفات القفل بشكل أعمى.
إذا أبلغ نظام SUSE Linux Enterprise بأن برنامج Zypper مُقفل بواسطة عملية أخرى، فانتظر حتى تنتهي جميع تحديثات البرامج النشطة، وعمليات حزم YaST، ووظائف الصيانة الآلية. تحقق من عملية إدارة الحزم المسؤولة عن هذه العملية قبل إيقاف أي شيء. إذا لم تكن هناك أي عملية حزمة قيد التشغيل وبقي القفل قائمًا، فابحث عن سبب المشكلة دون حذف ملفات القفل عشوائيًا، ثم أعد تشغيل Zypper. zypper addlockيُعد قفل الحزمة الذي تم إنشاؤه بواسطة YaST مشكلة مختلفة وتتطلب حلًا مختلفًا.
يحمي برنامج Zypper وأدوات إدارة الحزم الأساسية عمليات الحزم من التغييرات المتداخلة. يمكن لعملية التحديث أو التصحيح أو التثبيت أو مهمة برنامج YaST أو التحديث المجدول أن تمنع مؤقتًا عملية ثانية. يُعد القفل آلية تنسيق: إزالته أثناء قيام RPM أو Zypper بتغيير الحزم قد يُؤدي إلى ترك قاعدة بيانات الحزم أو النظام في حالة غير متناسقة.
تمييز مُؤكَّد: يمنع قفل العملية عمليات الحزم المتزامنة؛ بينما يمنع قفل الحزمة تحديد حزمة مُسماة للتثبيت أو الترقية أو الإزالة. تُعرِّف وثائق SUSE أقفال الحزم كميزة منفصلة. يشرح دليل SUSE لتغليف RPM أقفال حزم Zypper . إذا أشار الخطأ إلى عملية أخرى أو ذكر أن مدير الحزم مشغول، فابدأ بفحوصات العملية أدناه. أما إذا ذكر أن حزمة مُعينة مقفلة أو مُستبعدة، فقم بتشغيل sudo zypper locksقواعد الحزم المُدرجة ومراجعتها.
انتظر بضع دقائق إذا بدأ تحديث أو تثبيت أو تحديث للمستودع للتو. على الخادم، تحقق أولاً مع المسؤول أو مالك نظام الصيانة الآلي؛ فقد لا تظهر نافذة طرفية لعملية تصحيح الأخطاء التي تعمل في الخلفية.
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 الأصلي.
قد تستخدم عمليات تثبيت سطح المكتب 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. لا تُعطّل الخدمة أو تُوقف مؤقتات التحديثات غير ذات الصلة كحل عام. تعتمد أسماء التحديثات وجداولها على مكونات النظام المُثبّتة وسياسة الإدارة.

قد ينتج قفل قديم عن جلسة منقطعة، أو إعادة تشغيل، أو فشل مهمة إدارة، لكن وجوده وحده لا يُحدد السبب. لا تُقدم وثائق مستخدم SUSE تعليمات عامة لحذف ملف القفل لكل إصدار وتكوين من SLES. تجنب استخدام أوامر مثل تلك rmالتي تُشير إلى مسارات مُخمنة، ولا تستخدمها kill -9مع مُعرّف عملية غير معروف. يُمكن إعادة إنشاء ملف القفل أو استبداله أثناء نشاط معاملة ما، وحذفه لا يُوقف العملية التي تملك المعاملة.
أعد فحص قائمة العمليات، واطلع على سجلات الخدمة ذات الصلة، وتأكد من عدم وجود أي عملية حزمة جارية. إذا تمكنت من تحديد ملف PID قديم أو مسار قفل، فتحقق من مالكه وتأكد من الإجراء الموثق لحزمة خدمة SLES الخاصة بك أو إرشادات الدعم قبل تغييره. بالنسبة لأنظمة الإنتاج، سجّل الخطأ والسجلات بدقة واتبع إجراءات دعم SUSE المعتمدة في مؤسستك. هنا تبرز أهمية التفاصيل المحلية: فنص الخطأ، وحزمة خدمة SLES، وأدوات سطح المكتب المثبتة، ووكيل الإدارة، كلها عوامل قد تؤثر على إجراء الاسترداد الصحيح.
بمجرد اكتمال العملية المنافسة، قم بتحديث بيانات تعريف المستودع:
sudo zypper refresh
يؤكد التحديث الناجح أن برنامج Zypper أصبح الآن قادرًا على الوصول إلى مستودعاته، وأن قفل العملية لم يعد يعيق تنفيذ هذا الأمر. إذا كانت مهمتك الأصلية هي ترقيع النظام، فاستعرض التغييرات المقترحة قبل تطبيقها.
sudo zypper patch --dry-run
راجع الحزم والإجراءات في المخرجات. التشغيل التجريبي هو فحص تخطيطي، ولا يقوم بتثبيت التحديثات المذكورة. عندما يكون الاقتراح متوقعًا وتسمح فترة الصيانة بذلك، قم بتشغيله sudo zypper patch. تغطي وثائق SUSE SLES 15 SP7 إدارة البرامج عبر سطر الأوامر، بما في ذلك تثبيت البرامج وإزالتها؛ قد يختلف سلوك الأوامر والخيارات المتاحة باختلاف الإصدار. راجع وثائق إدارة البرامج SLES 15 SP7 ومرجع Zypper من SUSE .


zypper locksعندما يتم قفل حزمة محددة بشكل صريح؛ ولا تقم بإزالة قواعد الحزمة لمسح معاملة جارية.تُحل المشكلة عند sudo zypper refreshاكتمال العملية بنجاح دون حدوث خطأ في القفل، وعندها يُمكن تشغيل الأمر المطلوب. عند تطبيق التحديثات، يُرجى فحص sudo zypper patch --dry-runالإجراءات المقترحة والتأكد منها قبل تطبيق أي شيء. في حال عودة القفل، سجّل الخطأ بالتحديد، وقائمة العمليات، وحالة الخدمة ذات الصلة، ومخرجات السجل الأخيرة، وإصدار SLES، ثم ابحث عن العملية أو أداة الإدارة التي تُعيد الحصول عليه بدلاً من حذف حالة القفل بشكل متكرر.
ابحث عن العملية التي تحتفظ بقفل حزمة Zypper، وميز بين تعارضات العمليات وأقفال الحزم، وأعد محاولة التحديثات دون حذف ملفات القفل بشكل أعمى.
قم بتسجيل SLE HA، وقم بتشغيل SLES 15 عقدة، ثم أضف الحماية، والنصاب القانوني، وموارد الخدمة المختبرة قبل الاعتماد على تجاوز الفشل.
تتبع خطأ تحديث Zypper إلى SUSE أو RMT أو نقطة نهاية تابعة لجهة خارجية، ثم قم بتطبيق الإصلاح الصحيح من جانب الخادم أو ذاكرة التخزين المؤقت دون تعطيل التحديثات الأساسية.
قم بحل أخطاء مساحة التخزين الرقيقة في SUSE LVM عن طريق التحقق من استخدام البيانات والبيانات الوصفية، وتوسيع المجموعة بأمان، ومنع الانقطاعات المتكررة.
حدد ما إذا كان نظام الملفات Btrfs مخصصًا للقراءة فقط عن قصد، أو يعاني من نقص في المساحة، أو يحمي البيانات بعد حدوث أخطاء، ثم اختر مسار استعادة يناسب السبب.
قم بإعداد القنوات المتطابقة، وإنشاء مفتاح التنشيط، وتشغيل عميل SLES 15 بدون اتصال مباشر بالإنترنت مع الحفاظ على الاتصال اللازم لتسجيل دخول المدير.
قم بإصلاح خطأ تشغيل XIO الخاص بـ YaST عبر SSH، وتحقق من إعادة توجيه X11 و xauth، وقم بالتبديل إلى واجهة ncurses عندما تكون النافذة البعيدة غير ضرورية.
ابحث عن لقطة Btrfs قبل التحديث، واختبرها للقراءة فقط، واجعل الاسترداد دائمًا باستخدام Snapper مع فهم البيانات التي تبقى خارج عملية التراجع الجذرية.
إرسال سجلات نظام SLES إلى جامع rsyslog عن بعد عبر TLS مصادق عليه، مع عمليات التحقق من الشهادات، وتخزين الانقطاعات مؤقتًا، واختبارات التسليم.
استخدم سجلات ذاكرة الوصول العشوائي (RAM) والمبادلة والنواة وZypper لتحديد ضغط الذاكرة الحقيقي وحماية حالة الحزمة واختيار محاولة إعادة ترقية SLES أكثر أمانًا.