apt-get: डिवाइस पर कोई स्थान नहीं बचा (12.04)


42

मैंने हर उस सूत्र को पढ़ा है जो मुझे मिल सकता है - यहां तक ​​कि कहने वाले भी कहते हैं कि प्रश्न का उत्तर कहीं और दिया गया है, लेकिन उनमें से कोई भी मेरे पास मौजूद विशिष्ट मुद्दे को संबोधित नहीं करता है। अपडेट मैनेजर ने बिना निर्भरता से संबंधित त्रुटियों को चलाया और उत्पन्न किया, जो कि इस संदेश के साथ विफल होने पर apt-get install -f का उपयोग करने का सुझाव दिया :

Unpacking linux-headers-3.5.0-36 (from .../linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb (--unpack):
 unable to create `/usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h.dpkg-new' (while processing `./usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h'): No space left on device

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

ऊपुत से df -h

Filesystem 
Size Used Avail Use% 
Mounted on /dev/sda1 5.5G 4.4G 786M 86% 
/ udev 996M 4.0K 996M 1% 
/dev tmpfs 402M 880K 401M 1% 
/run none 5.0M 0 5.0M 0% /run/lock none 1004M 156K 1004M 1% 
/run/shm /dev/sdb1 30G 1.4G 27G 5% 
/home /dev/sdc1 299G 31G 268G 11% /media/HD-PCTU2 

क्या आपके पास रूट विभाजन पर जगह है?
don.joey

1
कृपया (i) df -hऔर (ii) के आउटपुट को पेस्ट (i) करें mount। dpkg काम पूरा करने के बाद फाइलों को साफ करेगा, इसलिए ऐसा प्रतीत हो सकता है कि आपके पास पर्याप्त जगह है जब वास्तव में आप नहीं। apt-get cleanDpkg शुरू करने से पहले दौड़ने पर विचार करें ।
जनवरी

1
watch -n 1 df -hएक टर्मिनल में करते हुए मॉनिटर करने के लिए apt-get install(यह आपको i / o थोड़ा धीमा कर देगा लेकिन आपको पता चल जाएगा कि कौन सा फ़ाइल सिस्टम बहुत छोटा है)
Emmanuel

उबंटू 14.04 और कर्नेल संस्करण 3.13.0.108 के साथ तीन में से एक कंप्यूटर में भी होने वाली समस्या। मैंने askubuntu.com/questions/223143/… से शुरुआत की, लेकिन यहां दिखाए गए उत्तर एक ही पंक्ति में हैं।
XavierStuvw

जवाबों:


48

मुझे बस इसी समस्या का सामना करना पड़ा। मैं कहीं और इनोड्स का उल्लेख करने के लिए आया था, और इनोड उपयोग की जांच करने के लिए अपने टर्मिनल में भाग गया:

  df -i 

इसने 99% पर इनोड का उपयोग दिखाया। इसलिए, जब मेरी डिस्क में बहुत जगह बची थी, मैं इनोड की संख्या में सीमा के कारण अधिक फाइल बनाने में सक्षम नहीं था। कुछ डिस्क क्लीनअप मेरी समस्या का समाधान था।


6
मुझे कर्नेल अपडेट के कारण वही समस्या थी जो पुरानी गुठली को अपने आप नहीं हटाती है। हर कर्नेल अपडेट के लिनक्स हेडर काफी संख्या में आयतों पर कब्जा कर लेते हैं! --- मेरे "सुरक्षित" समाधान एक अलग फाइल सिस्टम के लिए दो कर्नेल हेडर निर्देशिका स्थानांतरित करने के लिए किया गया था: cd /usr/src ; cp -a linux-headers-3.2.0-3{2,3}* /home/tmp-hdr ; rm -r linux-headers-3.2.0-3{2,3}*, apt-get-install -f, कुछ अन्य हेडर सही तरीके से निकालें: apt-get purge linux-headers-..., tmp पीछे से हेडर के लिए कदम: cd /usr/src ; cp -a /home/tmp-hdr/* .। पुरानी गुठली का उपयोग करके अधिक निकालें apt-get purge
पाबौक

1
कृपया कम गतिविधि के साथ बग रिपोर्ट पर भाग लेने पर विचार करें: बग # 1089195 लिनक्स-हेडर एलटीएस पर आपके इनोड्स खाएंगे। , बग # 690911 प्रारूपण के बिना स्थापना पुराने गुठली को हटाने में विफल
रहती है

@pabouk मुझे आश्चर्य है, अगर आप इसका इस्तेमाल कर सकते थे, तो dpkg --purge linux-headers-3.2.0-3{2,3}*; apt-get -f installकोई नकल की जरूरत नहीं थी?
जर्नो

@jarno यह एक लंबा समय था, लेकिन मुझे लगता है कि dpkg या apt डेटाबेस का उपयोग करने वाली सभी कमांड विफल हो रही थीं। मुझे लगता है कि यह टूटी हुई निर्भरता और अन्य विसंगतियों के कारण था जो एक स्वचालित उन्नयन के दौरान इनोड्स की अपर्याप्त संख्या के कारण था।
पाबौक

आवश्यक डिस्क सफाई से किया जा सकता है sudo linux-purge --fixएक बार स्क्रिप्ट प्रकाशित हुआ है।
जर्नो

37

मुझे लगता है कि आपका बूट विभाजन पुरानी कर्नेल छवियों से भरा है, नए apt-getको स्थापित करने के लिए कोई जगह नहीं छोड़ रहा है। आपको लिखना आता है

dpkg -l linux-headers-\* linux-image-\* | grep ^ii

एक टर्मिनल विंडो में। जब मैं ऐसा करता हूं, मुझे मिलता है

ii  linux-headers-3.8.0-18                    3.8.0-18.28                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-18-generic            3.8.0-18.28                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-19                    3.8.0-19.30                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-19-generic            3.8.0-19.30                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-21                    3.8.0-21.32                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-21-generic            3.8.0-21.32                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-22                    3.8.0-22.33                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-22-generic            3.8.0-22.33                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-23                    3.8.0-23.34                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-23-generic            3.8.0-23.34                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-25                    3.8.0-25.37                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-25-generic            3.8.0-25.37                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-generic                     3.8.0.25.43                            amd64        Generic Linux kernel headers

चूंकि मेरे पास काफी कम है, इसलिए मैं कुछ सबसे पुराने को हटा सकता हूं

sudo apt-get remove linux-headers-3.8.0-18

यदि apt-getविफल हो जाता है क्योंकि इसमें कुछ पैकेज निर्भरताएँ (जो कि आप फ्री इनोड्स की कमी के कारण स्थापित नहीं कर सकते हैं) को याद करते हैं, तो आप dpkgइसके बजाय सीधे उपयोग कर सकते हैं :

sudo dpkg --remove linux-headers-3.8.0-18

ऐसा करें कि आपके सबसे पुराने समय में कुछ हो linux-headers-*और आपके पास कमरा होना चाहिए।


4
यह अन्य मुद्दे को प्रकाश में लाता है। हर बार जब मैं dpkg चलाने का प्रयास करता हूं, तो यह बताता है कि इसकी एक unmet निर्भरता है। निम्न पैकेजों में unmet निर्भरताएँ हैं: linux-headers-3.5.0-36-Generic: निर्भर करता है: linux-headers-3.5.0-36- यह नहीं है स्थापित होने जा रहा है और यह वह चीज है जो स्थापित नहीं होगी क्योंकि पर्याप्त जगह नहीं है
डॉन ए

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

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

हर्गिज नहीं । । । बैकअप लेना हमेशा एक अच्छा विचार है, और आप वास्तव में बूट विभाजन के साथ बहुत खिलवाड़ नहीं कर रहे हैं, बस कुछ संकुल को उपयुक्त-स्थापना रद्द करें। यह केक का एक टुकड़ा होना चाहिए। मैंने सिर्फ आपके डेटा का बैकअप लेने का सुझाव दिया है क्योंकि मैं हमेशा सुझाव देता हूं कि अगर आपको कोई समस्या हो रही है (या यहां तक ​​कि अगर आप नहीं हैं)! मुझे निकालने में तीन मिनट लगे linux-headers-3.8.0-18
मार्क

1
यदि यह फिर से विफल हो जाता है sudo dpkg --remove linux-headers-3.8.0-18, तो इसे हटा दें sudo dpkg --remove linux-headers-3.8.0-18-genericऔर यह अन्य हेडर को अपने साथ ले जाएगा।
थिसॉन

16

मैंने उपयोग किया sudo apt-get autoremoveऔर इसने पुराने कर्नेल-हेडर पैकेजों का एक गुच्छा हटा दिया। उसके बाद जाना अच्छा है।


मेरे मामले में apt-get ने ऑटोरेमोव को इस बात की पूर्वता देने से इनकार कर दिया कि छांटने के लिए एक टूटा हुआ पैकेज था। इनोड संतृप्ति के कारण कौन सा टूटा हुआ पैकेज था। यह भी देखें AskUbuntu सूत्र
XavierStuvw

खैर, यह मुझे बचा लिया! अपडेट के बाद मेरा x सत्र कभी दर्ज नहीं हो रहा था, बस फिर से लॉग इन करने के लिए कह रहा था और मुझे कोई स्थान नहीं बचा संदेश मिला। मुझे लगा कि मुझे अपने HD को प्रारूपित करना है, लेकिन आपकी चाल ने मुझे बचा लिया :)
user5193682

1
योग्य मैं इसे नहीं चला सकता क्योंकि मेरे पास बहुत सारी फाइलें हैं ...
ब्रायन लीशमैन

2

जहां तक ​​मुझे पता है कि लिनक्स में इनोड्स की सीमा * फ़ाइल सिस्टम 4 बिलियन के आसपास है, लेकिन कम नहीं है, जो बड़ी मात्रा में फाइल है। तो आपकी समस्या यह है कि कुछ बहुत सारी फाइलें उत्पन्न कर रहा है। मैं आपको यह जाँचने के लिए प्रपोज़ कर सकता हूँ: http://blog.scoutapp.com/articles/2014/10/08/understanding-disk-inodes तो आप पाएंगे कि आपके FS के इनोड्स क्या हैं। मैं apt कैश को साफ करने का प्रस्ताव भी दे सकता हूं:

sudo apt-get clean

तथा

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