संदर्भ और पूर्णता के लिए, एक कमांड जो शुरू में प्राप्त करने में सक्षम होगा वह कुछ इस तरह होगा (जल्दी से एक साथ भरा हुआ है, लेकिन यह काम कर रहा है)
rpm -qf $(rpm -Va 2>&1 | grep -vE '^$|prelink:' | sed 's|.* /|/|') | sort -u
यहाँ विभिन्न भागों की संक्षिप्त व्याख्या दी गई है:
rpm -Va 2>&1
वर्तमान में स्थापित / rpm डेटाबेस में सूचीबद्ध सभी पैकेजों पर एक पूर्ण सत्यापन चलाएगा। यह stdout को stirectr भी रीडायरेक्ट करेगा, क्योंकि यहाँ मेरे बॉक्स में कुछ त्रुटियां जो कि प्रीलिंक के सक्षम होने के कारण होती हैं, त्रुटियों के रूप में रिपोर्ट की जाती हैं, लेकिन हम उन्हें stdout पर चाहते हैं।
ध्यान दें: सभी फ़ाइलों, अनुमतियों और स्वामी / समूह की जांच करने में सक्षम होने के लिए रूट के रूप में चलाने की आवश्यकता है।
grep -vE '^$|prelink:'
दबा emtpy लाइनों और prelink त्रुटियों की इस तरह की प्रदर्शित (जैसे किसी त्रुटि के उदाहरण:
prelink: /tmp/#prelink#.B14JBi: Recorded 10 dependencies, now seeing -1
)
sed 's|.* /|/|')
rpm -Va
केवल फ़ाइल नाम दिखाने के लिए आउटपुट फ़िल्टर करेगा
rpm -qf $()
सभी प्राप्त फ़ाइलनामों के लिए क्वेरी करेगा जिसमें वे पैकेज शामिल हैं, और पैकेज का नाम और संस्करण आउटपुट करते हैं
| sort -u
डुप्लिकेट पैकेज नाम / संस्करण संयोजनों को दबाएगा।
कुल मिलाकर आपको उन पैकेजों की एक सूची प्राप्त होगी जो सत्यापन में विफल रहे।
rpm -Va
अभी भी कुछ असंबंधित मुद्दों को दिखा सकता है, क्योंकि यह संकुल के बीच निर्भरता की भी जाँच करता है, जिसे जोड़कर दबाया जा सकता है --nodeps
।
yum reinstall $(rpm -qa --qf="%{N}-%{V}\n" | sort)