Ai đó có thể làm rõ bản nâng cấp Ubuntu (Debian) cho tôi không?


35

Tôi đã có một máy chủ Ubuntu 8.04 LTS. Có một số gói được "giữ lại" ( "các bản cập nhật sau đã được giữ lại" ) khi tôi thực hiện apt-get upgrade. Theo hiểu biết của tôi, tôi có thể thực hiện apt-get dist-upgradenâng cấp các gói này, nhưng tôi có một vài lo ngại:

  1. Nếu tôi làm một dist-upgrade, tôi sẽ nâng cấp từ 8.04 lên phiên bản cao hơn (tôi đoán là 8.10)? Nếu vậy, điểm 8.04 là "Hỗ trợ dài hạn" (LTS) là gì?

  2. Đây có phải là một quá trình "nguy hiểm"? Tôi giả định rằng các gói được giữ lại vì có những gói mới mà chúng phụ thuộc vào. Có phải dist-upgradechỉ cần kéo các gói mới và thực hiện nâng cấp khá đơn giản, hoặc có cần phải xem xét kỹ không?

Câu trả lời:


57

Lệnh apt-get nâng cấp sẽ không thêm hoặc xóa gói. apt-get dist-Nâng cấp sẽ thêm hoặc xóa các gói theo yêu cầu.

Lệnh apt-get dist-Nâng cấp sẽ không tự động nâng cấp bạn từ bản phát hành này sang bản phát hành khác trừ khi bạn cũng đã cập nhật nguồn của mình (/etc/apt/source.list) để trỏ đến bản phát hành mới hơn.

người đàn ông apt-get

upgrade
    upgrade is used to install the newest versions of all packages 
    currently installed on the system from the sources enumerated 
    in /etc/apt/sources.list.

dist-upgrade
    dist-upgrade, in addition to performing the function of upgrade, 
    also intelligently handles changing dependencies with new versions 
    of packages;

Có mối quan tâm đặc biệt nào cần biết khi thực hiện nâng cấp so với nâng cấp không?

Đối với hầu hết các phần tôi luôn luôn apt-get dist-nâng cấp để áp dụng các bản cập nhật cho hệ thống. Tất nhiên chú ý đến chính xác những gói mới đang được thêm hoặc xóa. Thường thì điều này xảy ra khi một cái gì đó được thêm vào như một hạt nhân mới hơn không tương thích với phần trước và bạn sẽ phải biên dịch lại các mô-đun. Nếu bạn có một số mô-đun hạt nhân mà bạn phải tự xây dựng, thì bạn có thể cần đảm bảo rằng bạn biên dịch lại nó cho kernel mới. Tôi có một vài hệ thống với các giao diện mạng không được hỗ trợ bởi kernel stock mà tôi phải biên dịch lại trình điều khiển mạng sau mỗi lần cập nhật kernel.


Cảm ơn bạn, đó là những gì tôi đã hy vọng. Có mối quan tâm đặc biệt nào cần biết khi thực hiện nâng cấp so với nâng cấp không? (không phải cái này là cái thay thế cho cái kia, tôi chỉ tự hỏi liệu tôi có nên biết gì nữa không)
Boden

Khi bạn chạy nâng cấp dist, bạn sẽ nhận được một bản tóm tắt về những gì nó sẽ làm (gói nâng cấp, gói mới, gói cần xóa). Chỉ cần xem những gì nó đang xóa, nếu có bất cứ điều gì. nếu bạn chưa thay đổi tệp /etc/apt/source.list, thì nó không nên là bất cứ thứ gì quá lớn.
brad.lane

2
Chỉ cần hoàn thành vì lợi ích. Để di chuyển sang bản phát hành LTS tiếp theo một khi có sẵn, bạn sẽ cần chạy các lệnh sau sau khi đảm bảo cài đặt 8.04 của bạn được cập nhật. sudo apt-get install update-manager-core và sau đó sudo do-release-nâng cấp.
3dinfluence

2

nâng cấp so với nâng cấp xa là những thuật ngữ thực sự gây tranh cãi. Trong debian, bạn sử dụng nâng cấp để nhận các thay đổi trong một bản phát hành ổn định (sẽ không liên quan đến bất kỳ thứ gì quyết liệt như loại bỏ) và nâng cấp để đi giữa các bản phát hành. nâng cấp dist nên có kết quả tương tự như nâng cấp giả sử không cần loại bỏ.

Đi giữa các bản phát hành sẽ yêu cầu thay đổi nguồn.list của bạn để chỉ ra bản phát hành mới.

Ubuntu không có cùng một mô hình phát hành siêu bảo vệ, vì vậy các điều khoản không được ánh xạ rõ ràng - bạn thường chỉ muốn sử dụng nâng cấp từ xa trừ khi bạn sử dụng các bản phát hành, trong trường hợp đó bạn sử dụng bản nâng cấp riêng, phát hành - nâng cấp.


you'd generally just want to use dist-upgrade unless you're going between releases, in which case you use the upgrade script. Tôi nghĩ, Thuyền trưởng Segfault, ý bạn là ngược lại: - bạn thường chỉ muốn sử dụng nâng cấp trừ khi bạn đi giữa các phiên bản, trong trường hợp đó bạn sử dụng tập lệnh nâng cấp xa.

2
Ubuntu có một chương trình riêng để thực hiện nâng cấp. Bạn sử dụng nó, không phải apt-get, để đi giữa các phiên bản.
Thuyền trưởng Segfault

Tôi có thể tìm chương trình riêng biệt này ở đâu?
starbeamrainbowlabs

@starbeamrainbowlabs, nó được gọi là do-release-nâng cấp , kiểm tra man do-phát hành-nâng cấp để biết chi tiết
isync

@isync Đúng rồi. Tôi biết về điều đó - Nhận xét không rõ ràng nên tôi nghĩ rằng có một lệnh khác mà tôi đã không tiếp xúc. Cảm ơn!
starbeamrainbowlabs
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.