Tại sao hầu hết các bản phân phối (trừ Debian) đề xuất / yêu cầu cài đặt lại đầy đủ khi nâng cấp lên phiên bản mới?


10

Đã dành phần lớn cuộc đời Linux của tôi bằng Debian, tôi đã xem xét các bản phát hành khác và thực sự ngạc nhiên ở mức độ mà chúng không cung cấp một bản nâng cấp mượt mà giữa các phiên bản. Debian hoàn toàn có thể nâng cấp và tôi đã nâng cấp thông qua một vài phiên bản ổn định chính hiện nay.

Tôi đang nói về các distro được hỗ trợ tốt như Fedora (và các công cụ phái sinh), thậm chí Ubuntu và các công cụ phái sinh. Ngay cả các distro định hướng máy chủ ổn định như CentOS.

Có phải vì hệ thống quản lý gói và các kịch bản nâng cấp gói của Debian tiên tiến hơn nhiều so với bất kỳ phân phối nào khác phải cung cấp?

Hoặc là cài đặt lại từ đầu trên một phiên bản nâng cấp lớn chỉ là một ý tưởng tốt hơn về tổng thể, bất kể phân phối là gì?

Câu trả lời:


6

Đó là sự kết hợp của một số yếu tố.

Hầu hết các bản phân phối sử dụng các bản phát hành chính là thời gian để thực hiện các thay đổi quan trọng, đôi khi phá vỡ. Ví dụ, Fedora 15 đã thêm systemd và Ubuntu được thêm vào lúc bắt đầu vào 6.10. Debian là một bản phân phối rất bảo thủ theo nhiều cách. Thay đổi lớn, phá vỡ được nhăn mặt.

Ví dụ, đó là hậu quả của việc các chu kỳ phát hành của Debian cách nhau rất xa, vì chúng yêu cầu mọi gói quan trọng phải được sửa đổi để đáp ứng các tiêu chuẩn của bản phát hành mới.

Công nghệ quản lý gói của Debian không vượt trội so với Fedora hoặc Ubuntu (rõ ràng, vì nó giống với Ubuntu), nhưng về mặt văn hóa, Debian đã quyết định rằng việc có một hệ thống nâng cấp mượt mà là rất quan trọng.


5
Chính xác hơn, họ đã quyết định rằng những gì bạn không muốn trong một máy chủ sản xuất là phải cài đặt lại từ đầu để nâng cấp phần mềm trên đó.
Shadur

Ngay cả với Fedora, việc thực hiện nâng cấp (một phiên bản) thông qua trình cài đặt sẽ cố gắng DTRT đối với các thay đổi cơ sở hạ tầng cơ bản nếu có thể.
Ignacio Vazquez-Abrams

1

Để cụ thể hơn, tôi đã gặp phải sự cố trên nhiều bản phân phối khi thực hiện nâng cấp. Ubuntu Ví dụ, thay đổi mạnh mẽ cơ sở gói được cài đặt giữa các bản phát hành. Nếu bạn thực hiện 'nâng cấp xa' truyền thống, các gói đã cài đặt sẽ cập nhật lên các bản phát hành mới của họ, nhưng kết quả cuối cùng sẽ thiếu các thay đổi dòng sản phẩm mới. Nếu một gói từ cài đặt mặc định bị hạ cấp, chỉ còn 'được hỗ trợ' hoặc tệ hơn là 'không được hỗ trợ', bạn vẫn giữ được gói đó. Nếu một gói mới hiện đang được cài đặt mặc định, bạn sẽ không cài đặt nó. Mặc dù bản phát hành của bạn là "về mặt kỹ thuật" bản phát hành được nâng cấp, nó không phản ánh trải nghiệm phát hành mới. Trường hợp tương tự cũng rất chính xác, khi so sánh CentOS5 với CentOS6, họ đã sắp xếp lại hoàn toàn tên bao bì của mình.

Debian ưu tiên nâng cấp mượt mà, với chi phí cho những thay đổi mạnh mẽ như vậy. Đây là lý do tại sao Debian chậm hơn trên các tính năng mới hơn, vì cộng đồng của họ, sự đánh đổi là chấp nhận được. Để lặp lại câu trả lời trước đó, nó không liên quan gì đến công nghệ quản lý gói. Tôi sẽ nói, việc cài đặt lại Ubuntu liên tục đang đeo trên người tôi.


Ubuntu bao gồm một công cụ đặc biệt để nâng cấp được cho là chăm sóc nhiều hơn là chỉ nâng cấp từ xa. Bạn có biết thêm về nó và nó có tốt không?
trr

1

Những gì bạn nêu không đúng với cả gia đình phân phối phát hành .

Đối với một phần mềm bảo trì hệ thống, sẽ khó khăn hơn nhiều khi giải quyết các vấn đề tương thích gói chéo khi chỉ nâng cấp một số phần của hệ thống hoặc duy trì tính nhất quán cấu hình trong suốt quá trình nâng cấp. Các gói phần mềm khác nhau cần được điều chỉnh để hoạt động tốt với nhau.

Đó là lý do tại sao giải pháp dễ nhất (nghĩa là đáng tin cậy nhất trong cùng một nỗ lực thời gian dev ) để cung cấp bản cập nhật hệ thống là chuẩn bị một bản phát hành đầy đủ, được kiểm tra kỹ lưỡng, cài đặt đầy đủ theo định kỳ. Các giải pháp doanh nghiệp như Red Hat đảm nhận vị trí khách hàng phải được cung cấp một hệ thống đáng tin cậy và gặp rắc rối khi phá vỡ các nâng cấp càng lâu càng tốt. (Tất nhiên, các nâng cấp nhỏ và sửa lỗi phải có sẵn hoặc thậm chí tự động kéo). Đây cũng là triết lý chung đằng sau các bản phát hành máy chủ miễn phí như CentOS.

Cung cấp cho người dùng cuối một lộ trình nâng cấp liền mạch giữa các bản phát hành là một thách thức lớn đối với các nhà phát triển hệ thống. Nhiều distro chọn không hy sinh thời gian khan hiếm của họ để điều này. Nhiều gói phổ biến (ví dụ như QT) khó nâng cấp, thường cần cài đặt lại hoàn chỉnh. Điều thậm chí còn quan trọng hơn, nhiều dự án cho thấy nỗ lực phát triển giảm hoặc bị thay thế bởi các công nghệ mới. Trong trường hợp các gói hệ thống, điều này thường đòi hỏi một số thiết kế lại hệ thống quan trọng. Các thủ tục di chuyển có thể đặc biệt khó thực hiện nếu họ phải tính đến thực tế là một số người sẽ muốn nâng cấp từ phiên bản C lên D, nhưng những người khác sẽ chuyển đổi mẫu B hoặc từ A hoặc từ một số trạng thái tùy chỉnh ở giữa.

Vì vậy, như bạn có thể đã đoán, cách tiếp cận thử thách nhất là phát hành. Tôi không biết chi tiết về cách tiếp cận của Debian, nhưng từ mô tả của bạn, tôi có thể thấy chúng ở đâu đó ở giữa.


Debian hỗ trợ đầy đủ các nâng cấp từ ổn định trước sang ổn định hiện tại. Vì chúng cách nhau 2 hoặc 3 năm, chúng liên quan đến các chuyển đổi lớn như glibc, KDE 3 đến 4, Gnome 2 đến 3 sắp tới, v.v. Bạn đề cập rằng một số gói khó nâng cấp và phải được cài đặt lại - đây là những gì đã biết trong Debian là một "quá trình chuyển đổi chính" và trình quản lý gói của họ hoàn toàn có khả năng quản lý chúng và họ hoàn toàn kiểm tra và hỗ trợ chúng cho người dùng cuối. Tôi nghĩ rằng nó có nhiều thứ phải làm về tư duy hơn bạn tuyên bố - Debian tin rằng đó là cách đúng đắn để giải quyết vấn đề này, vì vậy họ biến nó thành hiện thực.
trr
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.