CentOS में दूषित RPM डेटाबेस का पुनर्निर्माण कैसे करें


RPM डेटाबेस /var/lib/rpm/ निर्देशिका में CentOS और अन्य एंटरप्राइज़ लिनक्स वितरण जैसे के तहत फाइलों से बना है। > RHEL , OpenSUSE , Oracle Linux और अधिक।

यदि RPM डेटाबेस दूषित है, तो RPM सही तरीके से काम नहीं करेगा, इस प्रकार आपके सिस्टम पर अपडेट लागू नहीं किए जा सकते, आप YUM पैकेज मैनेजर के माध्यम से अपने सिस्टम पर पैकेज अपडेट करते समय त्रुटियों का सामना करते हैं। सबसे खराब स्थिति किसी भी rpm और yum कमांड को सफलतापूर्वक चलाने में असमर्थ हो रही है।

ऐसे कई कारक हैं जो आरपीएम डेटाबेस में भ्रष्टाचार को जन्म दे सकते हैं, जैसे कि अपूर्ण पिछले लेनदेन, कुछ तृतीय-पक्ष सॉफ़्टवेयर की स्थापना, विशिष्ट पैकेजों को हटाना, और कई अन्य।

इस लेख में, हम एक भ्रष्ट RPM डेटाबेस के पुनर्निर्माण का तरीका बताएंगे; इस तरह आप CentOS में RPM डेटाबेस के भ्रष्टाचार से उबर सकते हैं। इसके लिए रूट उपयोगकर्ता विशेषाधिकारों की आवश्यकता होती है, अन्यथा, उन विशेषाधिकारों को प्राप्त करने के लिए sudo कमांड का उपयोग करें।

CentOS में दूषित RPM डेटाबेस का पुनर्निर्माण

निम्नलिखित आदेशों का उपयोग करते हुए आगे बढ़ने से पहले अपने वर्तमान RPM डेटाबेस का बैकअप लेने से पहले शुरू करें (आपको भविष्य में इसकी आवश्यकता हो सकती है)।

# mkdir /backups/
# tar -zcvf /backups/rpmdb-$(date +"%d%m%Y").tar.gz  /var/lib/rpm

अगला, मास्टर पैकेज मेटाडेटा फ़ाइल की अखंडता की पुष्टि करें /var/lib/rpm/Package ; यह वह फ़ाइल है जिसे पुनर्निर्माण की आवश्यकता है, लेकिन पहले निम्न आदेशों का उपयोग करके बासी ताले को रोकने के लिए /var/lib/rpm/__ db * फ़ाइलों को हटा दें।

# rm -f /var/lib/rpm/__db*		
# /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages

यदि उपरोक्त ऑपरेशन विफल हो जाता है, जिसका अर्थ है कि आप अभी भी त्रुटियों का सामना कर रहे हैं, तो आपको एक नया डेटाबेस डंप और लोड करना चाहिए। इसके अलावा ताज़ा लोड पैकेज फ़ाइल की अखंडता को सत्यापित करें।

# cd /var/lib/rpm/
# mv Packages Packages.back
# /usr/lib/rpm/rpmdb_dump Packages.back | /usr/lib/rpm/rpmdb_load Packages
# /usr/lib/rpm/rpmdb_verify Packages

अब डेटाबेस हेडर की जांच करने के लिए, -q और -a झंडे का उपयोग करके सभी स्थापित पैकेजों की क्वेरी करें, और भेजे गए किसी भी त्रुटि को ध्यान से देखने की कोशिश करें stderror

# rpm -qa >/dev/null	#output is discarded to enable printing of errors only

अंतिम लेकिन कम से कम, निम्न आदेश का उपयोग करके RPM डेटाबेस को फिर से बनाएँ, -vv विकल्प बहुत सारी डिबगिंग जानकारी प्रदर्शित करने की अनुमति देता है।

# rpm -vv --rebuilddb

RPM डेटाबेस का पता लगाने और ठीक करने के लिए dcrpm टूल का उपयोग करें

हमने RPM डेटाबेस भ्रष्टाचार के साथ करने के लिए अच्छी तरह से ज्ञात मुद्दों को पहचानने और सही करने के लिए उपयोग किया जाने वाला dcrpm (पता और सही rpm) कमांड लाइन टूल भी खोजा। यह एक सरल और उपयोग में आसान उपकरण है जिसे आप बिना विकल्प के चला सकते हैं। प्रभावी और विश्वसनीय उपयोग के लिए, आपको इसे क्रोन के माध्यम से नियमित रूप से चलाना चाहिए।

आप इसे स्रोत से स्थापित कर सकते हैं; स्रोत ट्री डाउनलोड करें और setup.py (जो psutil निर्भरता को pypi से हथियाना चाहिए) का उपयोग कर स्थापित करें, जैसा कि दिखाया गया है।

# git clone https://github.com/facebookincubator/dcrpm.git
# cd dcrpm
# python setup.py install

एक बार जब आप dcrpm स्थापित कर लें, तो इसे दिखाए अनुसार चलाएं।

# dcrpm

अंत में, सब कुछ ठीक काम कर रहा है या नहीं यह देखने के लिए अपने असफल आरपीएम या यम कमांड को फिर से चलाने का प्रयास करें।

आप RPM डेटाबेस रिकवरी पेज से अधिक जानकारी पा सकते हैं।

बस इतना ही! इस लेख में, हमने समझाया है कि CentOS में एक दूषित RPM डेटाबेस का पुनर्निर्माण कैसे किया जाए। इस गाइड के बारे में कोई सवाल पूछने या अपने विचार साझा करने के लिए, नीचे दिए गए फीडबैक फॉर्म का उपयोग करें।