Tôi có thể thực hiện các gói tải xuống do-phát hành chỉ để nâng cấp sau không?


33

Tôi đang chạy trên Ubuntu 10.10 và muốn nâng cấp lên 11.04. Tôi có một kết nối internet rất bình thường, vì vậy tôi muốn tải xuống tất cả các gói trước khi chạy cài đặt.

Theo đó , không có cách nào dễ dàng để làm điều này. Các báo cáo lỗi nêu trong chủ đề đó là vẫn còn mở.

Câu hỏi của tôi: Có cách nào để hack nâng cấp do-phát hành để chỉ tải xuống các gói, giống như thêm "-d" vào apt-get dist-nâng cấp không?

Hoặc là làm bằng tay là cách duy nhất để có được kết quả mà tôi mong muốn?

Nếu tôi phải làm thủ công, đây là những bước cần thiết để làm điều đó, hay tôi đang thiếu một cái gì đó?

  1. Vô hiệu hóa kho lưu trữ của bên thứ 3 trong /etc/apt/sources.list/etc/apt/sources.list.d
  2. Thay đổi kho trong /etc/apt/sources.listtừ maverickđểnatty
  3. chạy sudo apt-get update
  4. chạy sudo apt-get -d dist-upgradeđể chỉ tải về các gói. Làm điều này nhiều lần nếu cần thiết cho đến khi tất cả các gói được tải xuống.
  5. chạy sudo apt-get dist-upgradeđể hoàn thành quá trình nâng cấp

Điều đó dường như gần với những gì tôi sẽ làm.
Jo-Erlend Schinstad

Câu trả lời:


13

Bốn bước đầu tiên của bạn là chính xác, nhưng bước 5 nên là sudo do-release-upgrade(thay vì sudo apt-get dist-upgrade). Cần lưu ý rằng tất cả (hoặc hầu hết) các gói mà nó sẽ tải xuống đã có mặt /var/cache/apt/archives.

Trong một số phiên bản nâng cấp do-phát hành trước đó, có một lỗi mà nó sẽ xóa /var/cache/apt/archivestrước khi tải xuống các gói một lần nữa, nhưng IIRC đã sửa lỗi đó.


Tôi đã làm điều này và nó đã làm việc.
Menachem

xem cách thực hiện việc này bằng GUI tại đây: Askubfox.com/a/418789/21794
Menachem

Là quá trình được mô tả trong câu hỏi có thể sử dụng để nâng cấp từ một LTS lên tiếp theo không? Tôi có một máy chủ đang chạy 12.04 mà tôi muốn nâng lên 14.04, nhưng có thể không có cơ hội chuẩn bị đầy đủ cho việc nâng cấp trước khi repos 12.04 bị xóa vào cuối tháng này.
dgw

9

Tôi đã viết một kịch bản để làm điều này, để tự nâng cấp nhiều máy lên Ubuntu 14.04 "đáng tin cậy". Nó được gọi là 'apt-get-other-phát hành'. Sử dụng đơn giản:

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

Kịch bản tại:

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

và phiên bản 1.0 có sha1sum: 87a466b2bb2d1ac5b0a08509246a450b8d1c7617

Đằng sau hậu trường, về cơ bản nó đang chạy apt-get update; apt-get -d dist-upgradevới tập tin nguồn.list riêng. Kết quả được lưu trữ trong / var / cache / apt- $ to_rel / archives và cờ '-U' sao chép chúng vào toàn hệ thống / var / cache / apt / lưu trữ để chúng sẽ có mặt trong quá trình nâng cấp của bạn.

Bạn cũng có thể sao chép kho lưu trữ nâng cấp từ máy chủ cục bộ này sang máy chủ khác, tiết kiệm băng thông. Tôi đã làm điều này cho một bản nâng cấp amd64 và i386, chỉ sao chép những * .deb không có "amd64" trong tên của chúng; sau đó chạy một cái khác apt-get-other-release -t trustytrên máy i386, nó đã tải xuống một đống gói lớn khác vì hai máy có những thứ khác nhau được cài đặt trên chúng.

Phản hồi đánh giá cao; email cc đánh giá cao, vì tôi không biết khi nào tôi sẽ xem xét tiếp theo. Công cụ tìm kiếm cũng nhận thức được tôi.

LƯU Ý: Tôi chưa thực sự nâng cấp hệ thống được xử lý như vậy! Một số thời gian trong tuần tới. Lấy kịch bản này ra trong khi nó có thể được sử dụng cho mọi người.

> Bê <


6

Có một cách để yêu cầu người quản lý cập nhật thực hiện các bước 1-3 cho bạn.

  1. Chạy sudo update-managertừ một cửa sổ đầu cuối trong GUI (điều này rất quan trọng)

    • Bắt đầu trình quản lý cập nhật, nói với bạn rằng bạn muốn nâng cấp lên phiên bản tiếp theo của Ubuntu và để nó bắt đầu chạy. Nó sẽ vô hiệu hóa kho lưu trữ của bên thứ 3, thay đổi kho lưu trữ chính thành phiên bản mới nhất và sau đó chạy sudo apt-get updatecho bạn.
    • Sau đó, nó sẽ bật lên một màn hình cho bạn biết rằng để chạy bản cập nhật, nó sẽ phải gỡ bỏ, cài đặt và nâng cấp các gói.
    • Ở giai đoạn này, đi đến cửa sổ đầu cuối và buộc thoát khỏi chương trình bằng CTRL-C. [Nếu bạn không làm điều này và hủy cập nhật thông qua nút hủy của trình quản lý cập nhật, nó sẽ hoàn nguyên các thay đổi].
  2. chạy sudo apt-get -d dist-upgradetừ dòng lệnh nhiều lần nếu cần, cho đến khi tất cả các gói được tải xuống và sẵn sàng để cài đặt

  3. chạy sudo do-release-upgradevà để nó hoàn thành nâng cấp với các gói đã tải xuống.

  4. Kích hoạt lại kho lưu trữ của bên thứ 3 và chạy sudo apt-get update && sudo apt-get upgradelại để cập nhật kho lưu trữ của bên thứ 3 lên phiên bản mới nhất (đảm bảo các kho lưu trữ được cập nhật lên bản phát hành mới nhất của Ubuntu)


2

Tôi cũng đã viết một kịch bản cho điều này, mà bạn có thể tìm thấy tại

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

Cách sử dụng: trong thư mục cào, chạy

 ./fetch-release-upgrade.sh trusty

hoặc bất cứ bản phát hành mới nào bạn muốn nâng cấp lên. Các gói cần thiết sẽ được tải xuống thư mục con được gọi debs. Sau đó bạn có thể di chuyển chúng đến /var/cache/apt/archivestrước khi chạy do-release-upgrade.

Tôi chưa xem tập lệnh của user270294 nhưng có vẻ như nó hoạt động theo các dòng tương tự và có thể có thêm một vài tính năng.


2

Phiên bản ngắn hơn sau đây của câu trả lời của Menachem có hiệu quả với tôi:

  1. Chạy sudo do-release-upgradetrong một cửa sổ đầu cuối, đợi cho đến khi được nhắc:

    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]
    

    Không xác nhận, để nó mở

  2. Trong cửa sổ đầu cuối thứ hai, chạy sudo apt-get dist-upgrade --download-only

  3. Khi hoàn tất, tiếp tục hoặc hủy bỏ lúc rảnh rỗi trong cửa sổ đầu tiên

Mẹo chuyên nghiệp: cài đặt bộ ghép kênh đầu cuối như screenvà chạydo-release-upgrade bên trong nó. Sau đó, bạn có thể kết nối lại với screen -D -RRbất kỳ điều gì xảy ra với thiết bị đầu cuối hiển thị quá trình nâng cấp. (May mắn thay, bản nâng cấp của tôi hôm nay đã gần hoàn tất ...)


Đây là một cách tốt để làm điều đó, nhưng nó có thể thất bại nếu bạn phải tắt máy tính ở giữa.
Menachem

@Menachem: Cảm ơn. Bạn có ý nghĩa gì bởi "thất bại", bạn có thể giải thích rõ hơn không? Có, các nguồn APT có thể sẽ ở trạng thái không nhất quán, nhưng ngoài điều đó thì sao?
krlmlr

Tôi đã không thử nó, vì vậy tôi không biết chính xác điều gì sẽ xảy ra. Tôi chỉ nghĩ rằng vì khi bạn hủy bản nâng cấp do phát hành, nó sẽ hoàn nguyên các thay đổi, nhưng bạn đã sử dụng các nguồn apt mới nhất để tải xuống các bản cập nhật, bạn có thể kết thúc với một hệ thống không ổn định khi bạn cố gắng chạy lại bản cập nhật một lát sau.
Menachem

Tôi không chắc nếu chỉ tải xuống các tệp cài đặt có thay đổi gì không, đây không phải chỉ là các tệp lưu trữ từ internet? Dù sao, quá trình này hoạt động tốt với tôi và tôi đã hủy bỏ sau đó khởi động lại do-release-upgradesau khi tải xuống.
krlmlr

1
vâng miễn là bạn không cố chạy một bản cập nhật thường xuyên cho đến khi bạn hoàn thành, bạn sẽ ổn thôi.
Menachem

0

Tuyên bố miễn trừ trách nhiệm: Tôi chưa bao giờ làm điều này trước đây. Nó có thể là một ý tưởng khủng khiếp. Nó có thể phá vỡ mọi thứ, làm trống tài khoản ngân hàng của bạn và chạy trốn về phía nam của Tây Ban Nha. Như với bất cứ điều gì có khả năng nguy hiểm, hãy tạo một bản sao lưu trước khi bạn làm bất cứ điều gì.


Tôi không chắc bạn đã cài đặt bao nhiêu thứ, vì vậy đây có thể là một giải pháp thiếu sót nhưng bạn có thể nâng cấp từ CD. Tải xuống iso thay thế , gắn kết và chạy tập lệnh nâng cấp.

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

Trước khi tôi đi xa hơn, bạn không phải sử dụng wget để có được hình ảnh. Bittorrent sẽ hoạt động tốt như với trình quản lý tải xuống tiêu chuẩn. Điều quan trọng là bạn muốn một cái gì đó sẽ tiếp tục, vì vậy bạn có thể ngừng tải xuống và chọn nó vào một thời điểm khác. Đây là những gì wget's -ccờ sẽ làm.

Khi bạn đã có ISO, bước tiếp theo khá đơn giản:

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

Lỗ hổng mà tôi đã nói là điều này sẽ chỉ nâng cấp những thứ không thể thiếu cho Ubuntu được bao gồm trong CD. Nó sẽ không nâng cấp các gói khác của bạn.

Về lý thuyết điều này sẽ ổn. Bạn có thể thấy rằng một số ứng dụng bị hỏng, một số ứng dụng có thể bị gỡ bỏ bởi trình cập nhật, nhưng hệ điều hành lõi nên vẫn ổn định.

Nếu lý thuyết của tôi là đúng, thì điều này sẽ cho phép bạn nâng cấp các gói khác của mình bằng cách sử dụng và khi bạn muốn thông qua Synaptic hoặc (nếu bạn cài đặt nó) aptitude.


Nếu phía nam Tây Ban Nha gần hơn thì sao?
Matt Tham gia
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.