`डू-रिलीज़-अपग्रेड 'वास्तव में क्या करता है?


30

हम जानते हैं कि do-release-upgrade"एक रिलीज उन्नयन करता है"। लेकिन थोड़ा निचले स्तर पर यह वास्तव में क्या करता है?

उदाहरण के लिए, डेबियन तरीके: aptitude updateऔर aptitude full-upgradeस्रोतों को स्थापित करने के बाद , मैं एक और मैनुअल अपग्रेड करने की योजना बना रहा हूं । वास्तव में, मैं इसे पूरी तरह से इंटरैक्टिव के साथ करने की योजना बना रहा हूं aptitude। लेकिन जो मुझे मेरे स्रोतों को छोड़कर, और क्या do-relase-upgradeकरता है, इसके बारे में उत्सुक है ।

जवाबों:


32

do-release-upgrade"अपडेट-मैनेजर-कोर" पैकेज का हिस्सा है। स्क्रिप्ट यह निर्धारित करती है कि आप किस रिलीज़ को अपग्रेड करने जा रहे हैं, यह पता लगाने की कोशिश करें कि यह समर्थित है या नहीं और बाद की शिकायत करें। - अगर यह काम करने के लिए आश्वस्त है, तो यह रिलीज़-विशिष्ट अपग्रेडटूल डाउनलोड करता है और इसे चलाता है।

"अपडेट-मैनेजर-कोर" पैकेज का एक हिस्सा फ़ाइल है /etc/update-manager/meta-release, जहां आप URL http://changelogs.ubuntu.com/meta-release पा सकते हैं और वहां आपको डाउनलोड करने के लिए अपग्रेडटूल का URL मिल जाता है।

डाउनलोड किए गए अपग्रेडटूल टारबॉल को स्रोत पैकेज "ubuntu-release-upgrader" (पहले यह "अपडेट-मैनेजर") से पैक किया गया था। संस्करण लक्ष्य रिलीज के लिए नवीनतम अपडेट से मेल खाता है।

स्रोत के पुराने और खराब होने के समय से पुराना README है। यह चर्चा करता है कि रिलीज के उन्नयन के दौरान क्या किया जाना चाहिए। इसमें एक अधिक विस्तृत अपग्रेडटूल प्रस्ताव के लिंक का भी उल्लेख किया गया है

मैं यहाँ उल्लिखित क्रियाओं की सूची देता हूँ और जाँचता हूँ कि क्या वे वास्तव में कार्यान्वित की गई हैं:

  • भंडार संबंधी
    • नए स्रोतों पर जाएँ। प्रविष्टियाँ
    • अज्ञात तृतीय पक्ष रिपॉजिटरी को हटा दें
    • संभवतः स्वैप दर्पण (लागू नहीं)
  • पैकेज संबंधित
    • जाँच करें कि उन्नयन से पहले कोई टूटे हुए पैकेज नहीं हैं
    • नवीनीकरण से पहले वर्तमान रिलीज़ को अपडेट करें ( apt-get updateकेवल)
    • विशिष्ट पैकेज निकालें और इंस्टॉल करें
    • जांचें कि क्या {ubuntu, kubuntu, edubuntu} -desktop स्थापित है
    • पुरानी गुठली से छुटकारा पाएं
    • एक हटाने-ब्लैकलिस्ट और -विशेषज्ञ है
    • पहले से मौजूद रिलीज़ में मौजूद अप्रचलित पैकेजों को हटा दें या बदल दें
  • कॉन्फ़िगरेशन संबंधित (संभव quirks में: नीचे देखें)
    • नए समूहों में डिफ़ॉल्ट उपयोगकर्ता जोड़ना (मेरे द्वारा जांचे गए संस्करणों के लिए नहीं)
    • कुछ कॉन्फिग फाइल की जाँच करें

UpgradTool निम्न फ़ाइलों का उपयोग करके प्रत्येक रिलीज़ के लिए कॉन्फ़िगर किया गया है (उन्हें देखने के लिए खोलें!):

  • DistUpgrade.cfg
    • अपग्रेडटूल-संबंधित कॉन्फ़िगरेशन
    • रिलीज़-संबंधित कॉन्फ़िगरेशन
    • रिपॉजिटरी (उदाहरण के लिए [स्रोत] ValidMirrors)
    • कस्टम परिवर्तन ([Distro] PostInstallScript)
    • विशेष पैकेज; केवल DistUpgradController.py द्वारा संसाधित:
      • [Distro] RemoveObsoletes, ForcedObsoletes, BaseMetaPkgs, MetaPkgs
      • [meta_package_name] ForcedObsoletes
    • ... और DistUpgradeCache.py द्वारा:
      • ]
      • [Distro और meta_package_name] KeepInstalledPkgs, KeepInstalledSection, PostUlgrade *
      • [कर्नेलमोरल] *
  • DistUpgradeQuirks.py
    • रन (जारी) विशिष्ट कार्य (एक ही फ़ाइल) और प्लगइन्स ( pluginsनिर्देशिका)
    • फ़ंक्शंस में विशिष्ट नाम (जैसे from_nattyPreCacheOpen()) और प्लगइन्स विशेष conditionविशेषताएँ (जैसे *या PostInitialUpdate) होनी चाहिए
    • उन कार्यों में StartUpgrade()से एक, एक और ग्रैब-बैग स्वयं है: दूसरों के बीच यह कॉल करता है _applyPatches(), जो patchesनिर्देशिका में फ़ाइलों पर जाता है
    • ये सब मेरे इंस्टालेशन पर बहुत कुछ करते हैं (i386, पैकेज नट्टी-अपडेट से पुराने नहीं हैं)
  • DistUpgradCache.py से अधिक
    • get_kernel_list.sh(भरोसेमंद नहीं) चलाता है और सुनिश्चित करता है कि एक कर्नेल स्थापित है
    • एनवीडिया ड्राइवरों के बारे में कुछ संभालना

जांचे गए संस्करण:

  • नट्टी → एकरी
  • oneiric → सटीक
  • सटीक → भरोसेमंद (2014-04-18 के अनुसार अंतिम)
  • भरोसेमंद → यूटोपिक (2014-10-23 को रिलीज़ होने से पहले)

3
हर बार जब मैंने डू-रिलीज़-अपग्रेड का उपयोग किया है तो मैं एक
अनबूटे

चीजों के उदाहरण के रूप में डू-रिलीज़-अपग्रेड हैंडल: एनवीडिया बाइनरी ड्राइवर, मल्टीकार चेंज, एनडिसवॉपर, आर्किटेक्चर और कर्नेल प्रकार को जोड़ना / हटाना (जैसे कि सर्वर कर्नेल को
अपदस्थ करना

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