मेरे द्वारा स्थापित सभी पैकेजों को पूरी तरह से हटा दें?


12

मैं कुछ उपकरणों के परीक्षण और स्थापित करने के लिए CentOS7 के साथ एक लिनक्स सर्वर का उपयोग कर रहा था। और अब मुझे याद नहीं है कि मैंने कितने पैकेज स्थापित किए थे।

मैं उन सभी पैकेजों को हटाना चाहता हूं ताकि मेरा सर्वर नया जैसा हो। मैं हर पैकेज की खोज नहीं करना चाहता और एक-एक करके हटाता हूं। क्या उन्हें केवल एक आदेश के साथ हटाने का कोई तरीका है?


/var/log/yum.logसहायक हो सकता है, यह पैकेज नाम और टाइमस्टैम्प दोनों को सूचीबद्ध करता है। जहाँ तक मैं देख सकता हूँ, यह प्रारंभिक संस्थापनों द्वारा जोड़े गए संकुल को सूचीबद्ध नहीं करता है।
उलरिच श्वार्ज

Yum.log फ़ाइल उन सभी पैकेजों को सूचीबद्ध करेगी जिन्हें मैंने स्थापित किया था, लेकिन मैं केवल 1 कमांड के साथ उन सभी को कैसे हटा सकता था?
एक

2
"स्टैंडर्ड शेल तकनीक";) जैसेsudo yum remove $(gawk '$0 ~ /Installed/ {printf "%s ", $NF}' /var/log/yum.log)
उलरिच श्वार्ज

जवाबों:


14

एक फ़ाइल में उनकी स्थापना तिथि के रिवर्स ऑर्डर में सभी फाइलों को सूचीबद्ध करें:

rpm -qa --last >list

आपको लाइनें मिलेंगी

atop-2.1-1.fc22.x86_64                        Wed Apr 13 07:35:27 2016
telnet-server-0.17-60.fc22.x86_64             Mon Apr 11 20:10:43 2016
mhddfs-0.1.39-3.fc22.x86_64                   Sat Apr  9 21:26:06 2016
libpcap-devel-1.7.3-1.fc22.x86_64             Fri Apr  8 09:40:43 2016

आपके लिए लागू होने वाली कटऑफ तिथि चुनें और उसके बाद आने वाली सभी लाइनों को हटा दें। तारीख भाग को हटाने के बाद, शेष लाइनों को हटाने के लिए yum को दें। उदाहरण के लिए

sudo yum remove $(awk '{print $1}' <list)

7

आप के साथ भी कोशिश कर सकते हैं yum historyऔर आमतौर पर आप क्या स्थापित किया गया है की एक गिने सूची मिल, जैसे:

[root@localhost ~]# yum history
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
ID | Login user               | Date and time    | Action(s)      | Altered
 3 | root <root>              | 2011-09-14 14:36 | Install        |    1   
 2 | root <root>              | 2011-09-12 15:48 | I, U           |   80   
 1 | System <unset>           | 2011-09-12 14:57 | Install        | 1025  

और आप yum history undo 3उदाहरण के लिए बाद में उपयोग कर सकते हैं ।

यम इतिहास के बारे में अधिक जानकारी यहाँ


0

प्रत्येक इतिहास के लेन-देन को रोलबैक करने के लिए, आप नीचे दिए गए ओ-लाइनर का उपयोग कर सकते हैं:

# yum history list|awk '$1 ~ /[0-9]+/ {print $1}'| while read a; do yum history undo -y $a; done

इस कमांड को चलाते समय सतर्क रहें, क्योंकि यह आपके सभी स्थापित पैकेजों को हटा देगा! यदि आप पुष्टि चाहते हैं, तो आप -y ध्वज को हटा सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.