ฉันสามารถอัพเกรดแพ็คเกจดาวน์โหลดทำเฉพาะการอัพเกรดในภายหลังได้หรือไม่?


33

ฉันใช้ lubuntu 10.10 และต้องการอัปเกรดเป็น 11.04 ฉันมีการเชื่อมต่ออินเทอร์เน็ตเจ้าอารมณ์ดังนั้นฉันต้องการดาวน์โหลดแพ็คเกจทั้งหมดก่อนที่จะทำการติดตั้ง

ตามนี้ไม่มีวิธีง่ายๆในการทำเช่นนี้ รายงานข้อผิดพลาดที่กล่าวถึงในหัวข้อที่ยังคงเปิดอยู่

คำถามของฉัน: มีวิธีการแฮ็ก do-release-upgrade เพื่อดาวน์โหลดแพ็คเกจเท่านั้นเช่นเพิ่ม "-d" เพื่อ apt-get dist-upgrade หรือไม่

หรือทำด้วยตนเองเป็นวิธีเดียวที่จะได้ผลลัพธ์ที่ฉันต้องการ

หากฉันต้องทำด้วยตนเองขั้นตอนเหล่านี้จำเป็นหรือไม่

  1. ปิดใช้ที่เก็บของบุคคลที่สามใน/etc/apt/sources.listและ/etc/apt/sources.list.d
  2. เปลี่ยนที่เก็บใน/etc/apt/sources.listจากmaverickเป็นnatty
  3. วิ่ง sudo apt-get update
  4. เรียกใช้sudo apt-get -d dist-upgradeเพื่อดาวน์โหลดแพ็คเกจเท่านั้น ทำหลาย ๆ ครั้งตามที่จำเป็นจนกว่าจะดาวน์โหลดแพ็คเกจทั้งหมด
  5. วิ่งsudo apt-get dist-upgradeเพื่อเสร็จสิ้นกระบวนการอัพเกรด

นั่นดูเหมือนใกล้เคียงกับสิ่งที่ฉันจะทำ
Jo-Erlend Schinstad

คำตอบ:


13

สี่ขั้นตอนแรกของคุณถูกต้อง แต่ควรเป็นขั้นตอนที่ 5 sudo do-release-upgrade(แทนsudo apt-get dist-upgrade) มันควรจะสังเกตเห็นว่าทั้งหมด (หรือมากที่สุด) /var/cache/apt/archivesของแพคเกจมันเป็นไปดาวน์โหลดที่มีอยู่แล้วในปัจจุบัน

ในรุ่นก่อนหน้าของ do-release-upgrade มีข้อผิดพลาดที่จะทำความสะอาด/var/cache/apt/archivesก่อนที่จะดาวน์โหลดแพ็คเกจใหม่ แต่ IIRC นั้นบั๊กนั้นได้รับการแก้ไขแล้ว


ฉันทำสิ่งนี้และใช้งานได้
Menachem

ดูวิธีการใช้ GUI ได้ที่นี่: askubuntu.com/a/418789/21794
Menachem

กระบวนการที่อธิบายไว้ในคำถามใช้สำหรับการอัปเกรดจาก LTS หนึ่งไปสู่อีกหรือไม่? ฉันมีเซิร์ฟเวอร์ที่ใช้งาน 12.04 ซึ่งฉันต้องการจะชนที่ 14.04 แต่อาจไม่มีโอกาสเตรียมตัวอย่างเต็มที่สำหรับการอัพเกรดก่อนที่จะมีการลบ repos 12.04 ในปลายเดือนนี้
dgw

9

ฉันเขียนสคริปต์เพื่อทำสิ่งนี้สำหรับการอัพเกรดหลาย ๆ เครื่องเป็น Ubuntu 14.04 "trusty" มันถูกเรียกว่า 'apt-get-other-release' ใช้ง่าย:

$ sudo apt-get-other-release -t trusty
  [ a long time passes as it downloads stuff ]
$ sudo apt-get-other-release -U
  [ it prepares the system for upgrade -- this is quick ]
$ sudo do-release-upgrade   # or update-manager, whatever you're comfortable with
  [ upgrading also takes a long time and may still download some additional stuff ]

สคริปต์อยู่ที่:

ftp://www.lubkin.com/pub/user/filbo/apt-get-other-release

และเวอร์ชัน 1.0 มี sha1sum: 87a466b2bb2d1ac5b0a08509246a450b8d1c7617

เบื้องหลังมันทำงานโดยใช้apt-get update; apt-get -d dist-upgradeไฟล์ซอร์สชุดรายการส่วนตัวของตัวเอง ผลลัพธ์จะถูกเก็บไว้ใน / var / cache / apt- $ to_rel / archives และแฟล็ก '-U' จะคัดลอกรายการเหล่านั้นลงในระบบ / var / cache / apt / archives ทั้งระบบเพื่อให้ปรากฏในระหว่างการอัพเกรดของคุณ

คุณสามารถคัดลอกไฟล์เก็บถาวรการอัพเกรดจากโลคัลโฮสต์หนึ่งไปยังโฮสต์อื่นซึ่งช่วยประหยัดแบนด์วิดท์ ฉันทำสิ่งนี้เพื่อ amd64 และ i386 อัพเกรดคัดลอกเฉพาะ * .deb ที่ไม่มี "amd64" ในชื่อของพวกเขา จากนั้นก็วิ่งไปอีกเครื่องapt-get-other-release -t trustyบนเครื่อง i386 ซึ่งดาวน์โหลดแพ็กเกจกองใหญ่อีกชุดเนื่องจากทั้งสองเครื่องมีสิ่งต่าง ๆ ติดตั้งอยู่

ข้อเสนอแนะชื่นชม; ซีซีชื่นชมอีเมลเพราะฉันไม่รู้ว่าเมื่อไหร่ฉันจะดู askubuntu ต่อไป เครื่องมือค้นหาตระหนักถึงฉันเป็นอย่างดี

หมายเหตุ: ฉันไม่ได้ทำการอัพเกรดระบบจริง ๆ ! บางครั้งในสัปดาห์หน้า นำสคริปต์นี้ออกไปใช้ขณะที่ผู้อื่นอาจใช้งานได้

> Bela <


6

มีวิธีให้ตัวจัดการอัปเดตทำตามขั้นตอนที่ 1-3 สำหรับคุณ

  1. เรียกใช้sudo update-managerจากหน้าต่างเทอร์มินัลใน GUI (นี่เป็นสิ่งสำคัญ)

    • เริ่มตัวจัดการการอัปเดตบอกว่าคุณต้องการอัปเกรดเป็น Ubuntu เวอร์ชันถัดไปและปล่อยให้มันเริ่มทำงาน มันจะปิดการใช้งานที่เก็บของบุคคลที่ 3 เปลี่ยนที่เก็บหลักเป็นรุ่นล่าสุดและเรียกใช้แล้วsudo apt-get updateสำหรับคุณ
    • จากนั้นจะปรากฏหน้าจอขึ้นเพื่อแจ้งให้คุณทราบว่าในการเรียกใช้การอัปเดตจะต้องลบติดตั้งและอัปเกรดแพ็คเกจ
    • ในขั้นตอนนี้ให้ไปที่หน้าต่างเทอร์มินัลแล้วบังคับให้ออกจากโปรแกรมโดยใช้ CTRL-C [หากคุณไม่ทำเช่นนี้และยกเลิกการอัปเดตผ่านปุ่มยกเลิกของตัวจัดการอัปเดตการอัปเดตจะเปลี่ยนกลับ]
  2. เรียกใช้sudo apt-get -d dist-upgradeจากบรรทัดคำสั่งหลาย ๆ ครั้งตามที่จำเป็นจนกว่าแพ็คเกจทั้งหมดจะถูกดาวน์โหลดและพร้อมที่จะติดตั้ง

  3. เรียกใช้sudo do-release-upgradeและปล่อยให้การอัปเกรดเสร็จสมบูรณ์ด้วยแพ็คเกจที่ดาวน์โหลดมาแล้ว

  4. เปิดใช้งานที่เก็บของบุคคลที่สามsudo apt-get update && sudo apt-get upgradeอีกครั้งและเรียกใช้อีกครั้งเพื่ออัปเดตที่เก็บของบุคคลที่สามเป็นรุ่นล่าสุด (ตรวจสอบให้แน่ใจว่าที่เก็บข้อมูลนั้นได้รับการอัปเดตเป็นรุ่นล่าสุดของ Ubuntu


2

ฉันยังเขียนสคริปต์สำหรับสิ่งนี้ซึ่งคุณสามารถหาได้

https://github.com/neldredge/fetch-release-upgrade

การใช้งาน: ในไดเรกทอรีเริ่มต้นให้เรียกใช้

 ./fetch-release-upgrade.sh trusty

หรือรีลีสใหม่ที่คุณต้องการอัปเกรด debsแพคเกจที่จำเป็นจะถูกดาวน์โหลดไปยังไดเรกทอรีย่อยที่เรียกว่า จากนั้นคุณสามารถย้ายไปก่อนที่จะใช้/var/cache/apt/archivesdo-release-upgrade

ฉันยังไม่ได้ดูสคริปต์ของ user270294 แต่ดูเหมือนว่ามันจะทำงานตามบรรทัดที่คล้ายกันและอาจมีคุณสมบัติเพิ่มเติมเล็กน้อย


2

คำตอบของ Menachem ที่สั้นกว่าเล็กน้อยนั้นใช้ได้สำหรับฉัน:

  1. เรียกใช้sudo do-release-upgradeในหน้าต่างเทอร์มินัลหนึ่งรอจนกระทั่งพรอมต์:

    Do you want to start the upgrade? 
    
    ...
    
    Fetching and installing the upgrade can take several hours. Once the 
    download has finished, the process cannot be canceled. 
    
    Continue [yN]  Details [d]
    

    อย่ายืนยันเปิดทิ้งไว้

  2. ในหน้าต่างเทอร์มินัลที่สองเรียกใช้ sudo apt-get dist-upgrade --download-only

  3. เมื่อเสร็จแล้วให้ดำเนินการต่อหรือยกเลิกเวลาว่างในหน้าต่างเทอร์มินัลแรก

เคล็ดลับสำหรับมืออาชีพ: ติดตั้งเทอร์มินัลมัลติเพล็กเซอร์เช่นเดียวกับscreenและรันdo-release-upgradeด้านใน จากนั้นคุณสามารถเชื่อมต่อใหม่ได้หากมีscreen -D -RRสิ่งใดเกิดขึ้นกับเทอร์มินัลที่แสดงกระบวนการอัพเกรด (โชคดีที่การอัปเกรดของฉันในวันนี้เกือบจะเสร็จสมบูรณ์ ... )


นี่เป็นวิธีที่ดีในการทำ แต่อาจล้มเหลวหากคุณต้องปิดเครื่องคอมพิวเตอร์ที่อยู่ตรงกลาง
Menachem

@ Menachem: ขอบคุณ คุณหมายถึงอะไร "ล้มเหลว" คุณช่วยอธิบายได้ไหม? ใช่แหล่งที่มาของ APT น่าจะอยู่ในสถานะที่ไม่สอดคล้องกัน แต่นอกเหนือจากนั้น
krlmlr

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

ฉันไม่แน่ใจว่าการดาวน์โหลดไฟล์การติดตั้งเปลี่ยนแปลงอะไรหรือไม่นี่เป็นเพียงการแคชไฟล์จากอินเทอร์เน็ตใช่หรือไม่ อย่างไรก็ตามกระบวนการนี้ทำงานได้ดีสำหรับฉันและฉันยกเลิกแล้วรีสตาร์ทdo-release-upgradeหลังจากดาวน์โหลด
krlmlr

1
ใช่. ตราบใดที่คุณไม่พยายามทำการอัพเดทปกติจนกว่าคุณจะทำเสร็จ
Menachem

0

คำเตือน: ฉันไม่เคยทำแบบนี้มาก่อน มันอาจเป็นความคิดที่น่ากลัว มันอาจทำลายทุกอย่างล้างบัญชีธนาคารของคุณและหนีไปทางใต้ของสเปน เช่นเดียวกับสิ่งที่อาจเป็นอันตรายทำการสำรองข้อมูลก่อนที่จะทำอะไร


ฉันไม่แน่ใจว่าคุณได้ติดตั้งสิ่งใดมากดังนั้นนี่อาจเป็นโซลูชันที่มีข้อบกพร่อง แต่คุณสามารถอัปเกรดจากซีดีได้ ดาวน์โหลดAlternate iso ติดตั้งและรันสคริปต์อัพเกรด

wget -c http://releases.ubuntu.com/11.04/ubuntu-11.04-alternate-amd64.iso

ก่อนที่ฉันจะไปอีกคุณไม่ต้องใช้ wget เพื่อให้ได้ภาพ Bittorrent จะทำงานได้ดีเช่นเดียวกับตัวจัดการดาวน์โหลดมาตรฐาน สิ่งสำคัญคือคุณต้องการบางสิ่งที่จะทำงานต่อเพื่อให้คุณสามารถหยุดการดาวน์โหลดและรับได้ในเวลาอื่น นี่คือสถานะwgetของสิ่งที่-cจะทำ

เมื่อคุณมี ISO แล้วขั้นตอนต่อไปนั้นค่อนข้างง่าย:

sudo mount -o loop ubuntu-11.04-alternate-amd64.iso /media/cdrom
sudo sh /media/cdrom/cdromupgrade

ข้อบกพร่องที่ฉันพูดถึงคือสิ่งนี้จะอัปเกรดเฉพาะสิ่งที่สำคัญกับ Ubuntu ที่รวมอยู่ในซีดี มันจะไม่อัพเกรดแพ็คเกจอื่น ๆ ของคุณ

ในทางทฤษฎีสิ่งนี้ควรจะดี คุณอาจพบว่าบางแอพพลิเคชั่นหยุดทำงานบางตัวอาจถูกบังคับให้ลบออกโดยตัวอัปเดต แต่ระบบปฏิบัติการหลักควรมีความเสถียร

หากทฤษฎีของผมถูกต้องนี้แล้วจะช่วยให้คุณอัพเกรดแพคเกจอื่น ๆ ของคุณโดยใช้เป็นและเมื่อคุณต้องการที่จะผ่าน Synaptic หรือ aptitude(ถ้าคุณติดตั้ง)


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