कैसे आर्क लिनक्स में pacman द्वारा स्थापित पुराने संकुल को हटाने के लिए?


51

मैंने हाल ही में आर्क लिनक्स स्थापित किया है और पाया है कि मैं अपेक्षाकृत अधिक भंडारण पर बहुत जल्दी खा रहा हूं। जिस भी कारण से मैंने पहले ही लगभग 2 सप्ताह में 17GB का उपयोग किया है। मेरे पास बहुत सारे सॉफ़्टवेयर स्थापित नहीं हैं इसलिए मुझे विश्वास है कि सभी पुराने पैकेज कहीं न कहीं बनाए हुए हैं।

इसका समर्थन करने के लिए, मैंने देखा है कि अगर मैंने एक पैकेज स्थापित किया है, तो उस पैकेज को हटा दें, और फिर इसे स्थापित करें कि पैक्मैन केवल अनपैक करता है और सॉफ्टवेयर को फिर से डाउनलोड किए बिना फिर से इंस्टॉल करता है।

जब मैंने अपना आधार सिस्टम स्थापित किया, तो अतिरिक्त सॉफ्टवेयर से पहले, मैंने लगभग 2GB या शायद का उपयोग किया। मैंने तब से केवल Matlab, Skype, शराब और कुछ अन्य छोटे प्रोग्राम स्थापित किए हैं। बेशक मैंने लापता लाइब्रेरी और पसंद को भी स्थापित किया है, लेकिन लगभग 15 जीबी मूल्य का नहीं।

क्या मैं यहां पूरी तरह से गलत हूं या आर्क नए संस्करणों को डाउनलोड / अपग्रेड करते समय पुराने पैकेज को कभी डिलीट नहीं करता है?

यदि हां, तो मैं इन अन-यूज्ड पैकेज को कैसे हटाऊं?

इसके अलावा, जब मैं स्थापित पैकेज हटाता हूं तो मैं उपयोग करता हूं pacman -R ...


1
संभवत: नियमित cronया systemdनौकरी के रूप में शांति स्थापित करना एक अच्छा विचार है ।
स्पार्कहॉक

जवाबों:


59

नहीं, पैकमैन आपके कैश से पुराने पैकेजों को नहीं हटाता है ( /var/cache/pacman/pkgइसलिए, समय के साथ, यह भर सकता है।

कैश को साफ़ करने के लिए आप दो तरीके अपना सकते हैं: जानवर बल एक साथ pacman -Sc:

-c, --clean
निकालें संकुल जो अब कैश से संस्थापित नहीं हैं और वर्तमान में अप्रयुक्त सिंक डेटाबेस को डिस्क स्थान खाली करने के लिए हैं। जब पैक्मैन पैकेज डाउनलोड करता है, तो यह उन्हें कैश डायरेक्टरी में बचाता है। इसके अलावा, डेटाबेस आपके द्वारा डाउनलोड किए गए प्रत्येक सिंक DB के लिए सहेजे जाते हैं, और भले ही वे कॉन्फ़िगरेशन फ़ाइल pacman.conf (5) से हटा दिए जाते हैं। केवल उन पैकेजों को हटाने के लिए एक -क्लाइन स्विच का उपयोग करें जो अब स्थापित नहीं हैं; कैश से सभी फ़ाइलों को हटाने के लिए दो का उपयोग करें। दोनों ही मामलों में, आपके पास पैकेज और / या अप्रयुक्त डाउनलोड डेटाबेस को हटाने के लिए हां या कोई विकल्प नहीं होगा।

या, अधिक बारीक दृष्टिकोण के लिए, आप उन उपयोगिताओं में से एक का उपयोग कर सकते हैं जो पैक्मैन-कॉनरीब के साथ जहाज करते हैं paccache:

paccache एक लचीली pacman कैश सफाई उपयोगिता है, जिसके पास नियंत्रण करने में मदद करने के लिए कई विकल्प हैं और किसी भी निर्देशिका से pacman पैकेज टारबॉल को हटा दिया जाता है।

डिफ़ॉल्ट रूप से, paccacheस्थापित पैकेज के सभी लेकिन अंतिम तीन संस्करणों को हटा देगा, लेकिन आप -k, --keepस्विच के साथ इस नंबर को बदल सकते हैं । -d, --dryrunआपके परिवर्तनों का पूर्वावलोकन करने के लिए एक स्विच भी है । paccache --helpसभी स्विच देखें ।

पैकेज प्रबंधन के साथ सहायता करने के लिए पैक्मैन-कॉनरीब पैकेज में कई उपयोगिताओं हैं, यह देखने योग्य है कि उन सभी को कैसे समझें और वे कैसे काम करते हैं और आर्क को बहुत आसान बना सकते हैं। आप इसके साथ पूरी सूची देख सकते हैं:

pacman -Ql pacman-contrib | awk -F"[/ ]" '/\/usr\/bin/ {print $NF}'

jasonwryan ने कहा कि :) इसके अलावा डबल --cleanस्विच के साथ वास्तव में सावधान रहें : यह कि वर्किंग पैकेज में आसानी से मना कर दिया जाता है, अगर कोई भी समस्या नवीनतम संस्करण के साथ होती है (उदाहरण के लिए नया पैकेज पुराने लिबास या पायथन रिलीज पर निर्भर करता है; हार्डवेयर और नवीनतम के साथ; गिरी)। मैं /एक बेहतर समाधान की तुलना में कहीं और पैक्समैन कैश की स्थापना करता हूं (बस /etc/pacman.conf में पथ सेट करता हूं )।
tuk0z

2
यदि आपके पास नहीं है तो paccacheआप pacman-contribपैकेज स्थापित करके प्राप्त कर सकते हैं ।
pfrenssen

+1, लेकिन मैं $ pacman -Ql pacman-contrib | awk -F"[/ ]" '/\/usr\/bin\/./ {print $NF}'परिणामों में एक रिक्त रेखा से बचने का सुझाव देता हूं ? ;-)
Cbhihe

वेल्ड, rm -rf /var/cache/pacman/pkgगलत काम करना था
पोस्ट सेल्फ

प्रासंगिक पृष्ठ ArchWiki: wiki.archlinux.org/index.php/pacman#Cleaning_the_package_cache
WXYZ

13

आपका पैकेज कैश में है /var/cache/pacman/pkg/

नोट: pacman पैकेज 2018 में अपडेट किए गए थे और इसके अलावा pacman-contribस्क्रिप्ट / टूल का उपयोग करने के लिए इंस्टॉल करने की आवश्यकता होती है जैसे paccacheकि नीचे वर्णित है।

करना:

paccache -d

एक करने के लिए -dryrunऔर देखें कि जब आप आगे क्या करेंगे तो उस उपयोगिता का एक भाग निकाल सकता है:

paccache -r

कैश्ड पैकेज को हटाने के लिए। 17gbs ध्वनि खड़ी है। सुनिश्चित करें कि आपको कुछ रन-वे लॉग नहीं मिले हैं। करना:

du -h /var/log

या यहाँ तक कि:

du -h /var

जो चल रहा है उसके अधिक सामान्य विचार के लिए।


7

pacman -Sccवही करता है जो आप पूछ रहे हैं, लेकिन यह अनुशंसित नहीं है। से विकी

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

एक तरफ के रूप में, जब मैं पैकेजों की स्थापना रद्द करता हूं, तो मैं उपयोग करना पसंद करता हूं pacman -Rnsc, क्योंकि यह पैकेज निर्भरता के साथ-साथ उन पैकेजों को भी हटा देता है जो इस पर निर्भर करते हैं। हमेशा की तरह, ध्यान से पढ़ें कि कौन से पैकेज निकाले जा रहे हैं, क्योंकि आप बहुत आसानी से अनुपयोगी अवस्था में हमारे सिस्टम को छोड़ सकते हैं।


यह अच्छा है - तो यह बराबर है rm /var/cache/pacman/pkg/*? या - यह कम से कम डिफ़ॉल्ट रूप से, मुझे लगता है। मैंने /tmpबहुत समय पहले अधिकांश मशीनों पर अपने pkg कैश को स्थानांतरित कर दिया है और squidराउटर पर एक एकल केंद्रीय कैश को संभालने देता हूं । pacman -Sccहालांकि उतना आसान नहीं है ।
चाटुकार

@mikeserv अपने रूटर पर एक केंद्रीय Pacman पैकेज कैश? आपने इसे कैसे सेट किया, मुझे इसकी आवाज़ पसंद है क्योंकि मेरे पास आर्क डेस्कटॉप और लैपटॉप दोनों हैं।
severen

6

मैं दृढ़ता से paccacheइसके बजाय के उपयोग का सुझाव देता हूं pacman -Sc। चुनिंदा रूप से अनइंस्टॉल किए गए पैकेज के संस्करणों को हटाने के लिए एक बहुत प्रभावी ध्वज है -upaccacheमेरे सुझाव के झंडे (paccache v5.0.2 के भाग के रूप में) हैं:

  • -d, --dryrun: एक सूखी रन करते हैं, केवल उम्मीदवार संकुल खोजने
  • -r, --remove: उम्मीदवार पैकेजों को निकालना
  • -u, --uninstalledकेवल लक्ष्य की स्थापना रद्द संकुल:
  • -k, --keep <num>: कैश में प्रत्येक पैकेज की "संख्या" रखने (डिफ़ॉल्ट: 3)

उदाहरण: अनइंस्टॉल किए गए पैकेजों के शेष कैश संस्करणों की जाँच करें

paccache -dvuk0

1
यह मौजूदा उत्तर को कैसे जोड़ता है, विकल्पों को प्रिंट करने के अलावा अन्य क्या है?
जसोनव्रीयन

यदि आपने बहुत सारे अप्रयुक्त बड़े पैकेज निकाले हैं, तो आप उन्हें पैक्मैन के कैश से हटाना चाहते हैं। के झंडे -uसे यह संभव है paccache। बड़े पैकेजों के उदाहरण हैं, उदाहरण के लिए Gnome, KDE या टेक्सलाइव।
स्ट्रिंगर

1
हां, मैं झंडे से परिचित हूं। मेरी बात बस उत्तर में और अधिक झंडे जोड़ रही है, इस तथ्य को नहीं बदलता है कि यह सिर्फ यह बताता है कि यहां पहले से ही क्या है।
जसोनव्रीयन

-kध्वज मेरे लिए नया नहीं है और बहुत अच्छी तरह से मदद के संवाद में विस्तार से बताया था, तो अपने यहां उपयोग उपयोगी था।
hlk
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.