`do-release-upgrade` ทำอะไรจริงๆ?


30

เรารู้ว่าdo-release-upgrade“ ทำการอัปเกรดรีลีส” แต่ในระดับที่ต่ำกว่าเล็กน้อยมันทำอะไรได้จริง?

ฉันวางแผนที่จะทำการอัปเกรดด้วยตนเองเพิ่มเติมเช่นวิธี Debian: aptitude updateและaptitude full-upgradeหลังจากตั้งค่าแหล่งที่มา aptitudeอันที่จริงผมวางแผนที่จะทำมันอย่างสิ้นเชิงกับการโต้ตอบ แต่นั่นทำให้ฉันอยากรู้เกี่ยวกับสิ่งอื่น do-relase-upgradeทำยกเว้นการซ่อนรายการแหล่งที่มาของฉัน

คำตอบ:


32

do-release-upgradeเป็นส่วนหนึ่งของแพ็คเกจ“ update-manager-core” ดูเหมือนว่าสคริปต์จะเป็นตัวกำหนดรุ่นที่คุณกำลังจะอัพเกรดลองค้นหาว่ารองรับหรือไม่และบ่นเกี่ยวกับรุ่นหลัง - หากมั่นใจว่าใช้งานได้จะดาวน์โหลด UpgradeTool เฉพาะรุ่นและเรียกใช้

ส่วนหนึ่งของแพ็คเกจ“ update-manager-core” เป็นไฟล์/etc/update-manager/meta-releaseที่คุณสามารถค้นหา URL http://changelogs.ubuntu.com/meta-releaseและคุณจะพบ URL สำหรับ UpgradeTool ที่จะดาวน์โหลด

tarball UpgradeTool ที่ดาวน์โหลดมานั้นบรรจุอยู่ในแพ็คเกจ“ ubuntu-release-upgrader” (ก่อนหน้านั้นคือ“ update-manager”) เวอร์ชันนี้สอดคล้องกับการอัปเดตล่าสุดสำหรับการเปิดตัวเป้าหมาย

แหล่งที่มามี README เก่าจากช่วงเวลาเปิดตัวและเปิดตัว มันกล่าวถึงสิ่งที่ควรทำในระหว่างการอัพเกรด นอกจากนี้ยังกล่าวถึงการเชื่อมโยงไปยังข้อเสนอ UpgradeTool รายละเอียดเพิ่มเติม

ฉันแสดงรายการการกระทำที่กล่าวถึงที่นี่และตรวจสอบว่ามีการใช้งานจริงหรือไม่:

  • พื้นที่เก็บข้อมูลที่เกี่ยวข้อง
    • เปลี่ยนเป็นรายการแหล่งที่มาใหม่
    • ลบที่เก็บของบุคคลที่สามที่ไม่รู้จัก
    • อาจสลับกระจก (ไม่ใช้งาน)
  • แพคเกจที่เกี่ยวข้อง
    • ตรวจสอบว่าไม่มีแพ็คเกจที่ใช้งานไม่ได้ก่อนทำการอัพเกรด
    • อัปเดตรีลีสปัจจุบันก่อนอัพเกรด ( apt-get updateเท่านั้น)
    • ลบและติดตั้งแพคเกจเฉพาะ
    • ตรวจสอบว่ามีการติดตั้ง {ubuntu, kubuntu, edubuntu} -desktop หรือไม่
    • กำจัดเมล็ดเก่า
    • มีรายการลบบัญชีดำและ -whitelist
    • ลบหรือแทนที่แพ็กเกจที่ล้าสมัยซึ่งมีอยู่ในรีลีสก่อนหน้า
  • เกี่ยวข้องกับการกำหนดค่า (เป็นไปได้ในนิสัยใจคอ: ดูด้านล่าง)
    • การเพิ่มผู้ใช้เริ่มต้นให้กับกลุ่มใหม่ (ไม่ได้ทำเพื่อรุ่นที่ฉันตรวจสอบ)
    • ตรวจสอบไฟล์กำหนดค่าบางอย่าง

UpgradeTool มีการกำหนดค่าสำหรับแต่ละรุ่นโดยใช้ไฟล์ต่อไปนี้ (เปิดดู):

  • DistUpgrade.cfg
    • UpgradeTool ที่เกี่ยวข้องกับการกำหนดค่า
    • การกำหนดค่าที่เกี่ยวข้องกับการเปิดตัว
    • ที่เก็บ (เช่น [แหล่งที่มา] ValidMirrors)
    • การเปลี่ยนแปลงที่กำหนดเอง ([Distro] PostInstallScript)
    • แพ็คเกจพิเศษ; ประมวลผลโดย DistUpgradeController.py:
      • [Distro] RemoveObsoletes, ForcedObsoletes, BaseMetaPkgs, MetaPkgs
      • [meta_package_name] ForcedObsoletes
    • ... และโดย DistUpgradeCache.py:
      • [Distro] MetaPkgs, RemoveBlacklist, RemoveEssentialOk, BadVersions, BaseMetaPkgs, PurgeObsoletes, Demotions, การอ้างอิงคีย์
      • [Distro และ meta_package_name] KeepInstalledPkgs, KeepInstalledSection, PostUpgrade *
      • [KernelRemoval] *
  • DistUpgradeQuirks.py
    • เรียกใช้ (เฉพาะ) ฟังก์ชั่นเฉพาะ (ไฟล์เดียวกัน) และปลั๊กอิน ( pluginsไดเรกทอรี)
    • ฟังก์ชั่นจะต้องมีชื่อเฉพาะ (เช่นfrom_nattyPreCacheOpen()) และปลั๊กอินconditionคุณสมบัติพิเศษ(เช่น*หรือPostInitialUpdate)
    • หนึ่งในฟังก์ชั่นเหล่านั้นStartUpgrade()เป็นอีกหนึ่งตัวคว้า: ในหมู่คนอื่น ๆ ที่มันเรียก_applyPatches()ซึ่งไปอยู่เหนือไฟล์ในpatchesไดเรกทอรี
    • สิ่งเหล่านี้ไม่ทำอะไรเลยในการติดตั้งของฉัน (i386, แพคเกจไม่เก่ากว่าอัพเดท natty)
  • เพิ่มเติมจาก DistUpgradeCache.py
    • ทำงานget_kernel_list.sh(ไม่เชื่อถือ) และทำให้แน่ใจว่ามีการติดตั้งเคอร์เนลหนึ่งตัว
    • การจัดการบางอย่างเกี่ยวกับไดรเวอร์ของ Nvidia

รุ่นที่ตรวจสอบแล้ว:

  • natty → oneiric
  • oneiric →แม่นยำ
  • แม่นยำ→เชื่อถือ (สุดท้ายของ 2014-04-18)
  • Trusty → utopic (ชั่วโมงก่อนวางจำหน่ายใน 2014-10-23)

3
ทุกครั้งที่ฉันใช้ do-release-upgrade ฉันได้ลงเอยด้วยระบบที่ไม่สามารถบูตได้ :)
user205301

เป็นตัวอย่างของสิ่งที่จับการอัพเกรดได้: nvidia ไดร์เวอร์ไบนารี, การเปลี่ยนแปลงหลายแบบ, ndiswrapper, การเพิ่ม / ลบสถาปัตยกรรมและเคอร์เนลประเภท (เช่นการคัดค้านเคอร์เนลเซิร์ฟเวอร์)
NGRhodes

@NGRhodes ความคิดเห็นของคุณคลุมเครือเกินไปสำหรับฉัน: ndiswrapper เป็นกรณีพิเศษที่กลับมามีชีวิตชีวาอีกครั้งไม่ใช่ทุกวันนี้ ไม่มีการเพิ่มหรือลบสถาปัตยกรรม (ยกเว้น amd64 ซึ่งเพิ่ม i386 เป็นต่างประเทศซึ่งคุณครอบคลุมด้วย "การเปลี่ยนแปลงหลายแบบ" ฉันเดา) - ไม่มีอะไร“ เลิกใช้”: แพคเกจจะถูกลบออกหรือไม่
Robert Siemer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.