ทำไม `do-release-upgrade` ข้ามเวอร์ชั่น?


14

ฉันตอบคำถามนี้เกี่ยวกับการdo-release-upgradeไม่อนุญาตให้อัปเกรด 14.10 ถึง 15.04 เพียง 15.10 ฉันคิดว่ามันเป็นเพราะ 15.04 สิ้นสุดการใช้งาน

ผู้ใช้ (@xangua) โพสต์ว่ามันเป็นไปไม่ได้ที่จะข้ามการเปิดตัวด้วยdo-release-upgradeดังนั้นฉันจึงดูข้อมูลนี้โดยการรันคำสั่งบนกล่อง 14.04 ของฉัน แต่นี่เป็นจุดเริ่มต้นของความสับสน

14.04 ของฉันต้องการอัปเกรดเป็น 15.04 ทันทีหรือไม่

แน่นอนสิ่งนี้ทำให้คำตอบของฉันเป็นโมฆะเมื่อ 15.04 เป็นจุดสิ้นสุดของชีวิต แต่ทำไมคำสั่งนี้จึงดูเหมือนจะข้ามรุ่นหากไม่ได้อิงตามจุดสิ้นสุดของชีวิต

ไม่มีสิ่งบ่งชี้ใด ๆ ตั้งแต่ 14.10 จะถูกดาวน์โหลดโดยการอัพเกรดและsoftware-updaterบอกว่าตอนนี้ Ubuntu พร้อมให้ดาวน์โหลด 15.04 แล้วการชี้แจงบางอย่างของสิ่งนี้จะดีมาก


2
ไม่ใช่เรื่องปกติที่ระบบ 14.04 ของคุณต้องการอัปเกรดเป็น 15.04 เนื่องจากไม่รองรับ ตัวอย่างเช่นบันทึกย่อประจำรุ่นสำหรับ 15.04 จะพูดถึงการอัปเกรดจาก 14.10 เท่านั้น เมื่อฉันรันdo-release-upgradeระบบ 14.04 ของฉันจะมีข้อความว่า "ไม่พบรีลีสใหม่" ตามปกติเนื่องจากระบบ 14.04 สามารถอัปเกรดเป็น 14.10 ได้ แต่ตอนนี้ 14.10 คือ EOL
fkraiem

1
ดังนั้นจะต้องมีสิ่งผิดปกติในระบบของคุณ รุ่นของคุณคืออะไรubuntu-release-upgrader-core?
fkraiem

1
ฉันไม่สามารถให้ข้อมูลนี้ได้อีกต่อไปว่าการติดตั้งหายไปเนื่องจากการใช้คำสั่งยุ่งเหยิงติดตั้งใหม่ได้ง่ายกว่าการแก้ไขข้อผิดพลาดที่เกิดจากการหยุดการอัพเกรด
Mark Kirby

1
@fkraiem จริงๆแล้วการข้ามรุ่นได้รับการสนับสนุนเนื่องจากผู้จัดการพื้นที่เก็บข้อมูลสามารถ "สคริปต์" ในแบบของพวกเขา
Braiam

คำตอบ:


12

การคาดเดาดั้งเดิมของคุณถูกต้อง 15.04 รองรับจนถึง 2016-02-04 ดังนั้นdo-release-upgradeพยายามอัปเกรดคุณเป็นรุ่นที่รองรับถัดไปเปรียบเทียบกับรุ่นที่คุณมี

นี่คือคำอธิบายของโหมดแจ้งเตือนการอัพเกรดปกติจาก/etc/update-manager/release-upgrades:

ตรวจสอบเพื่อดูว่ามีรุ่นใหม่หรือไม่ หากพบมากกว่าหนึ่งรีลีสใหม่ตัวอัปเกรดรีลีสจะพยายามอัปเกรดเป็นรีลีสซึ่งจะประสบความสำเร็จในรีลีสที่รันอยู่ในปัจจุบันโดยทันที

ดังนั้นถ้าฉันอยู่ที่ 14.04 มันควรจะพยายามพาฉันไปที่ 14.10 แต่ตอนนี้do-release-upgradeกำลังพยายามนำ OP (และฉัน) ไปที่ 15.04 แทน

ดังนั้นการอ่านผ่าน/usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.pyดูเหมือนว่าเราจะข้ามการเผยแพร่ที่ไม่ได้รับการสนับสนุนเมื่อหาสิ่งที่จะปล่อยการอัปเกรดเป็น (ยกเว้นว่าคุณกำลังใช้ธงนักพัฒนา):

    # then see what we can upgrade to
    upgradable_to = ""
    for dist in dists:
        if dist.date > current_dist.date:
            # Only offer to upgrade to an unsupported release if running
            # with useDevelopmentRelease, this way one can upgrade from an
            # LTS release to the next supported non-LTS release e.g. from
            # 14.04 to 15.04.
            if not dist.supported and not self.useDevelopmentRelease:
                continue
            upgradable_to = dist
            self._debug("new dist: %s" % upgradable_to)
            break

do-release-upgrade -dฉันควรเพิ่มว่าผมไม่แนะนำให้พยายามที่จะได้รับรอบนี้ด้วย เมื่อฉันลองด้วยprompt=normalฉันได้ 404 ตั้งแต่ 14.10 คือ EoL ฉันยังคิดในเพ้อฉันต้องลองdo-release-upgrade -pซึ่งพยายามพาฉันตรงไปที่ 16.04 ตามเวลาที่ฉันรู้ว่ามันพาฉันไป xenial ทุกอย่างพังและฉันต้องคืนค่าจากโรงงาน ในที่สุดฉันตัดสินใจฉันจะรอจนกว่าจะเปิดตัว 16.04 และทำการติดตั้งใหม่


1
คุณมีอะไรสำรองหรือไม่คุณแค่เดา?
เคนคม

1
เพิ่มรายละเอียด ฉันพบปัญหาเดียวกันกับ OP
mmaluff

3
คำตอบที่มั่นคงในการเป็นคำถามที่ผมคิดก็จะตกอยู่ในความสับสน :)
มาร์คเคอร์บี้

2
do-release-upgradeพฤติกรรมที่อธิบายไว้ในคำตอบที่ดีเยี่ยมนี้ยังคงใช้และนำไปใช้กับการอัพเกรดผ่านอัพเดตซอฟแวร์เช่นเดียวกับ ปัจจุบัน 16.04 LTS ระบบโดยอัตโนมัตินำเสนอในการอัพเกรด 17.04และพวกเขาจะทำเช่นนั้นได้โดยตรงข้าม 16.10 เพราะมันเป็นจุดสิ้นสุดของชีวิต คำตอบเหล่านั้นจะได้รับประโยชน์จากการแก้ไขนี้ - หรือคำตอบใหม่ที่อธิบายพฤติกรรมปัจจุบันอย่างสมบูรณ์สามารถโพสต์ได้ คุณต้องการโพสต์ข้อความหรือไม่?
Eliah Kagan

5

do-release-upgrade ไม่รู้ว่าอะไรเกี่ยวกับ "การกระโดดเวอร์ชั่น" เพียงแค่ดาวน์โหลดแผนการอัพเกรดจากผู้ดูแลพื้นที่เก็บข้อมูลของ Ubuntu สิ่งนี้ถูกระบุในREADME ที่อัพเกรดแล้ว :

2) เครื่องมืออัปเกรดจะต้องสามารถดาวน์โหลดข้อมูลที่อัปเดตวิธีการอัปเกรด (เช่นขั้นตอนเพิ่มเติมเช่นการอัปเกรด libs บางอย่างก่อน)

นอกจากนี้ในข้อกำหนดเกี่ยวกับการอัปเกรดอัตโนมัติ :

ไฟล์ meta-release ที่มีข้อมูลเกี่ยวกับการแจกแจงที่มีอยู่จะถูกเก็บไว้ในเซิร์ฟเวอร์ส่วนกลางและเป็น If-Modified-ตั้งแต่ทดสอบในการรันของ update-manager แต่ละครั้ง หากพบรุ่นใหม่ update-manager จะแสดงภาพนั้น

นี่คือสิ่งที่ทำให้ do-upgrade-release และเครื่องมืออื่น ๆ สามารถอัพเกรดได้อย่างราบรื่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.