जवाबों:
उबंटू में दो चीजें हैं (और डेबियन में, जिस पर उबंटू आधारित है) जिसे आमतौर पर "पैकेज मैनेजर" कहा जाता है: 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 clean
। man 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
भी कई चीजें डाउनलोड करते हैं? यदि हाँ, तो वे कहाँ हैं?