Tại sao `do-phát hành-nâng cấp` bỏ qua một phiên bản?


14

Tôi đã trả lời câu hỏi này vềdo-release-upgrade không cho phép nâng cấp 14.10 lên 15.04 chỉ thành 15.10, tôi cho rằng đó là do 15.04 đã hết tuổi thọ.

Một người dùng (@xangua) đã đăng rằng không thể bỏ qua bản phát hành với do-release-upgrade , vì vậy tôi đã xem thông tin này bằng cách chạy lệnh trên hộp 14.04 của mình, nhưng đây là lúc sự nhầm lẫn bắt đầu.

14.04 của tôi muốn nâng cấp thẳng lên 15.04?

Tất nhiên điều này vô hiệu hóa câu trả lời của tôi vì 15.04 là kết thúc cuộc đời, nhưng tại sao lệnh này dường như bị bỏ qua các phiên bản, nếu không dựa trên kết thúc của cuộc sống?

Không có dấu hiệu nào cho thấy bất cứ điều gì từ 14.10 đang được nâng cấp bởi bản nâng cấp và software-updatercho biết Ubuntu 15.04 hiện đã có sẵn để tải xuống, một số giải thích rõ ràng về điều này sẽ rất tuyệt.


2
Không bình thường khi hệ thống 14.04 của bạn muốn nâng cấp lên 15.04, vì điều này không được hỗ trợ. Ví dụ, ghi chú phát hành cho 15.04 chỉ đề cập đến việc nâng cấp từ 14.10. Khi tôi chạy do-release-upgradetrên hệ thống 14.04 của mình, nó báo "không tìm thấy bản phát hành mới", như bình thường vì hệ thống 14.04 chỉ có thể được nâng cấp lên 14.10, nhưng 14.10 giờ là EOL.
fkraiem

1
Vì vậy, phải có một cái gì đó bất thường trên hệ thống của bạn. Phiên bản của bạn là ubuntu-release-upgrader-coregì?
fkraiem

1
Tôi không còn có thể cung cấp thông tin này nữa, cài đặt đó đã biến mất do làm rối lệnh, cài đặt lại dễ dàng hơn sửa các lỗi gây ra bằng cách dừng nâng cấp.
Đánh dấu Kirby

1
@fkraiem thực sự, bỏ qua các phiên bản được hỗ trợ vì người quản lý kho lưu trữ có thể "kịch bản" theo cách của họ.
Braiam

Câu trả lời:


12

Dự đoán ban đầu của bạn là đúng. 15.04 được hỗ trợ đến hết 2016/02/2016, vì vậydo-release-upgrade đang cố gắng nâng cấp bạn lên phiên bản được hỗ trợ tiếp theo so với phiên bản bạn có.

Dưới đây là mô tả về chế độ nhắc nâng cấp thông thường từ /etc/update-manager/release-upgrades:

Kiểm tra xem nếu một bản phát hành mới có sẵn. Nếu có nhiều hơn một bản phát hành mới được tìm thấy, bản nâng cấp phát hành sẽ cố gắng nâng cấp lên bản phát hành ngay lập tức thành công bản phát hành hiện đang chạy.

Vì vậy, nếu tôi vào ngày 14.04, tôi sẽ cố gắng đưa tôi đến 14.10, nhưng ngay bây giờ do-release-upgrade đang cố gắng đưa OP (và tôi) lên 15.04 thay thế.

Vì vậy, đọc qua /usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.pycó vẻ như chúng tôi bỏ qua các bản phát hành không được hỗ trợ khi tìm ra bản phát hành sẽ nâng cấp lên (trừ khi bạn đang sử dụng cờ nhà phát triển):

    # 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

Tôi nên thêm rằng tôi không khuyên bạn nên cố gắng khắc phục điều này với do-release-upgrade -d. Khi tôi dùng thử prompt=normal, tôi đã nhận được 404s, vì 14.10 là EoL. Tôi cũng nghĩ rằng trong cơn mê sảng của mình, tôi đã phải cố gắng do-release-upgrade -p, điều đó đã cố gắng đưa tôi thẳng đến 16.04. Khi tôi nhận ra nó đã đưa tôi đến xenial, mọi thứ đã bị hỏng và tôi phải khôi phục lại từ nhà máy. Cuối cùng, tôi quyết định sẽ đợi đến ngày 16.04 được phát hành và thực hiện cài đặt mới.


1
Bạn có bất cứ điều gì để sao lưu điều đó, hoặc bạn chỉ đoán?
Ken Sharp

1
Đã thêm chi tiết. Tôi đã gặp vấn đề tương tự như OP.
mmaluff

3
Câu trả lời chắc chắn cho một câu hỏi mà tôi nghĩ sẽ rơi vào tình trạng mơ hồ :)
Mark Kirby

2
Hành vi được mô tả trong câu trả lời xuất sắc này vẫn được áp dụng và nó cũng được áp dụng để nâng cấp thông qua Trình cập nhật phần mềm cũng như do-release-upgrade. Hiện tại, các hệ thống 16.04 LTS tự động đề nghị nâng cấp lên 17.04 và họ sẽ thực hiện trực tiếp , bỏ qua 16.10 vì đây là thời hạn sử dụng . Những câu trả lời sẽ có lợi từ sự điều chỉnh này - hoặc một câu trả lời mới mô tả đầy đủ hành vi hiện tại có thể được đăng. Bạn có muốn đăng một cái gì đó?
Eliah Kagan

5

do-phát hành-nâng cấp không biết gì về "phiên bản nhảy". Nó chỉ đơn giản là tải xuống gói nâng cấp từ các nhà bảo trì kho lưu trữ Ubuntu. Điều này được chỉ định trong README nâng cấp-phát hành :

2) Công cụ nâng cấp phải có thể tải xuống thông tin cập nhật về cách thực hiện nâng cấp (ví dụ: các bước bổ sung như nâng cấp lib nhất định trước)

Ngoài ra, trong thông số kỹ thuật về Nâng cấp tự động :

Một tệp phát hành meta có thông tin về các bản phân phối có sẵn được lưu trữ trên một máy chủ trung tâm và nó là If-Modified-Kể từ khi được thử nghiệm trên mỗi lần chạy trình quản lý cập nhật. Nếu một phiên bản mới được tìm thấy, trình quản lý cập nhật cho thấy điều đó một cách trực quan.

Đây là những gì cho phép nâng cấp-phát hành và bất kỳ công cụ nào khác để nâng cấp hoàn hảo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.