Bisakah saya membuat paket unduhan hanya-pembaruan-upgrade hanya untuk pembaruan nanti?

33

Saya menjalankan lubuntu 10.10, dan ingin meningkatkan ke 11.04. Saya memiliki koneksi internet yang sangat temperamental, jadi saya ingin mengunduh semua paket sebelum menjalankan instal.

Menurut ini , tidak ada cara mudah untuk melakukan ini. Laporan bug yang disebutkan di utas itu masih terbuka.

Pertanyaan saya: Apakah ada cara untuk meretas do-release-upgrade hanya dengan mengunduh paket, seperti menambahkan "-d" ke apt-get dist-upgrade?

Atau apakah melakukannya secara manual satu-satunya cara untuk mendapatkan hasil yang saya inginkan?

Jika saya harus melakukannya secara manual, apakah ini langkah-langkah yang diperlukan untuk melakukannya, atau apakah saya kehilangan sesuatu?

  1. Nonaktifkan repositori pihak ketiga di /etc/apt/sources.listdan/etc/apt/sources.list.d
  2. Ubah repositori /etc/apt/sources.listdari dari maverickmenjadinatty
  3. menjalankan sudo apt-get update
  4. jalankan sudo apt-get -d dist-upgradehanya mengunduh paket. Lakukan ini sebanyak yang diperlukan hingga semua paket diunduh.
  5. jalankan sudo apt-get dist-upgradeuntuk menyelesaikan proses pemutakhiran
Menachem
sumber
Itu sepertinya dekat dengan apa yang akan saya lakukan.
Jo-Erlend Schinstad

Jawaban:

13

Empat langkah pertama Anda sudah benar, tetapi langkah 5 seharusnya sudo do-release-upgrade(bukan sudo apt-get dist-upgrade). Seharusnya perhatikan bahwa semua (atau sebagian besar) paket yang akan diunduh sudah ada /var/cache/apt/archives.

Dalam beberapa versi sebelumnya dari do-release-upgrade ada bug di mana ia akan membersihkan /var/cache/apt/archivessebelum mengunduh paket lagi, tetapi IIRC bug yang telah diperbaiki.

Marius Gedminas
sumber
Saya melakukan ini dan itu berhasil.
Menachem
lihat bagaimana melakukan ini menggunakan GUI di sini: askubuntu.com/a/418789/21794
Menachem
Apakah proses yang dijelaskan dalam pertanyaan dapat digunakan untuk meningkatkan dari satu LTS ke yang berikutnya? Saya memiliki server yang menjalankan 12,04 yang ingin saya bahas menjadi 14,04, tetapi mungkin tidak memiliki kesempatan untuk sepenuhnya mempersiapkan peningkatan sebelum repo 12,04 dihapus akhir bulan ini.
dgw
9

Saya menulis skrip untuk melakukan ini, untuk upgrade saya sendiri beberapa mesin ke Ubuntu 14,04 "trusty". Ini disebut 'apt-get-other-release'. Penggunaan sederhana:

$ 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 ]

Scriptnya ada di:

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

dan versi 1.0 memiliki sha1sum: 87a466b2bb2d1ac5b0a08509246a450b8d1c7617

Di balik layar itu pada dasarnya berjalan apt-get update; apt-get -d dist-upgradedengan set pribadi sendiri file sources.list Hasil disimpan di / var / cache / apt- $ to_rel / arsip, dan bendera '-U' menyalinnya ke dalam arsip sistem / var / cache / apt / sehingga seluruh sistem akan hadir selama pemutakhiran Anda.

Anda juga dapat menyalin arsip pemutakhiran dari satu host lokal ke host lain, menghemat bandwidth. Saya melakukan ini untuk upgrade amd64 dan i386, hanya menyalin file * .deb yang tidak memiliki "amd64" di nama mereka; kemudian menjalankan yang lain apt-get-other-release -t trustypada mesin i386, yang mengunduh setumpuk besar paket lain karena kedua mesin itu menginstal barang yang berbeda.

Umpan balik dihargai; email cc dihargai, karena saya tidak tahu kapan saya selanjutnya akan melihat askubuntu. Mesin pencari tahu saya.

CATATAN: Saya belum benar-benar melakukan pemutakhiran sistem yang diperlakukan demikian! Beberapa waktu di minggu depan. Membuka skrip ini sementara mungkin bermanfaat bagi orang-orang.

> Bela <

pengguna270294
sumber
6

Ada cara agar manajer pembaruan melakukan langkah 1-3 untuk Anda.

  1. Jalankan sudo update-managerdari jendela terminal di GUI (ini penting)

    • Mulai manajer pembaruan, beri tahu Anda ingin meningkatkan ke versi Ubuntu berikutnya, dan biarkan mulai berjalan. Ini akan menonaktifkan repositori pihak ke-3, mengubah repositori utama ke versi terbaru, dan kemudian berjalan sudo apt-get updateuntuk Anda.
    • Kemudian akan muncul layar yang memberitahu Anda bahwa untuk menjalankan pembaruan, ia harus menghapus, menginstal, dan memutakhirkan paket.
    • Pada tahap ini, pergi ke jendela terminal dan paksa-berhenti program menggunakan CTRL-C. [Jika Anda tidak melakukan ini, dan membatalkan pembaruan melalui tombol batal dari manajer pembaruan, itu akan mengembalikan perubahan].
  2. jalankan sudo apt-get -d dist-upgradedari baris perintah sebanyak yang diperlukan, sampai semua paket diunduh dan siap untuk diinstal

  3. jalankan sudo do-release-upgradedan biarkan ia menyelesaikan upgrade dengan paket yang sudah diunduh.

  4. Aktifkan kembali repositori pihak ketiga, dan jalankan sudo apt-get update && sudo apt-get upgradelagi untuk memperbarui repositori pihak ketiga ke versi terbaru (pastikan repositori diperbarui ke rilis terbaru ubuntu)

Menachem
sumber
2

Saya juga menulis skrip untuk ini, yang dapat Anda temukan di

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

Penggunaan: di direktori awal, jalankan

 ./fetch-release-upgrade.sh trusty

atau rilis baru apa pun yang ingin Anda tingkatkan ke. Paket yang diperlukan akan diunduh ke subdirektori bernama debs. Anda dapat memindahkannya /var/cache/apt/archivessebelum berjalan do-release-upgrade.

Saya belum melihat skrip user270294 tetapi sepertinya berfungsi dengan cara yang sama dan mungkin memiliki beberapa fitur lagi.

Nate Eldredge
sumber
2

Versi jawaban Menachem yang sedikit lebih pendek berikut ini cocok untuk saya:

  1. Jalankan sudo do-release-upgradedi satu jendela terminal, tunggu sampai prompt:

    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]
    

    Jangan konfirmasi, biarkan terbuka

  2. Di jendela terminal kedua, jalankan sudo apt-get dist-upgrade --download-only

  3. Setelah selesai, lanjutkan atau batalkan di waktu luang Anda di jendela terminal pertama

Pro tip: instal terminal multiplexer like screendan jalankan do-release-upgradedi dalamnya. Kemudian, Anda dapat terhubung kembali dengan screen -D -RRapa pun yang terjadi pada terminal yang menunjukkan proses peningkatan. (Untungnya, peningkatan saya hari ini hampir selesai ...)

krlmlr
sumber
ini adalah cara yang baik untuk melakukannya, tetapi mungkin gagal jika Anda harus mematikan komputer di tengah.
Menachem
@Menachem: Terima kasih. Apa yang Anda maksud dengan "gagal", bisakah Anda menjelaskan lebih lanjut? Ya, sumber APT kemungkinan akan berada dalam kondisi yang tidak konsisten, tetapi selain itu?
krlmlr
Saya belum mencobanya, jadi saya tidak tahu persis apa yang akan terjadi. Saya hanya berpikir bahwa karena ketika Anda membatalkan do-release-upgrade itu akan mengembalikan perubahan, tetapi Anda telah menggunakan apt-sources terbaru untuk mengunduh pembaruan, Anda mungkin berakhir dengan sistem yang tidak stabil ketika Anda mencoba memutarkan pembaruan. kemudian.
Menachem
Saya tidak yakin jika hanya mengunduh file instalasi mengubah apa pun, bukankah ini hanya menyimpan file dari internet? Bagaimanapun, proses ini bekerja dengan baik untuk saya, dan saya dibatalkan kemudian mulai kembali do-release-upgradesetelah mengunduh.
krlmlr
1
ya. selama Anda tidak mencoba menjalankan pembaruan rutin sampai selesai, Anda akan baik-baik saja.
Menachem
0

Penafian: Saya belum pernah melakukan ini sebelumnya. Mungkin itu ide yang mengerikan. Ini mungkin menghancurkan segalanya, mengosongkan rekening bank Anda dan melarikan diri ke selatan Spanyol. Seperti apa pun yang berpotensi berbahaya, buat cadangan sebelum Anda melakukan apa pun.


Saya tidak yakin berapa banyak barang yang telah Anda instal, jadi ini mungkin solusi yang salah tetapi Anda dapat memutakhirkan dari CD. Unduh iso Alternate , pasang, dan jalankan skrip pemutakhiran.

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

Sebelum saya melangkah lebih jauh, Anda tidak perlu menggunakan wget untuk mendapatkan gambar. Bittorrent akan bekerja dengan baik dengan manajer unduhan standar. Yang penting adalah Anda menginginkan sesuatu yang akan dilanjutkan, sehingga Anda dapat berhenti mengunduh dan mengambilnya di lain waktu. Ini adalah apa wget's -cbendera akan melakukan.

Setelah Anda memiliki ISO, langkah selanjutnya cukup sederhana:

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

Kelemahan yang saya bicarakan adalah ini hanya akan meningkatkan hal-hal yang tidak terpisahkan dari Ubuntu yang disertakan dalam CD. Itu tidak akan memperbarui paket Anda yang lain.

Secara teori ini harus baik-baik saja. Anda mungkin menemukan bahwa beberapa aplikasi rusak, beberapa mungkin dihapus secara paksa oleh pembaru, tetapi OS inti harus tetap stabil.

Jika teori saya benar, ini akan memungkinkan Anda memutakhirkan paket-paket Anda yang lain dengan menggunakan dan ketika Anda ingin melalui Synaptic atau (jika Anda menginstalnya) aptitude.

Oli
sumber
Bagaimana jika bagian selatan Spanyol lebih dekat?
Matt Joiner