Tại sao không có trình quản lý gói thống nhất thực sự cho Linux?


31

Tại sao không phải là có một người quản lý gói thống nhất hoạt động như một giao diện giữa người dùng cuối và quản lý gói ở mức độ thấp cơ bản ( apt, yast, pacman, vv)?

Có khó để làm và do đó không thực tế, hoặc có một trở ngại thực sự làm cho nó không thể làm được?


14
Tôi đoán là chúng ta sẽ có được một lý thuyết trường thống nhất từ lâu trước khi chúng ta có được một trình quản lý gói thống nhất ...


2
Vì lý do chính xác như vậy, chúng tôi không muốn một bản phân phối duy nhất - Tôi thích cách phân phối của tôi thực hiện. Nếu bạn không, thì bạn có thể tự do sử dụng cái khác hoặc viết của riêng bạn. Trước khi bạn biết điều đó, bạn có nhiều người quản lý gói như bạn làm lập trình viên.
new123456

2
bạn không có nghĩa là các nhà quản lý gói cấp thấp vòng / phút, dep, nguồn? Những người bạn liệt kê là, bản thân họ.
ếchstarr78

Câu trả lời:


35

Trước hết, có. Vấn đề không phải là không có người quản lý gói thống nhất, vấn đề là có mười người trong số họ - nghiêm túc.

Hãy lấy yêu thích của tôi : poldek. Đó là giao diện người dùng để quản lý gói có thể chạy trên một số bản phân phối khác nhau và quản lý một rpmhoặc debcác gói. Poldek không thực hiện công việc mà vòng / phút thực hiện (nó rời khỏi vòng / phút) và chỉ gửi đúng lệnh mà không cần người dùng phải tìm ra tất cả mớ hỗn độn đó.

Nhưng vấn đề không dừng lại ở đó. Mỗi người có một ý tưởng khác nhau về giao diện người dùng được cho là trông như thế nào và nó sẽ hoạt động như thế nào và những tùy chọn nào sẽ hiển thị. Vì vậy, những người khác đã viết riêng của họ. Trên thực tế, nhiều trình quản lý giao diện người dùng mà mọi người sử dụng trong các bản phân phối phổ biến hiện nay có thể xử lý nhiều hơn một phụ trợ.

Tuy nhiên, cuối cùng, vấn đề (hoặc lợi thế) là mọi người thích mọi thứ hoạt động chính xác theo cách họ muốn, không phải trong một số siêu thời trang cố gắng làm hài lòng tất cả mọi người chỉ để không thực sự làm cho bất cứ ai hài lòng. Đây là lý do tại sao chúng tôi có nhiều distro gazillion ở nơi đầu tiên. Đó là lý do chúng tôi có rất nhiều Môi trường máy tính để bàn và Trình quản lý cửa sổ khác nhau (và thực tế đó là những loại thực sự khác nhau).

Vẫn còn những đề xuất nổi bật về cách viết các gói phổ quát hoặc có một người quản lý hiểu tất cả hoặc có một api để chuyển đổi cái này sang cái khác ... nhưng cuối cùng Unix là tốt nhất khi được sử dụng theo triết lý của nó ... mỗi công cụ không có một điều và hiện nó tốt .

Bất cứ khi nào bạn có một công cụ cố gắng làm nhiều hơn một việc, nó sẽ không tốt bằng một trong số chúng. Ví dụ, poldekhút khi xử lý các phụ thuộc gói deb.


1
Gần như những gì tôi sẽ nói. Và thành thật mà nói, miễn là các công cụ tương tác với nhau dưới mui xe (giả sử, bằng cách tuân thủ các tiêu chuẩn LSB) thì tôi không thực sự thấy vấn đề.
Shadur

10
++ cho "UNIX là tốt nhất khi ... mỗi công cụ làm một việc và làm tốt". Đôi khi tôi nghĩ có quá nhiều công cụ thoát khỏi con đường đó ...
ktf

Đặt một liên kết đến poldek.pld-linux.org --- có thể hữu ích để điều tra một cái gì đó đã cập nhật lần cuối vào năm 2005.
sorin

10

Tóm lại: bởi vì mỗi phân phối sử dụng cách tiếp cận khác nhau để quản lý gói. Họ chỉ đơn giản là không tương thích. Chiến lược quản lý hoạt động tốt nhất cho Ubuntu sẽ ít có ý nghĩa đối với Arch, v.v ... Trình quản lý gói "phổ quát" (không phụ thuộc vào phân phối) sẽ chỉ là một lớp giao diện người dùng bổ sung, sẽ không bao giờ hoạt động tốt như mỗi trình quản lý cụ thể của phân phối.

Vì vậy, sử dụng từ ngữ của riêng bạn, thật khó để làm và do đó không thực tế - cũng bởi vì hầu như không ai được hưởng lợi từ nó.


Giải pháp quản lý gói là di động cho các hệ thống khác. ive thấy portage trên debian. Tuy nhiên, tên của trò chơi là tìm thứ gì đó phù hợp với người dùng, vd. sẽ không có ý nghĩa gì khi biến portage thành mặc định trên Ubuntu. Chúng tôi dường như đang làm khá tốt cho đến nay.
Silverfire

8

Lý do lịch sử, chủ yếu. Một số hệ thống quản lý gói được thiết lập cùng thời gian - đặc biệt là .rpm và .deb. Mỗi người đều có những người tuân thủ và mỗi người đều đủ tốt để không một người quản lý gói duy nhất nào có lợi thế hấp dẫn. Các nhà phân phối chắc chắn sẽ không nhìn thấy điểm trong việc xây dựng lại hệ thống của họ để triển khai một trình quản lý gói khác.

Điều này cũng sẽ yêu cầu mỗi gói trong hệ thống (10.000 trong trường hợp debian) được xây dựng lại. Nó cũng sẽ yêu cầu một hệ thống di chuyển trơn tru được triển khai để người dùng hệ thống có thể đi từ trình quản lý gói cũ sang trình quản lý gói mới. Nỗ lực di chuyển sẽ vô cùng lớn và lớn hơn theo cấp số nhân để kiểm tra việc di chuyển, do đó bạn gần như chắc chắn sẽ nhận được nhiều lần phá vỡ. Điều này sẽ tạo ra nhiều punters irate.

Mỗi bản phân phối duy trì tập hợp phụ thuộc riêng dựa trên những gì được xây dựng cho bản phát hành đó. Một kho lưu trữ gói phổ quát sẽ quá khó để phối hợp giữa các bản phân phối vì xung đột phụ thuộc gần như chắc chắn sẽ phát sinh. Do đó, lợi ích thực tế của một hệ thống quản lý gói thống nhất (các gói phổ quát) sẽ không thể nhận ra trong thực tế.

Cuối cùng, ai được chọn người quản lý gói tiêu chuẩn chung? Truyện tranh XKCD được tham chiếu trong các nhận xét về OP tóm tắt chế độ thất bại thông thường trong loại bài tập này. Tiêu chuẩn hóa loại điều này sẽ rất chính trị và có khả năng dẫn đến một thứ không thể sử dụng được, hoặc sai sót sâu sắc đến mức nó sinh ra một vòng khác về các tiêu chuẩn - nếu các bên có thể đi đến thỏa thuận.

Vì vậy, về cơ bản, nó đi xuống: quá chính trị, quá khó khăn, quá rủi ro và không có lợi ích để nhận ra bằng cách làm điều đó.


8

Những gì bạn mô tả,

hoạt động như một giao diện giữa người dùng cuối và trình quản lý gói đòn bẩy thấp bên dưới

âm thanh một chút như PackageKit với tôi, đó là ,

GóiKit là một hệ thống được thiết kế để giúp cài đặt và cập nhật phần mềm trên máy tính của bạn dễ dàng hơn. Mục tiêu thiết kế chính là thống nhất tất cả các công cụ đồ họa phần mềm được sử dụng trong các bản phân phối khác nhau và sử dụng một số công nghệ mới nhất như PolicyKit để làm cho quá trình giảm bớt.

Chỉnh sửa: Xem ở đây để xem danh sách các phụ trợ được hỗ trợ. Edit2: Loại bỏ nhận xét vô dụng.


6

Trước tiên, hãy hiểu rằng "Linux" không phải là một hệ điều hành. Nó là một hạt nhân. Trình quản lý gói là một khái niệm cấp hệ điều hành, không phải là cấp độ kernel. Do đó, yêu cầu một trình quản lý gói thống nhất cho Linux là không thực sự hợp lý.

Tuy nhiên, nếu bạn hỏi tại sao các hệ điều hành khác nhau sử dụng nhân Linux không có trình quản lý gói tương thích, thì bạn cũng có thể hỏi tại sao Windows và Mac không có trình quản lý gói tương thích. Hoặc bất kỳ hai hệ điều hành khác.

Các hệ điều hành khác nhau phục vụ cho các nhu cầu khác nhau của người dùng và trình quản lý gói là một phần của nó. Tại sao tất cả các bản phân phối Linux có cùng trình quản lý cửa sổ? Hoặc đi kèm với tất cả các phần mềm được cài đặt sẵn?

Trả lời: Các nét khác nhau cho những người khác nhau.


1
+1 cho '"Linux" không phải là hệ điều hành'
Silverfire
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.