एप-गेट अपग्रेड के बजाय एप्ट-गेट अपग्रेड का उपयोग क्यों करें?


302

मैं आमतौर पर apt-get update && apt-get upgradeGUI के बजाय अपने अपडेट और अपग्रेड को चलाने के लिए उपयोग करता हूं क्योंकि यह अधिक तेज़ी से चलने लगता है।

हालांकि, मैंने हाल ही में देखा है कि मुझे अक्सर एक संदेश मिलता है कि मेरा एक अपग्रेड वापस आयोजित किया गया था। मैं तब आमतौर पर dist-upgradeइसे चलाने के लिए दौड़ता हूं और यह ठीक काम करता है। जहाँ तक मैं इस प्रश्न और इसके उत्तर को पढ़ने के बाद बता सकता हूं , dist-upgradeसभी एक ही तरह की चीजें करते हैं और फिर कुछ।

तो, मेरा सवाल है: क्यों का उपयोग करें apt-get upgrade? apt-get dist-upgradeहर समय उपयोग क्यों नहीं ? क्यों apt-get upgradeमौजूद है?


1
नए उबंटू संस्करणों में, sudo apt full-upgradeइसी तरह की चीजें करता है।
एरोन फ्रेंके

जवाबों:


410

मैं आमतौर पर अपनी मशीनों को अपग्रेड करता हूं:

sudo apt-get update && time sudo apt-get dist-upgrade

नीचे से एक अंश है man apt-getअपग्रेड का उपयोग करना नियम को बनाए रखता है: किसी भी परिस्थिति में वर्तमान में हटाए गए संकुल को स्थापित नहीं किया जाता है, या संकुल पहले से ही पुनर्प्राप्त और स्थापित नहीं किया गया है। यदि यह आपके लिए महत्वपूर्ण है, तो उपयोग करें apt-get upgrade। यदि आप "बस काम" के लिए चीजें चाहते हैं, तो आप शायद apt-get dist-upgradeयह सुनिश्चित करना चाहते हैं कि निर्भरता का समाधान हो।

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

upgrade
    upgrade is used to install the newest versions of all packages
    currently installed on the system from the sources enumerated in
    /etc/apt/sources.list. Packages currently installed with new
    versions available are retrieved and upgraded; under no
    circumstances are currently installed packages removed, or packages
    not already installed retrieved and installed. New versions of
    currently installed packages that cannot be upgraded without
    changing the install status of another package will be left at
    their current version. An update must be performed first so that
    apt-get knows that new versions of packages are available.

dist-upgrade
    dist-upgrade in addition to performing the function of upgrade,
    also intelligently handles changing dependencies with new versions
    of packages; apt-get has a "smart" conflict resolution system, and
    it will attempt to upgrade the most important packages at the
    expense of less important ones if necessary. So, dist-upgrade
    command may remove some packages. The /etc/apt/sources.list file
    contains a list of locations from which to retrieve desired package
    files. See also apt_preferences(5) for a mechanism for overriding
    the general settings for individual packages.

44
न केवल दोनों के बीच मतभेदों को समेटने के लिए धन्यवाद, बल्कि उन स्थितियों को भी समझाएं जहां एक दूसरे से बेहतर हो सकता है। यह ठीक वही है जिसकी मुझे तलाश थी।
jimchristie

10
dist-upgradeकी तुलना में बुरी तरह से सामान को तोड़ने की अधिक संभावना है upgradeupgradeयह सुनिश्चित करता है कि आपका सिस्टम पूरा बना रहे।
ब्रियाम

5
डिस्ट-अपग्रेड में परस्पर विरोधी पैकेज संस्करणों के साथ मुद्दों को ठीक करने की अधिक संभावना है, यदि आप रोड रोलर दृष्टिकोण लेने के साथ सहज हैं (यानी आपके पास बॉक्स पर चलने वाला मिशन महत्वपूर्ण उत्पादन सॉफ़्टवेयर नहीं है)
हेंनो

1
'Apt-get उन्नयन' के बारे में एक छोटा सा सवाल इस तथ्य का संदर्भ देता है कि "वर्तमान में स्थापित संकुल हटाए नहीं गए हैं या नए जोड़े गए हैं": क्या मौजूदा संकुल तदनुसार उन्नत हो जाते हैं। उदाहरण के लिए, oldA oldB पर निर्भर करता है। क्या पुराने और पुराने दोनों को अपग्रेड किया जाएगा? कैसे के बारे में अगर newA oldB पर निर्भर करता है और newB नहीं, तो उन्नयन के दौरान इन दोनों का क्या होता है? दोनों अपग्रेड नहीं किए गए हैं या दोनों अपग्रेड नहीं किए गए हैं, जिससे नयापन काम नहीं कर सकता है क्योंकि ओल्डबी खो गया है?
केनी

2
timeयहाँ उपयोग करने का क्या कारण है?
इटलीपैले

128

मुझे पता है कि इस सवाल का जवाब दिया गया है और यह एक साल पुराना है, लेकिन मुझे लगता है कि यह कहा जाना चाहिए। Ubuntu 14.04 और बाद में (और डेबियन जेसी और बाद में, Google से इसे खोजने वालों के लिए) APT 1.0 का उपयोग करता है, जो कुछ ऑपरेशनों के aptबजाय apt-getऔर कमांड की अनुमति देता है apt-cache

  • apt-get upgrade जो स्थापित है उसे नहीं बदलेगा (केवल संस्करण),
  • apt-get dist-upgrade उन्नयन को पूरा करने के लिए आवश्यक के रूप में संकुल को स्थापित या हटा देगा,
  • apt upgrade स्वचालित रूप से स्थापित करेगा लेकिन संकुल को नहीं हटाएगा।
  • apt full-upgradeके रूप में एक ही कार्य करता है apt-get dist-upgrade

@ मुरु पूर्ण-अपग्रेड के बारे में संपादन और नोट के लिए धन्यवाद। मैं मुख्य रूप से डेबियन 7 (जो प्री-एपीटी 1.0 है) का उपयोग करता हूं, और मैंने केवल डेबियन जेसी और उबंटू 14.04 के साथ खेला है।
स्टीफन एंजेलिको

आपका स्वागत है। जैसा कि कोई व्यक्ति करता है jessieऔर 14.04 नियमित रूप से उपयोग करता है , मैंने पहली बार आपके उत्तर से इस नई उपयोगिता को सीखा है!
मूरू

क्या आपके पास अपने विवरण के लिए एक स्रोत है apt upgrade? मैं जो कुछ भी सुझा सकता हूं apt upgrade, वह वैसा ही है जैसा कि है apt-get upgrade। उदाहरण के लिए, apt help upgradeमेरे सिस्टम आउटपुट पर:"apt upgrade" is equivalent to "sudo apt-get upgrade"
जॉन बेंटले

1
संबंधित मैं के लिए प्रबंधन करता है aptऔर apt-getनिर्दिष्ट करता हूं कि मैंने मूल रूप से क्या कहा।
स्टीफन एंजेलिको

1
apt safe-upgradeमेरे सिस्टम पर मान्य कार्रवाई नहीं है। अगर आपका मतलब है aptitude safe-upgrade, काफी नहीं। apt-get upgradeपैकेज इंस्टॉल कभी नहीं होगा, जबकि apt upgradeऔर aptitude safe-upgradeनए संकुल स्थापित हो जाएगा के रूप में निर्भरता यह मांग करते हैं। तो aptitude safe-upgradeके बराबर है apt upgrade, नहीं apt-get upgrade
स्टीफन एंजेलिको

7

upgradeविकल्प केवल संकुल कि पहले से ही सिस्टम पर स्थापित कर रहे हैं के नए संस्करण को स्थापित करता है (और हाँ, गिरी अपडेट उनसे संबंधित)।

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

हालांकि, dist-upgradeविकल्प निर्भरता प्रणाली में परिवर्तन को "समझदारी" से संभाल सकता है। इसमें उन पैकेजों को हटाना शामिल है जो अब आवश्यक नहीं हैं या उन पैकेजों के बीच संघर्ष को हल करते हैं जो निर्भरता में बदलाव के कारण उत्पन्न हुए थे।


5
हालांकि यह सटीक है, मुझे नहीं लगता कि यह सवाल का जवाब देता है। यदि हमारे पास एक "बुद्धिमान" विकल्प है जो निर्भरता में बदलाव को हटा सकता है और अव्यवस्था को दूर कर सकता है, तो हमेशा इसका उपयोग क्यों नहीं किया जाता है?
1920 में ændrük

1
upgradeकभी भी नए पैकेज नहीं जोड़ेंगे जो निर्भरता के रूप में आवश्यक हो जाते हैं । से man apt-get: "किसी भी परिस्थिति में वर्तमान में हटाए गए पैकेज स्थापित नहीं हैं, या पैकेज पहले से ही पुनर्प्राप्त और स्थापित नहीं किए गए हैं" @ isndrük सिर्फ इसलिए कि कुछ "बुद्धिमान" है इसका मतलब यह नहीं है कि यह हमेशा वही करेगा जो उपयोगकर्ता चाहता है (या यहां तक ​​कि कुछ भी उचित है) । किसी भी समय सिस्टम अपडेट एक पैकेज को हटा देता है, यह देखने के लिए अच्छा है कि वाई दबाने से पहले यह क्या कर रहा है।
एलियाह कगन

2

उपयोगकर्ता उन पैकेजों पर भरोसा करने के लिए आए हो सकते हैं जो अन्य (स्पष्ट रूप से स्थापित) पैकेजों की निर्भरता के कारण निहित थे। इस प्रकार पैकेजिंग प्रणाली को कुछ कार्यक्षमता को बनाए रखने के लिए एक उपयोगकर्ता / व्यवस्थापक की इच्छा के बारे में पता नहीं हो सकता है जो अन्यथा डिस्टर्-अपग्रेड के माध्यम से हटाया जा सकता है।


-4

विन-होम उपयोगकर्ताओं के लिए हमेशा "डिस्ट-अपग्रेड" की समस्या नहीं होनी चाहिए, लेकिन यदि आप जटिल सिस्टम चला रहे हैं, तो आप बेहतर "कभी नहीं (वास्तव में) एक रनिंग सिस्टम को बदलते हैं" ... भले ही "कोई समस्या न हो" , वहाँ "हो सकता है" जांच - क्या आप काट देंगे! आपको वही होना चाहिए जिसके पास सही 2 निर्णय हो ;-)


3
Should not be a problem for Win-Home Users to always "dist-upgrade"..ऐसा क्यों है ?
हेम्यल

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