डेबियन पर सबसे डिस्क स्थान का उपयोग कौन सा स्थापित सॉफ़्टवेयर पैकेज करता है?


76

मेरे रूट विभाजन पर डिस्क स्थान कम चल रहा है, इसलिए मैं सिस्टम से कुछ एप्लिकेशन हटाना चाहता हूं। मैं कैसे देख सकता हूं कि कौन से सॉफ्टवेयर पैकेज सबसे डिस्क स्थान का उपयोग करते हैं? क्या यह देखना संभव है aptitude?

मुझे जेनेरिक डिस्क स्पेस एनालाइजर जैसे dfया के बारे में पता है baobab, लेकिन मुझे इंस्टॉल किए गए एप्लिकेशन के लिए समाधान चाहिए।


जवाबों:


53

सबसे आसान दौड़ना है wajig large। पैकेज एक- apt-installसा होना चाहिए ।

इसे करने के अन्य तरीकों के लिए यहां दो लिंक दिए गए हैं:

यह भी याद रखें कि स्थापित आकार संकुल द्वारा उठाए गए स्थान का एक हिस्सा है। संपीड़ित संस्करण शायद अभी भी कैश में है, और यह कुछ स्थान भी लेता है। आप उन लोगों को निकाल सकते हैं apt-get clean


4
पैकेज कैश को खाली करने का कमांड है apt-get clean। "पुनः प्राप्त पैकेज फ़ाइलों की स्थानीय भंडार बाहर साफ करता है" - आदमी apt-get
manatwork

97

सबसे आसान तरीका (अतिरिक्त पैकेज स्थापित किए बिना) है:

dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n

जो आकार क्रम में पैकेज प्रदर्शित करता है, सबसे बड़ा पैकेज अंतिम है।

दुर्भाग्य से कम से कम कुछ प्रणालियों में, इस सूची में ऐसे पैकेज शामिल हैं जिन्हें हटा दिया गया है लेकिन शुद्ध नहीं किया गया है। ऐसे सभी पैकेजों को चलाकर शुद्ध किया जा सकता है:

dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge

या यदि आप अनइंस्टॉल किए गए पैकेज को शुद्ध नहीं करना चाहते हैं, तो आप इस संस्करण का उपयोग उन पैकेजों को फ़िल्टर करने के लिए कर सकते हैं, जो सूची से 'स्थापित' स्थिति में नहीं हैं:

dpkg-query -Wf '${db:Status-Status} ${Installed-Size}\t${Package}\n' | sed -ne 's/^installed //p'|sort -n

2
"स्थापित-आकार" एक पूर्व-निर्धारित अनुमान है कि स्थापित पैकेज को कितनी जगह की आवश्यकता होगी। यह वास्तविक आकार नहीं है, मुझे डर है।
रॉल्फ

23

जब से आप चाहते हैं see which [installed] software packages use the most disk space[,] from aptitude... बेशक आप उपयोग कर सकते हैं aptitude! इसके सीएलआई या {इंटरएक्टिव, टीयूआई, नॉन-सीएलआई} awesomeness के माध्यम से। आइए पहले सीएलआई पर चर्चा करें, फिर टीयूआई। किसी भी तरह, आपको सिर्फ जानने की जरूरत है

  • उपयोग करने के लिए कमांडलाइन विकल्प। निम्नलिखित पाठ लंबे विकल्पों का उपयोग करता है (दस्तावेज़ की खोज में आसानी के लिए), लेकिन निश्चित रूप से छोटे विकल्प भी उपलब्ध हैं।
  • कमांड लाइन तर्क का उपयोग करने के लिए
  • आउटपुट स्वरूप स्ट्रिंग का उपयोग करने के लिए

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

aptitude search --sort '~installsize' --display-format '%p %I' '~i' | head

तो चलिए इसे नीचे तोड़ते हैं:

  • --sortपैकेज सॉर्ट क्रम है, और पैकेज सॉर्ट नीति~installsize निर्दिष्ट करता है
  • installsizeका अर्थ है 'पर (अनुमानित) स्थापित आकार', और पूर्ववर्ती का ~अर्थ है अवरोही (चूंकि सभी प्रकार की नीतियों के लिए डिफ़ॉल्ट रूप से आरोही है)।
  • --display-formatबदलता है <you guessed :->प्रारूप स्ट्रिंग '%p %I' बताता aptitudeउत्पादन पैकेज का नाम है, तो स्थापित आकार करने के लिए।
  • '~i'aptitudeकेवल स्थापित पैकेज खोजने के लिए कहता है।
  • ... और, जब तक कि आपके पास बहुत कुछ इंस्टॉल किए गए पैकेज (मेरे थोड़े-सामान्य डेबियन कार्य केंद्र 2400 से अधिक है), तो आप पाइप के लिए करना चाहते हैं headया lessया एक फ़ाइल, या शायद सिर्फ wc -lकितने लाइनों को देखने के aptitudeलौटने की जाएगी।

आप भी करना चाह सकते हैं

  1. aptitudeप्रदर्शित होने के साथ उपयोग करने के लिए लाइन की चौड़ाई (वर्णों में) निर्दिष्ट करें --width <your desired integer value/>aptitudeडिफ़ॉल्ट रूप से यह आपके टर्मिनल की चौड़ाई को क्या मानता है, लेकिन कभी-कभी यह गलत अनुमान लगाता है, और कभी-कभी आप किसी फ़ाइल आदि के लिए लिखना चाहते हैं।
  2. अपने प्रारूप स्ट्रिंग में अधिक जानकारी प्रदर्शित करें, या फ़ील्ड चौड़ाई बदलें। जैसे, मेरा बढ़ाया प्रारूप स्ट्रिंग '%30p %I %r %60d'प्रदर्शित करता है

    • %30p : क्षेत्र की चौड़ाई में पैकेज का नाम = 30 चार
    • %I : अनुमानित आकार स्थापित करें
    • %r : 'रिवर्स गिनती निर्भर करता है': इस पैकेज पर निर्भर अन्य संस्थापित पैकेजों की अनुमानित संख्या
    • %60d : क्षेत्र की चौड़ाई में पैकेज का संक्षिप्त विवरण = 60 चार

ध्यान दें, यदि आपको अपने आउटपुट फ़ील्ड में परिवर्तन नहीं दिखते हैं, तो आपको संभवतः सेट करने की आवश्यकता है --width

... और आप इस तरह की बात {इंटरएक्टिव, टीयूआई} में भी कर सकते हैं aptitude। उदाहरण के लिए, प्रदर्शन प्रारूप वरीयता सेट करने के लिए,

  • विकल्प-> वरीयता पर क्लिक या नेविगेट करें
  • पैकेज दृश्य के लिए प्रदर्शन प्रारूप पर स्क्रॉल करें
  • %Iवांछित स्थिति में वर्तमान मूल्य में जोड़ें

इंटरएक्टिव में स्थापित पैकेजों में खोज को सीमित करने के लिए aptitude,

  • प्रेस l(लोअरकेस L)
  • ~iसंवाद में दर्ज करें

इंटरैक्टिव में स्थापित आकार पर सॉर्ट करने के लिए aptitude,

  • प्रेस Shift-S(अपरकेस S)
  • installsizeसंवाद में दर्ज करें

संदर्भ:


यकीन नहीं होता कि ऐसा करने का कोई तरीका है, लेकिन केबी में हमेशा साइज प्रिंट करना अच्छा होगा, इससे सॉर्ट करना आसान होगा या फिर पोस्टप्रोसेस।
derobert

@derobert देख रहा था कि मैं एप्टीट्यूड के आउटपुट में व्हाइट स्पेस को कैसे नियंत्रित कर सकता हूं, जाहिर तौर पर आकार के आउटपुट को बदलने का कोई तरीका नहीं है।
ब्राह्मण

@ ब्रायम हां, अगर मैं हटाऊं तो अंतरिक्ष की कुल राशि कितनी है *texlive*?
terdon

@terdon mm ... aptitude -s remove '?and(texlive,~i)'पर्याप्त नहीं होगा? इसके अलावा, आप कुछ पैकेज के लिए एक उपयोगकर्ता-टैग जोड़ सकते हैं ताकि आप उन्हें (कार्यों की तरह) पूरे के रूप में हेरफेर कर सकें।
Braiam

9

यदि आप वाजिग स्थापित नहीं करना चाहते हैं। मुझे लगता है कि हर कोई डेबियन-उपहार स्थापित है:

dpigs              - Show which installed packages occupy the most space

वाजिग को अजगर 3 की आवश्यकता होती है जो कि एक और 40mb है। डेबियन-गुडीज़ को अजगर 2.6+ की आवश्यकता होती है, इसलिए यह 700kb अतिरिक्त है। यह या यूसुफ का जवाब सबसे अच्छा है!
टिम ओ'ब्रायन

मैंने देखा कि dpigsवास्तव में उसी परिणाम के रूप में है dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head, जो कि स्थापित पैकेजों में से शीर्ष दस है जो सबसे अधिक स्थान पर कब्जा करते हैं। फिर भी, dpigsसरल और संक्षिप्त है।
क्लीमकुरा

8

सबसे पहले, एक उपकरण का उपयोग करें baobab( जैसे sudo apt-get install baobab) आपको यह दिखाने के लिए कि उस स्थान का उपयोग कहां किया जा रहा है:

यहाँ छवि विवरण दर्ज करें

यह आपको एक अच्छा चित्रमय अवलोकन देगा और आपकी जगह को ऊपर ले जाने में मदद करेगा। आप यह जानकारी कमांड लाइन पर भी प्राप्त कर सकते हैं du:

$ sudo du -ch /

इसे पास करें sort(जीएनयू मानकर sort, व्हिस्की को डेबियन में होना चाहिए)

$ sudo du -ch / | sort -h

अगले चरण के रूप में, आप देख सकते हैं कि कोई विशेष पैकेज इस कमांड के साथ कितनी जगह का उपयोग कर रहा है:

$ sudo apt-get --assume-no --purge remove "PACKAGE_NAME" | grep "be freed" | 
   awk '{print $4, $5}' 

मेरे सिस्टम पर, उदाहरण के लिए, सभी texliveसंकुल हटाने से 1,502 MB मुक्त होगा:

$ sudo apt-get --assume-no --purge remove "texlive*" | grep "be freed" | 
   awk '{print $4, $5}' 
1,502 MB

अंत में, आप इस आदेश के साथ सभी स्थापित संकुल के लिए यह जानकारी प्राप्त कर सकते हैं :

$ for i in $(dpkg -l | awk '($1=="ii"){print $2}'); do  
    echo -e "$i\t"$(sudo apt-get --assume-no --purge remove "$i" | 
                    grep "be freed" | awk '{print $4, $5}'); 
  done


3

अन्य उत्तरों में जोड़ने के लिए, यदि आपको कमांड लाइन पसंद है तो आप अच्छे पुराने का उपयोग कर सकते हैं durep

# durep -td 1 /etc                         # or -td 2
[ /etc   319.4K (60 files, 43 dirs) ]
  90.2K [########                      ]  28.26% apache2/
  27.5K [##                            ]   8.62% apt/
  23.7K [##                            ]   7.43% mime.types
  19.7K [#                             ]   6.18% cron.daily/
  18.7K [#                             ]   5.87% services
  18.0K [#                             ]   5.64% security/
  14.7K [#                             ]   4.61% init.d/
  13.2K [#                             ]   4.13% ssl/
  11.1K [#                             ]   3.48% ld.so.cache
   9.0K [                              ]   2.81% locale.gen
   7.8K [                              ]   2.43% pam.d/
   4.5K [                              ]   1.42% default/
   4.3K [                              ]   1.35% skel/
   2.9K [                              ]   0.92% locale.alias

आप संभवतः अंतरिक्ष का उपयोग करके मुक्त कर सकते हैं localepurge

# dpkg-reconfigure localepurge
# localepurge
localepurge: Disk space freed in /usr/share/locale: 26160 KiB
localepurge: Disk space freed in /usr/share/man: 1304 KiB

Total disk space freed by localepurge: 27464 KiB

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

https://ownyourbits.com/2017/02/18/squeeze-disk-space-on-a-debian-system/

(उदाहरणों से निकाले गए उदाहरण)


dpkg-reconfigure localepurgelocalepurgeपैकेज उपलब्ध नहीं होने के बारे में शिकायत करता है।
रॉल्फ

2

सूची में कुछ और टूल जोड़ने पर, मैंने हमेशा debfosterऔर deborphanअपने सिस्टम पर उपयोग किया है। वे पुरानी निर्भरता के शिकार के लिए सबसे उपयोगी हैं जो उन्नयन के बाद चारों ओर लटक रहे हैं।

apt-get autoremoveमहान है, लेकिन सब कुछ नहीं मिलता है और चूंकि यह स्थापना के निशान का पालन करता है, इसलिए यह हमेशा नहीं जानता कि आप क्या रखना चाहते हैं। उपयोग apt-markकरने से आप इसे कुछ हद तक निर्देशित कर सकते हैं, हालांकि।

यह भी जांचें: https://wiki.debian.org/ReduceDebian


0

हालांकि यह टूल का एक अच्छा संग्रह है, जिसमें मैं केडीई / क्यूटी फिलाइट जोड़ूंगा, जो अन्य गुई डिस्क स्थान उपयोग टूल के समान है, यह विषय शीर्षक का शाब्दिक उत्तर नहीं है।

यदि आप इस थ्रेड का शाब्दिक अर्थ लेते हैं, अर्थात, आपके सिस्टम में सबसे बड़े पैकेज क्या हैं, एक नियम के रूप में, वे हैं:

पैकेजों का लिबरऑफिस सूट, जो एक पैकेज नहीं है, लेकिन यह वास्तव में बड़ा है।

लिनक्स कर्नेल और संबद्ध हेडर पैकेज आते हैं जो मुझे लगता है कि दूसरा है, और अगर आपके पास कई कर्नेल स्थापित हैं, जो कि अधिकांश सिस्टम हैं, तो हर एक के आसपास है मुझे लगता है कि 135 एमबीबी डिस्क स्थान, मोटे तौर पर हर साल बड़ा हो जाता है, लेकिन यह उस बड़े के बारे में है । यदि आप गैर मुक्त वीडियो ड्राइवरों का उपयोग करते हैं तो संबंधित ड्राइवर पैकेज / फाइलें भी होंगी। ध्यान दें कि कामेच्छा के साथ के रूप में, प्रत्येक कर्नेल वास्तव में 2 या 3 पैकेज, छवि, हेडर और ड्राइवर पैकेज से बना हो सकता है, इसलिए एक शाब्दिक प्रति पैकेज आकार की गणना वास्तव में सटीक नहीं है सिवाय एक क्रूड समझ के।

उन लोगों के बाद, डेबियन के पैकेज पूल में बड़े पैमाने पर बड़े पैमाने पर पैकेज नहीं हैं जिनके बारे में मुझे पता है।

मुझे लगता है कि एक बार रूट विभाजन काफी बड़ा होने लगता है, जहां आप यह सोचना शुरू कर देते हैं कि कैसे इसे सिकोड़ने के लिए पैकेज से छुटकारा पाना है, यह आमतौर पर एक बड़े रूट विभाजन को स्थानांतरित करने / आकार बदलने का समय है।

apt-get स्वच्छ बेशक पहली चीज है, सभी कैश्ड .deb फ़ाइलों से छुटकारा पाने के लिए, लेकिन एक बार जब आप इसे हटा देते हैं, और सभी 2 kernels कहते हैं, यदि आप अभी भी पर्याप्त कमरे में नहीं हैं, तो यह अधिक है क्लीनअप आदि के बाद से विभाजन का आकार बढ़ाने के लिए व्यावहारिक, बस लाल झंडे हैं जो आप रूट विभाजन स्थान से बाहर चल रहे हैं, जो एक वास्तविक समस्या हो सकती है यदि उपयुक्त में पर्याप्त जगह नहीं है / var वास्तव में डाउनलोड करने और पैकेज निकालने के लिए उन्नयन। हटाए गए पैकेजों से शुद्ध क्रियाओं को छोड़ना फ़ाइलों की सफाई करना, डिस्क स्थान को पुनः प्राप्त करने के मामले में आपको बिल्कुल भी अच्छा नहीं लगेगा क्योंकि वे छोटे हैं, लेकिन अभी और उसके बाद cruft को साफ करना अच्छा है, लेकिन यह नहीं होना चाहिए ' टी वास्तव में किसी भी सार्थक डिस्क स्थान को पुनः प्राप्त करने के लिए गलत है।

apt-get auto-remove या तो खराब नहीं है, लेकिन ध्यान रखें कि यह कभी-कभी निकाले जाने वाले पैकेज के बारे में गलत है, इसलिए आप apt को हटाने से पहले उस सूची को ध्यान से देखना चाहते हैं। तकनीकी रूप से उस सूची को शुद्ध करना बेहतर है, जिस तरह से आप एक ही समय में कॉन्फ़िगर फ़ाइलों से छुटकारा पाते हैं, हटाएं या ऑटो-निकालें मुझे विश्वास होगा कि उन्हें जगह में छोड़ देना होगा।

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