.Deb फ़ाइल से इंस्टॉल किए गए प्रोग्राम के साथ अपडेट कैसे काम करता है


11

मुझे यह समझने में कुछ कठिनाइयाँ हो रही हैं कि उबंटू में संपूर्ण अद्यतन चीज़ कैसे काम करती है और सॉफ़्टवेयर स्थापित करने के लिए अच्छा अभ्यास।

मैं समझता हूं कि मेरे पास एक /etc/apt/sources.listफाइल है जहां मेरे सभी रिपॉजिटरी सूचीबद्ध हैं, और जब मैं उपयोग करता हूं तो इन रिपॉजिटरी को क्वेर apt-get updateकिया जाता है - बाद में उदाहरण के लिए इस्तेमाल किया जा सकता है
apt-get upgrade। यह सही समझ में आता है और मैंने हाल ही में इस "स्रोत" सूची में spotifyजोड़कर स्थापित किया है
deb http://repository.spotify.com stable non-free

लेकिन फिर मैं भ्रमित हो गया ...

जब मैं Google Chrome डाउनलोड करने के लिए गया था तो मुझे केवल एक .debफ़ाइल डाउनलोड और पकड़नी थी , और Chrome ने बिना किसी समस्या के इंस्टॉल किया ... लेकिन मुझे इसमें कोई प्रविष्टि दिखाई नहीं दे रही है /etc/apt/sources.list...

तो कैसे apt-get updateपता चलेगा कि क्रोम अपडेट के विषय में कहां प्रश्न करना है? क्या यह किसी तरह स्रोत फ़ाइल में पहले से सूचीबद्ध रिपॉजिटरी में से एक में जोड़ा गया है?

मैं अपने सभी स्थापित सॉफ़्टवेयर को अपडेट फ़ंक्शन द्वारा शामिल किया जाना चाहूंगा।

जवाबों:


10

यह वास्तव में जटिल है। सबसे पहले, aptएक फ्रंट-एंड है, dkpgजो वास्तव में संकुल को हटाने / हटाने का काम करता है। तो, /etc/apt/sources.list(और किसी भी फाइल को /etc/apt/sources.list.d/) द्वारा पढ़ा जाता है apt, नहीं dpkg

अब, जब आप किसी .debफ़ाइल को मैन्युअल रूप से डाउनलोड करते हैं, तो आप बाईपास कर रहे हैं aptऔर dpkg -i packagename.debइसके बजाय इसे स्थापित करने के लिए उपयोग करेंगे । इसका मतलब यह है कि apt का डेटाबेस अपडेट नहीं किया जाएगा और aptसिस्टम को आपके द्वारा इंस्टॉल किए गए पैकेज का कोई ज्ञान नहीं होगा। दूसरे शब्दों में, किसी भी मैन्युअल रूप से स्थापित संकुल apt-get upgradeको कभी भी अद्यतन नहीं करेगा ।

कहा कि, chromeवास्तव में नियम का एक अपवाद है। जब आप इसके डाउनलोड पृष्ठ पर जाते हैं, तो आपको यह संदेश दिखाई देगा:

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

सबसे नीचे यह नोट है:

नोट: Google Chrome इंस्टॉल करने से Google रिपॉजिटरी जुड़ जाएगी जिससे आपका सिस्टम स्वचालित रूप से Google Chrome को अद्यतित रखेगा। यदि आप Google का भंडार नहीं चाहते हैं, तो पैकेज को स्थापित करने से पहले "sudo टच / etc / default / google-chrome" करें।

इसका मतलब यह है कि .debपैकेज में एक स्क्रिप्ट शामिल है जो आपके सिस्टम में Google की रिपॉजिटरी को जोड़ देगा (विशेष रूप से, यह एक फ़ाइल बनाएगा /etc/apt/sources.list.d/) जिससे यह सुनिश्चित होता है कि आपके द्वारा उपयोग किए जाने पर अपडेट किया chrome जाएगाapt-get


ठीक है, समझ में आता है ... लेकिन क्या मेरे सभी मैन्युअल रूप से स्थापित पैकेजों के अपडेट को आसानी से प्रबंधित करने का कोई तरीका है?
किरीबी

2
@ नहीं, ठीक यही कारण है कि aptआदि मौजूद हैं, यदि आप उस प्रणाली से बाहर कदम रखते हैं जो आप अपने दम पर कर रहे हैं। चालें हैं, लेकिन यह शायद ही कुछ संकुल के प्रयास के लायक है जिसे आप मैन्युअल रूप से स्थापित कर सकते हैं।
टेराडॉन

1
पैकेज प्रबंधक वास्तव में परवाह नहीं करता है कि क्या पैकेज dpkg या उपयुक्त द्वारा स्थापित किया गया है। यदि यह रिपॉजिटरी में एक पैकेज का नया संस्करण पाता है जो नया संस्करण स्थापित हो जाता है।
फ्लोरियन डिस्च

@FlorianDiesch हाँ, बिल्कुल। मेरा बिंदु उन पैकेजों के लिए था जो रिपॉजिटरी में नहीं हैं।
टेराडॉन

1

में सूचीबद्ध स्रोतों /etc/apt/sources.listऔर सभी फ़ाइलों में उपयुक्त खोज /etc/apt/source.list.d। आप इस तरह के रूप में एक फ़ाइल होगा google-chrome.listमें /etc/apt/sources.list.dजो निम्नलिखित लाइन होगा:

deb http://dl.google.com/linux/chrome/deb/ stable main

इसका उपयोग google-chrome को अपडेट करने के लिए स्रोत के रूप में किया जाता है।

जब आपने मैन्युअल रूप से google-chrome के लिए डिबेट फ़ाइल डाउनलोड की और इसे स्थापित किया, तो डिबेट फ़ाइल में एक स्क्रिप्ट ने इस फ़ाइल को बनाया, ताकि आपको मैन्युअल रूप से अपडेट की खोज न करनी पड़े।

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