क्या मैन्युअल रूप से / var / cache / apt सामग्री को हटाना सुरक्षित है?


21

एक बहुत ही सीमित डिस्क स्थान के साथ एम्बेडेड सिस्टम पर मेरे पास /var/cache/aptकुछ 700MB srcpkgcache.bin.*और कुछ बड़ी *.binफ़ाइलों के साथ फ़ोल्डर भरा हुआ है ।

प्रदर्शन sudo apt-get cleanकरने से कोई फर्क नहीं पड़ा ।

क्या इन *.bin*फ़ाइलों को मैन्युअल रूप से हटाना सुरक्षित है ?


6
उबंटू 14.04 के रूप *.binमें, उक्त फ़ोल्डर में फ़ाइलों को निकालना पूरी तरह से सुरक्षित है - यह मानते हुए कि वर्तमान में कोई उपयुक्त प्रक्रिया नहीं चल रही है। अगला फ़ाइलों apt-get updateको पुन: उत्पन्न करेगा *.binयह सवाल निश्चित है नहीं में फ़ाइलों के बारे में /var/cache/apt/archivesहै, लेकिन फ़ाइलें /var/cache/apt/*.bin। बड़ा अंतर। पूर्व को जारी करके साफ किया जा सकता है apt-get clean, बाद को मैन्युअल रूप से हटा दिया जाना है। स्पष्ट रूप से प्रश्न को बंद करने वाले लोगों ने प्रश्न को ठीक से नहीं पढ़ा है। दुर्भाग्य से मैं बाउंसियों में अपने कुछ प्रतिनिधि को पुरस्कृत करने के बाद फिर से खोलने के लिए मतदान नहीं कर सकता।
0xC0000022L

3
यह कोई डुप्लिकेट नहीं है। लिंक किया गया उत्तर उपनिर्देशिका के बारे में archivesहै /var/cache/apt/, यह *.bin*फाइलों के बारे में है।
ओलाफ डाइटशेप

जवाबों:


11

ज़रुरी नहीं। वे फ़ाइलें आपके सिस्टम को यह निर्धारित करने में मदद करती हैं कि क्या उपलब्ध है और क्या नहीं है। उस निर्देशिका को खाली करने के परिणामस्वरूप एक टूटी हुई apt-get system होगी। यहाँ कुछ सुझाव दिए गए हैं।

सबसे पहले, ऑटो साफ

एक जोड़ें

DPkg::Post-Invoke { "apt-get clean"; };

के अंत तक /etc/apt/apt.conf। यह उपयुक्त और dpkg प्रक्रियाओं को अधिक समय लेगा, लेकिन यह आपके कैश निर्देशिका को हमेशा साफ रखेगा।

अगला, अभिलेखागार निकालें

सभी स्रोत अभिलेखों को हटाने और अक्षम करने से प्रारंभ करें (जो कि आपका उपयोग नहीं कर रहे हैं)। एक एम्बेडेड सिस्टम पर आपको संभवतः उनकी आवश्यकता नहीं है। अगला उन सभी अभिलेखागार को हटा दें जो उपयोग में नहीं हैं। आप apt-cache policyयह पता लगाने के लिए दौड़ सकते हैं कि कोई पैकेज रेपो से आ रहा है या नहीं।

अभिलेखागार का अधिक निष्कासन

जब आप केवल 1 या 2 की आवश्यकता होती है, तो कुछ PPA भारी संख्या में होते हैं, उन PPA को अक्षम करने का प्रयास करें और केवल डिबेट फ़ाइलों को मैन्युअल रूप से स्थापित करें। आप उन मामलों में स्थान बचाते हैं, लेकिन आप ऑटो अपडेट को ढीला कर देते हैं। ध्यान रखें कि dpkg निर्भरता को संभाल लेगा, इसलिए आप अभी भी टोंस-विथ-ऑफ-डिपडेब स्थापित कर सकते हैं apt-get -f installऔर फिर निर्भरता लाने के लिए दौड़ सकते हैं ।

पूरी तरह से चरम उत्तर 1

क्योंकि एक एम्बेडेड सिस्टम के बारे में बात कर रहे थे, 90% मुख्य प्रतिनिधि आपको कोई अच्छा काम नहीं देंगे। इसे संभालने के लिए आप अपना apt-get repo सर्वर चला सकते हैं यह लिंक देखें । यह आसान नहीं है, और यह सिर्फ एक मशीन के लिए एक पीआईए है। लेकिन अगर आपके पास इनमें से कई मशीनें हैं तो यह पूरी तरह से इसके लायक है। (आप उपयुक्त रेपो सर्वर उन पैकेजों के सबसेट को होस्ट कर सकते हैं, जिनका आप वास्तव में उपयोग करते हैं। आपको पूरी चीज को मिरर करने की आवश्यकता नहीं है)

पूरी तरह से चरम उत्तर 2

यदि अंतरिक्ष वास्तव में एक समस्या का बड़ा हिस्सा है, तो आप सभी को एक साथ अक्षम कर सकते हैं और मैन्युअल रूप से dpkg के माध्यम से स्थापित करने के लिए वापस ला सकते हैं। मुझे कई एम्बेडेड सिस्टम पर ऐसा करना पड़ा है। यह काम करता है, लेकिन यह एक बुरा सपना है।


यह एक शानदार उत्तर है (विशेष रूप से पूरी तरह से चरम वाले) लेकिन /etc/apt/apt.conf अब Ubuntu 14.04 में मौजूद नहीं है। वर्तमान सबसे अच्छा अभ्यास क्या है?
zachaysan

1
यदि यह मौजूद नहीं है तो JUst फ़ाइल बनाएँ। यह अभी भी पढ़ा जाएगा।
coteyr

5
कृपया, आप यह क्यों लिखते हैं कि *.binफाइलें निकालना सुरक्षित नहीं है ? कोई भी रन apt-get updateउन फ़ाइलों को खरोंच (परीक्षण) से पुनर्जीवित करेगा। उदाहरण के लिए मेरा उपयोग मामला यह है कि मैं LXC कंटेनर टेम्प्लेट बनाना चाहता हूं और आर्काइव को जितना संभव हो नीचे करना चाहता हूं। मैं किसी भी कारण से देख नहीं सकता कि यह असुरक्षित है। और आपका जवाब एक कारण नहीं बताता है, बस बताता है कि यह असुरक्षित है। परीक्षण किया गया कि यह Ubuntu 14.04 पर पूरी तरह से सुरक्षित है
0xC0000022L

1
आप कह रहे हैं कि apt-cache cleanएक dpkg कॉल में क्लिनर कैश शामिल होगा, लेकिन उपयोगकर्ता का कहना है apt-cache cleanकि उनके लिए कुछ भी साफ नहीं किया गया है। इसके अलावा आपका जवाब पूरी तरह से गलत है क्योंकि dpkg /var/cache/apt/*पैकेज स्टेटिस्टिक के लिए सूचित करने के लिए सामग्री का उपयोग नहीं करता है ।
अनवर

1
Apt-get मैनपेज स्पष्ट रूप से के समारोह का वर्णन करता है cleanबाहर लाए पैकेज फ़ाइलों की स्थानीय भंडार * साफ साफ करता है के रूप में। यह सब कुछ हटा देता है, लेकिन लॉक फ़ाइल / var / cache / apt / अभिलेखागार / और /var/cache/apt/archives/partial/.* यदि यह खतरनाक है, तो इस तरह के फ़ंक्शन को साफ करने के लिए नहीं होगा।
अनवर

3

आप निश्चित रूप से हटा सकते हैं pkgcache.binऔर srcpkgcache.bin, कुछ नहीं होता है। बस apt-get updateउन्हें फिर से बनाने के लिए दौड़ें ।


... और क्या यह .debफाइलों के विलोपन के लिए स्वतंत्र रूप से सही है ?
einpoklum - मोनिका

1

रखें pkgcache.binऔर srcpkgcache.bin, आप सुरक्षित रूप से दूसरों हटा सकते हैं। निर्देशिकाओं को मत छुओ!


ठीक है धन्यवाद। मैंने अस्थायी रूप से *bin.*फ़ाइलों को बैकअप फ़ोल्डर में स्थानांतरित कर दिया है। हालांकि, apt-get कैश के अंदर कैश का प्रबंधन क्यों करता है ? एक कैश डायरेक्टरी को स्वभाव से एक अस्थायी भंडारण होना चाहिए।
ysap

यह समस्या पहले से ही संक्षिप्त है। :) यहाँ
फ्रैंटिक

आप बेशक pkgcache.bin और srcpkgcache.bin को हटा सकते हैं, ऐसा कुछ नहीं होता है। apt-get update उन्हें फिर से बनाता है।
टॉमस एम

0

आप निश्चित रूप से इसके लिए एक एनएफएस-शेयर (नेटवर्क फाइल सिस्टम) बना सकते हैं। इन फ़ाइलों को एक सर्वर पर छोड़ दें और शेयर को केवल तभी माउंट करें जब आप पैकेजों को अपडेट / इंस्टॉल करना चाहते हैं। एम्बेडेड वातावरण में, स्थापना आमतौर पर वैसे भी अपेक्षाकृत स्थिर होगी।

sshfs एक और अच्छा विकल्प है, इसे स्थापित करना बहुत आसान है (मूल रूप से केवल एसएसएच की आवश्यकता है जो मानक है), लेकिन इसमें अधिक ओवरहेड (धीमी) है।


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