/ Var / cache / apt / अभिलेखागार / में डेब फाइल क्यों हैं?


11

इसमें डिबेट फाइल क्यों हैं /var/cache/apt/archives/?

उन मामलों में डिबेट फ़ाइलों को उस निर्देशिका में डाउनलोड किया गया था?

जवाबों:


21

पृष्ठभूमि की जानकारी

उबंटू में दो चीजें हैं (और डेबियन में, जिस पर उबंटू आधारित है) जिसे आमतौर पर "पैकेज मैनेजर" कहा जाता है: dpkgऔर एपीटी।

dpkgएक ऐसा प्रोग्राम है जो संकुल को स्थापित करता है और हटाता है और संकुल को संस्थापित करता है, किस संस्करण में संस्थापित करता है। जब यह पैकेज स्थापित करता है, तो यह .debसंग्रह फ़ाइलों से ऐसा करता है । ये अभिलेखागार हैं जिस तरह से पैकेज वितरित किए जाते हैं।

dpkgफ़ाइलों को कॉपी (या डिलीट) करने से अधिक है और इसके डेटाबेस को अपडेट करें - यह इंस्टॉलेशन स्क्रिप्ट और रिमूवल स्क्रिप्ट भी चलाएगा। यह बहुत परिष्कृत माना जा सकता है। लेकिन यह क्या नहीं करेगा पैकेज ढूंढना और डाउनलोड करना है।

APT पैकेज ढूँढता है और डाउनलोड करता है, और dpkgउन्हें स्थापित, अपग्रेड और निकालने के लिए उचित रूप से चलाता है। एपीटी वास्तव में किसी भी सॉफ्टवेयर का एक टुकड़ा नहीं है, हालांकि एक उपयुक्तउपयुक्त स्थापित करें पैकेज है जो इसके आवश्यक हिस्से प्रदान करता है।

APT में एक पुस्तकालय ( libapt-pkg ) शामिल है जो विभिन्न उपकरणों द्वारा पहुँचा गया कोर कार्यक्षमता प्रदान करता है। कुछ ऐसे उपकरण, जैसे apt-get, उपयुक्तउपयुक्त स्थापित करें पैकेज द्वारा भी प्रदान किए जाते हैं । अन्य उपकरण अलग से स्थापित हैं। APT विभिन्न विन्यास फाइलें भी प्रदान करता है जो नियंत्रित करती हैं कि इसकी मुख्य लाइब्रेरी, और इसका उपयोग करने वाले प्रोग्राम कैसे काम करते हैं।

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

उदाहरण के लिए, जब मैं चॉकलेट-कयामत पैकेज apt-getको स्थापित करने की उपयोगिता बताता हूं , तो यह पता चलता है कि इसे काम करने के लिए अन्य पैकेजों को क्या स्थापित करना है, और स्वचालित रूप से उन्हें पुनः प्राप्त और स्थापित करना होगा:चॉकलेट-कयामत स्थापित करें

$ sudo apt-get install chocolate-doom
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  doom-wad-shareware libmikmod3 libsdl-mixer1.2 libsdl-net1.2 libsdl1.2debian
Recommended packages:
  doom-engine
The following NEW packages will be installed:
  chocolate-doom doom-wad-shareware libmikmod3 libsdl-mixer1.2 libsdl-net1.2
  libsdl1.2debian
0 upgraded, 6 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/2,846 kB of archives.
After this operation, 8,626 kB of additional disk space will be used.

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

/var/cache/apt/archivesफोल्डर का उपयोग कैसे और कब किया जाता है

जब apt-get, aptitude, सॉफ्टवेयर केंद्र , Synaptic , Software Updater / अपडेट प्रबंधक , या किसी अन्य पैकेज प्रबंधन उपयोगिता डाउनलोड पैकेज (और अन्य संकुल वे पर निर्भर करते हैं) कॉन्फ़िगर से सॉफ्टवेयर स्रोतों और उन्हें इंस्टॉल, डाउनलोड किया संकुल (यानी, .deb संग्रह फ़ाइलों जिससे वे स्थापित हैं) में संग्रहीत हैं /var/cache/apt/archives

यदि आपके पास डिस्क पर एक .deb फ़ाइल है और आप इसे स्थापित करते हैं dpkg, तो इसकी एक प्रतिलिपि नहीं बनती है /var/cache/apt/archives। लेकिन जब एक प्रोग्राम जो स्वचालित निर्भरता रिज़ॉल्यूशन और पैकेज रिट्रीवल डाउनलोड पैकेज के एपीटी सिस्टम का उपयोग करता है या लागू करता है, तो यह वह जगह है जहां यह उन्हें संग्रहीत करता है।

जबकि स्वचालित रूप से डाउनलोड किए गए पैकेजों के लिए .deb फाइलें स्टोर की जाती हैं और /var/cache/apt/archivesइनसे इंस्टॉल की जाती हैं , वे वास्तव में उस स्थान पर सीधे डाउनलोड नहीं होती हैं। इसके बजाय, अपूर्ण (यानी, प्रगति में) .deb फ़ाइल डाउनलोड मौजूद हैं /var/cache/apt/archives/partialऔर /var/cache/apt/archivesतब समाप्त होने पर ले जाया जाता है ।

.deb पैकेज फाइलें /var/cache/apt/archivesभविष्य में उपयोग के लिए जरूरी होने पर भी सफल इंस्टॉलेशन के बाद भी कैश की जाती हैं। लेकिन आप सुरक्षित रूप से .deb फ़ाइलों को हटा सकते हैं जो काफी पुरानी हैं sudo apt-get autoclean, जिनकी दोबारा आवश्यकता नहीं है , या कैश्ड .debफ़ाइलों को पूरी तरह से हटा दें sudo apt-get cleanman apt-getअधिक जानकारी के लिए देखें ।

के समारोह उदाहरण देकर स्पष्ट करने sudo apt-get autocleanऔर इसी तरह के आदेशों, साथ ही निर्धारित करने के लिए यदि आप उन्हें चलाना चाहते हैं, तो आप कर सकते हैं अनुकरण तो साथ चलाकर उनके कार्यों -sझंडा। यह इस ध्वज पारित करने के लिए सबसे अच्छा है से पहलेautoclean (या जो भी अन्य) एक्शन क्रिया। sudoउपयोग करते समय रूट के रूप में उपयोगिता को चलाने के लिए आमतौर पर आवश्यक नहीं है -s, क्योंकि कोई वास्तविक परिवर्तन नहीं किया जा रहा है।

उदाहरण के लिए, मेरे सिस्टम पर:

$ apt-get -s autoclean
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Del libubsan0 4.9.1-15ubuntu1 [83.7 kB]
Del cups-server-common 1.7.5-3 [519 kB]
Del python2.7 2.7.8-9 [205 kB]
Del g++-4.9 4.9.1-15ubuntu1 [17.4 MB]
Del libstdc++-4.9-dev 4.9.1-15ubuntu1 [1,121 kB]
    ....

सूचीबद्ध संकुल की स्थापना रद्द नहीं की जाएगी ; इसके बजाय, केवल कैश की गई .deb फ़ाइलें हटा दी जाएंगी। (वास्तव में न तो तब हुआ जब मैं उस कमांड को चलाता था, क्योंकि यह केवल एक सिमुलेशन था।)

अन्य डाउनलोड की गई फाइलें

dpkgएपीटी (अन्यथा) के माध्यम से स्थापित सॉफ़्टवेयर वास्तव में .deb फ़ाइल से नहीं चलाया जाता है जो इसे प्रदान करता है। जैसा कि पृष्ठभूमि सूचना अनुभाग में उल्लेख किया गया है , .deb फाइलें निकाली जाती हैं। यही कारण है कि उन्हें हटाया जा सकता है और स्थापित पैकेज कार्य करना जारी रखता है।

.Deb संकुल से संस्थापित सिस्टम में फ़ाइलें उनके वर्तमान स्थानों पर डाउनलोड नहीं की जाती हैं - बल्कि, उन्हें .deb फ़ाइलों से निकाला जाता है जो उन्हें प्रदान करता है (या विशेष रूप से स्थापना के दौरान या बाद में बनाया गया है, जैसा कि मामला है) कुछ विन्यास फाइल के लिए)।

लेकिन .deb फाइलें केवल पैकेज प्रबंधन उपयोगिताओं द्वारा डाउनलोड की गई फाइलें नहीं हैं। अक्सर अन्य फ़ाइलों को डाउनलोड किया जाता है जो पैकेज कहाँ मौजूद हैं के बारे में जानकारी प्रदान करते हैं।

उदाहरण के लिए, जब मैं दौड़ता हूं sudo apt-get update, तो आउटपुट में लाइनें शामिल होती हैं:

Get:13 http://us.archive.ubuntu.com utopic/main i386 Packages [1,341 kB]

इसका मतलब यह है कि http://us.archive.ubuntu.com/ubuntu/dists/utopic/main/binary-amd64/Packages.bz2 जैसी फाइल डाउनलोड की गई और एपीटी डेटाबेस को अद्यतन करने में मदद करने के लिए जांच की गई कि क्या पैकेज उपलब्ध है (जानकारी पर) और किस संस्करण में) उस विशेष सॉफ्टवेयर स्रोत से। आप /var/lib/apt/listनिर्देशिका में संकुल फाइलें, और अन्य ऐसी फाइलें पा सकते हैं । वहां संग्रहित प्रतियों को अलग-अलग नाम दिए गए हैं us.archive.ubuntu.com_ubuntu_dists_utopic_main_binary-amd64_Packages, जैसे कि ऐसी कई फाइलें हो सकती हैं।

आपने apt-cacheविशेष रूप से पूछा । यह पैकेज डेटाबेस पर सवाल उठाता है, लेकिन यह सिस्टम में कोई बदलाव नहीं करता है और न ही कोई फाइल डाउनलोड करता है।

डाउनलोड की गई फाइलें सॉफ्टवेयर सेंटर के लिए विशिष्ट हैं

जब उबंटू सॉफ्टवेयर सेंटर अपने स्वयं के उपयोग के लिए डेटा डाउनलोड करता है, तो उसके लिए विशिष्ट और सामान्य APT (या dpkg) कार्यक्षमता से संबंधित नहीं है, यह उन्हें स्टोर करता है /var/cache/software-center

उदाहरण के लिए, मेरे सिस्टम पर (और अधिकांश सिस्टम पर), उस फ़ोल्डर में एक xapianसबफ़ोल्डर है:

ek@Ilex:/var/cache/software-center/xapian$ ls
flintlock       postlist.baseB  record.baseB    spelling.baseB  termlist.baseB
iamchert        postlist.DB     record.DB       spelling.DB     termlist.DB
postlist.baseA  record.baseA    spelling.baseA  termlist.baseA

सॉफ़्टवेयर केंद्र त्वरित खोज के लिए अनुक्रमणिका जानकारी के लिए Xapian का उपयोग करता है ।

अन्य संबंधित उपयोगिताओं के लिए डाउनलोड की गई फाइलें

कुछ अतिरिक्त उपयोगिताओं जो एपीटी सिस्टम के साथ काम करती हैं और फाइलों को उनके संचालन के हिस्से के रूप में डाउनलोड करती हैं। apt-fileउबंटू में डिफ़ॉल्ट रूप से स्थापित नहीं है, लेकिन apt-fileउपयुक्त फ़ाइल स्थापित करें पैकेज से स्थापित किया जा सकता है ।

apt-fileकौन सी फाइलें कौन से पैकेजों (यहां तक ​​कि स्थानीय रूप से स्थापित नहीं हैं) के लिए भी जानकारी प्रदान करती है। यह संपीड़ित Contentsफ़ाइलों को डाउनलोड करके पैकेज की सामग्री के बारे में यह जानकारी प्राप्त करता है :

$ sudo apt-file update
Downloading complete file http://us.archive.ubuntu.com/ubuntu/dists/utopic/Contents-amd64.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 29.6M  100 29.6M    0     0   856k      0  0:00:35  0:00:35 --:--:--  832k

जब apt-file updateरूट के रूप में (ऊपर के रूप में) चलाया जाता है, तो इन फ़ाइलों को /var/cache/apt/apt-fileनिर्देशिका में डाउनलोड किया जाता है । इसे खोजने के लिए, मैं भागा:

$ sudo updatedb
$ locate Contents-amd64
/var/cache/apt/apt-file/us.archive.ubuntu.com_ubuntu_dists_utopic-proposed_Contents-amd64.gz
/var/cache/apt/apt-file/us.archive.ubuntu.com_ubuntu_dists_utopic_Contents-amd64.gz

ध्यान दें कि इस पोस्ट में दी गई जानकारी उबंटू पर पैकेज प्रबंधन उपयोगिताओं द्वारा dowloaded और संग्रहीत डेटा फ़ाइलों के कई उदाहरण देती है, लेकिन उन उदाहरणों की एक विस्तृत सूची नहीं मानी जानी चाहिए जहां ऐसी फ़ाइलों का उपयोग और संग्रहीत किया जाता है।


धन्यवाद। क्या apt-cache या / और apt-fileभी कई चीजें डाउनलोड करते हैं? यदि हाँ, तो वे कहाँ हैं?
तैमू

क्या करता है "लेकिन जब एक प्रोग्राम जो स्वचालित निर्भरता रिज़ॉल्यूशन और पैकेज रिट्रीवल डाउनलोड पैकेज के एपीटी सिस्टम का उपयोग करता है या लागू करता है, तो यह वह जगह है जहां यह उन्हें संग्रहीत करता है।" क्या मतलब है?
टिम

@ समय पर मैंने अपने उत्तर का विस्तार कर दिया है, इस तरह से मुझे आशा है कि मैं उन प्रश्नों (और अधिक) का ठीक से उत्तर दूंगा। हमेशा की तरह आपकी प्रतिक्रिया का स्वागत है - खासकर अगर कुछ भी अस्पष्ट है।
एलिया कगन

धन्यवाद "apt-cache क्वेरीज़ पैकेज डेटाबेस", डेटाबेस ऑनलाइन या स्थानीय कंप्यूटर पर है? क्या एप-कैश को इंटरनेट तक पहुंच की आवश्यकता है?
टिम

1
@ ओरियन (मुझे खुशी है कि इस उत्तर ने मदद की!) आप प्रश्न पर स्टार क्लिक कर सकते हैं। यह सवाल और वोट के तीर के ठीक नीचे है। फिर प्रश्न आपके प्रोफ़ाइल के पसंदीदा टैब में दिखाई देता है । केवल प्रश्नों का पक्ष लिया जा सकता है। इस उत्तर के मामले में, यह वर्तमान में प्रश्न पर केवल एक ही है। दूसरों को पोस्ट किया जा सकता है - हालांकि आप शायद उन लोगों को भी देखना चाहते हैं, क्योंकि कभी-कभी नए उत्तरों में किसी विषय में नए विकास के बारे में जानकारी होती है। आप अपने ब्राउज़र के बुकमार्क का उपयोग कर सकते हैं, जो उत्तर के लिए भी काम करते हैं। विशिष्ट उत्तर पर पृष्ठ को खोलने के लिए उत्तर के तहत शेयर लिंक का उपयोग करें ।
एलियाह कगन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.