Tại sao người quản lý gói không có cài đặt và đăng ký theo người dùng?


23

Cả Apt và DNF / Yum, hai lược đồ quản lý gói phổ biến nhất cho phân phối Linux theo hiểu biết của tôi, chỉ hỗ trợ cài đặt các gói trên toàn hệ thống: Các tệp được sở hữu bởi root, nhị phân đi vào (/usr)?/s?bin, cài đặt đi /etcvào.

Tuy nhiên, trên các hệ thống có nhiều người dùng cá nhân không có quyền root, rất thường xuyên - nếu không luôn luôn - xảy ra việc người dùng muốn cài đặt một số ứng dụng hoặc tiện ích có sẵn cho bản phân phối đó; và anh ấy vẫn ổn với một bản cài đặt mang tính cá nhân và không phổ biến đối với nhiều người / tất cả người dùng.

Bây giờ, có vẻ như không phải là một ý tưởng xa vời hoặc thậm chí cực kỳ phức tạp để các gói có thể thích ứng, tại thời điểm cài đặt, với một thư mục gốc hoặc tập hợp các thư mục gốc, để người dùng có thể thực hiện điều này. Cũng không phải là vấn đề lớn để quản lý sổ đăng ký dành riêng cho người dùng đối với các gói đã cài đặt (cho dù người dùng cá nhân có gói DB riêng của mình hay không).

Vậy lý do gì mà chức năng này chưa được thêm vào các hệ thống / chương trình quản lý gói chung đó?

Lưu ý: Đây là một câu hỏi thông tin, tức là tôi đang hỏi về những gì mọi người biết về quá khứ , chứ không phải mọi người nghĩ gì về tính năng này.


3
Nếu được cung cấp, nó sẽ tiết kiệm được phần lớn thời gian biên dịch phần mềm của tôi từ nguồn trên các máy tính mà tôi không có đặc quyền siêu người dùng. Tôi háo hức muốn biết câu trả lời.
Weijun Zhou

1
Phải thừa nhận rằng kiến ​​thức của tôi về điều này không phải là lớn nhất, nhưng nó có thể đã được thực hiện để ngăn người dùng lấp đầy ổ cứng với sự phụ thuộc của phần mềm mà họ đã cài đặt. Nếu apt không chạy bằng root thì nó không thể cập nhật các thư viện hệ thống, vì vậy người dùng hiện có phiên bản mới hơn hệ thống. Lặp lại cho mọi người dùng và cũ hơn, các ổ cứng nhỏ hơn sẽ được lấp đầy khá nhanh.
Thess

1
@Thegs: Tôi nghi ngờ rằng đây là sự cân nhắc. Rất ít dự án phần mềm tránh các tính năng quan trọng vì các cân nhắc như "nếu mọi người làm điều này, họ sẽ lấp đầy ổ đĩa của họ". Nếu đó là một loại rủi ro bảo mật, có thể. Ngoài ra, trên các hệ thống nhiều người dùng, sẽ có hạn ngạch; và ít người sẽ sử dụng cái này Thêm vào đó là tất cả suy đoán ...
einpoklum - phục hồi Monica

2
Nói tóm lại: Đây không phải là công việc của người quản lý gói hệ thống gây rối với dữ liệu người dùng. ~ / bin, ~ / lib, v.v., từ POV của hệ thống, "dữ liệu người dùng".
cas

1
Tôi đã thấy một vài gói được phân phối qua pip, npmgopkg- một phần vì chúng độc lập với phân phối và một phần vì chúng thường cho phép cài đặt cụ thể cho người dùng.
Bob

Câu trả lời:


15

Mặc dù các trình quản lý gói phổ biến không giải quyết trường hợp sử dụng này, có một số dự án thực hiện:

Tôi đoán tốt nhất là tại sao các nhà quản lý gói truyền thống không giải quyết trường hợp sử dụng này là nó làm phức tạp đáng kể quá trình xây dựng và cài đặt gói, vì các nhà bảo trì gói sẽ cần phải rất cẩn thận để đảm bảo rằng các gói của họ hỗ trợ chính xác thư mục cài đặt động. Trên thực tế, nhiều định dạng gói phổ biến như RPM hỗ trợ thư mục cài đặt động, nhưng hầu như không có nhà bảo trì nào tận dụng tính năng này khi xây dựng các gói do chi phí bổ sung cao.


Vì vậy, RPM hỗ trợ điều này nhưng, giả sử, dpkg không?
einpoklum - phục hồi Monica

1
Tôi không biết về dpkg khá trung thực, vì tôi chưa bao giờ xây dựng các gói .deb. Tôi đoán dpkg không hỗ trợ các thư mục cài đặt động, nhưng tôi nghi ngờ nhiều người bảo trì gói .deb làm.
jayhendren

Một điều nữa ... những thứ này thường được xây dựng từ đầu, bootstrap hoặc tiếp tục dựa vào bất cứ thứ gì được cài đặt ở cấp độ toàn hệ thống?
einpoklum - phục hồi Monica

1
Quản lý gói toàn hệ thống giả định không có gì khả dụng nếu chưa cài đặt nó, vì vậy việc tìm kiếm các phụ thuộc về các tệp tương đương với tìm kiếm các phụ thuộc về các gói đã cài đặt có chứa các tệp đó. Nhưng với trình quản lý gói thứ cấp, có các gói / tệp trên toàn hệ thống và các gói / tệp dành riêng cho người dùng. Các nhà quản lý gói thường chỉ dựa vào những gì họ đã tải xuống và / hoặc xây dựng?
einpoklum - phục hồi Monica

2
Phụ thuộc. Những người biên dịch từ nguồn như Homebrew và Emerge thường chỉ cố gắng xây dựng gói mà không có nhiều theo dõi phụ thuộc. Các gói khác phụ thuộc gói với các gói (đây là cách mà hầu hết các công cụ kiểu App Store hoạt động, cũng như Flatpak và Snaps). Những người khác như Zero Install cài đặt tất cả các phụ thuộc dưới dạng các gói cấp độ người dùng cá nhân.
jayhendren

6

Vậy lý do gì mà chức năng này chưa được thêm vào các hệ thống / chương trình quản lý gói chung đó?

Bởi vì nó làm tăng sự phức tạp của việc quản lý các hệ thống vượt ra ngoài những gì cần thiết.

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.