Mengapa `do-release-upgrade` melewatkan versi?

14

Saya menjawab pertanyaan ini tentang do-release-upgradetidak mengizinkan upgrade dari 14.10 ke 15.04 hanya ke 15.10, saya berasumsi bahwa karena 15.04 adalah akhir hidup.

Seorang pengguna (@xangua) memposting bahwa tidak mungkin untuk melewatkan rilis dengan do-release-upgrade, jadi saya mencari informasi ini dengan menjalankan perintah pada kotak 14,04 saya, tetapi ini adalah di mana kebingungan dimulai.

14,04 saya ingin memutakhirkan langsung ke 15,04?

Tentu saja ini membatalkan jawaban saya karena 15,04 adalah akhir hidup, tetapi mengapa perintah ini tampaknya melompati versi, jika tidak didasarkan pada akhir hidup?

Tidak ada indikasi apa pun dari jam 14.10 sedang diunduh oleh pemutakhiran dan software-updatermengatakan bahwa Ubuntu 15.04 sekarang tersedia untuk diunduh, beberapa klarifikasi mengenai hal ini akan sangat bagus.

Mark Kirby
sumber
2
Tidak normal jika sistem 14,04 Anda ingin memperbarui ke 15,04, karena ini tidak didukung. Misalnya, catatan rilis untuk 15,04 hanya menyebutkan peningkatan dari 14.10. Ketika saya menjalankan do-release-upgradesistem 14.04 saya, dikatakan "tidak ada rilis baru yang ditemukan", seperti biasa karena sistem 14,04 hanya bisa ditingkatkan menjadi 14,10, tetapi 14,10 sekarang EOL.
fkraiem
1
Jadi pasti ada sesuatu yang tidak normal pada sistem Anda. Apa versi Anda ubuntu-release-upgrader-core?
fkraiem
1
Saya tidak bisa lagi memberikan informasi ini, bahwa pemasangan hilang karena mengacaukan perintah, instal ulang lebih mudah daripada memperbaiki kesalahan yang disebabkan oleh menghentikan upgrade.
Mark Kirby
1
@ fkraiem sebenarnya, melewatkan versi didukung karena manajer repositori dapat "skrip" dengan caranya.
Braiam

Jawaban:

12

Tebakan asli Anda benar. 15.04 didukung melalui 2016-02-04, jadi do-release-upgradesedang mencoba untuk meningkatkan Anda ke rilis yang didukung berikutnya dibandingkan dengan yang Anda miliki.

Berikut deskripsi mode dorongan pemutakhiran normal dari /etc/update-manager/release-upgrades:

Periksa untuk melihat apakah rilis baru tersedia. Jika lebih dari satu rilis baru ditemukan, pemutakhiran rilis akan berusaha untuk meningkatkan ke rilis yang segera menggantikan rilis yang sedang berjalan.

Jadi jika saya menggunakan 14,04 itu harus mencoba untuk membawa saya ke 14,10, tetapi sekarang do-release-upgradesedang mencoba untuk mengambil OP (dan saya) ke 15,04 sebagai gantinya.

Jadi membaca /usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.pysepertinya kita melewatkan rilis yang tidak didukung ketika mencari tahu rilis mana yang akan ditingkatkan (kecuali Anda menggunakan flag pengembang):

    # 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

Saya harus menambahkan bahwa saya tidak merekomendasikan mencoba untuk menyelesaikan masalah ini do-release-upgrade -d. Ketika saya mencobanya prompt=normal, saya mendapatkan 404, karena 14.10 adalah EoL. Saya juga berpikir dalam delirium saya, saya pasti sudah mencoba do-release-upgrade -p, yang mencoba membawa saya langsung ke 16,04. Pada saat saya menyadari itu membawa saya ke awal semuanya rusak dan saya harus mengembalikan dari pabrik. Pada akhirnya saya memutuskan saya akan menunggu sampai 16,04 dirilis dan melakukan instalasi baru.

mmaluff
sumber
1
Apakah Anda punya sesuatu untuk mendukung itu, atau apakah Anda hanya menebak?
Ken Sharp
1
Detail yang ditambahkan. Saya mengalami masalah yang sama dengan OP.
mmaluff
3
Jawaban yang solid untuk sebuah pertanyaan yang saya pikir hanya akan jatuh ke dalam ketidakjelasan :)
Mark Kirby
2
Perilaku yang dijelaskan dalam jawaban yang sangat baik ini masih berlaku, dan itu berlaku untuk peningkatan melalui Pembaruan Perangkat Lunak juga do-release-upgrade. Saat ini, 16,04 sistem LTS secara otomatis menawarkan untuk meningkatkan ke 17,04 , dan mereka akan melakukannya secara langsung , melompati 16,10 karena sudah tidak tahan lama . Jawaban-jawaban itu akan mendapat manfaat dari koreksi ini - atau jawaban baru yang sepenuhnya menggambarkan perilaku saat ini dapat diposting. Apakah Anda ingin memposting sesuatu?
Eliah Kagan
5

do-release-upgrade tidak tahu apa-apa tentang "versi melompat". Ini hanya mengunduh paket upgrade dari pengelola repositori Ubuntu. Ini ditentukan dalam README do-release-upgrade :

2) Alat pemutakhiran harus dapat mengunduh informasi yang diperbarui bagaimana melakukan pemutakhiran (mis. Langkah-langkah tambahan seperti memutakhirkan lib tertentu terlebih dahulu)

Juga, dalam spesifikasi tentang Peningkatan Otomatis :

File meta-release dengan informasi tentang distribusi yang tersedia disimpan di server pusat dan jika-Diubah-Sejak diuji pada setiap menjalankan pembaruan-manajer. Jika versi baru ditemukan, pembaruan-manajer menunjukkan itu secara visual.

Inilah yang memungkinkan do-upgrade-release dan alat lain untuk meningkatkan secara mulus.

Braiam
sumber