cài đặt gói mà không cần truy cập sudo


11

Có cách nào dễ dàng để cài đặt các gói với cây phụ thuộc lớn, miễn là bạn không có quyền truy cập siêu người dùng? Ví dụ, tôi muốn cài đặt firefox. Firefox có rất nhiều phụ thuộc, mỗi phụ thuộc đều có phụ thuộc riêng, v.v. Việc cài đặt các cách "./có hình; tạo; thực hiện cài đặt" này sẽ mất mãi mãi.

Có một tùy chọn nào tôi có thể cung cấp cho apt-get để cài đặt nó trong một thư mục cá nhân không? Hoặc có cách nào để hack nó để làm tất cả những việc nặng nhọc cho tôi không?


hãy thử hỏi trên www.superuser.com hoặc nếu một câu hỏi cụ thể về máy chủ www.serverfault.com

Câu trả lời:


4

Bạn có thể cài đặt các tệp .deb riêng lẻ trong thư mục chính của mình với:

dpkg-deb -x /path/to/some.deb $HOME

Nhưng điều này không quan tâm đến các phụ thuộc như aptitude hoặc apt-get.


Tôi đã sử dụng phương pháp này để cài đặt nguyên tử cho julia trên máy trạm của mình. Ngoài ra, tôi đã tạo một bí danh cho nguyên tử trong ~ / .bashrc: bí danh nguyên tử = "/ path / to / the / execable / atom / binary / file". Sau đó chạy: source ~ / .bashrc, bạn đã sẵn sàng để chạy nguyên tử trong terminal.
Thiện chí

2

Kiểm tra NixOs ( LWN ). Các gói được cách ly (đôi khi phân phối cần vá chúng) và có thể được cài đặt nhiều lần, ở các phiên bản khác nhau hoặc bởi những người dùng khác nhau.

jhbuild có thể tự động hóa một quy trình cmmi lớn. Nhưng ai đó cần phải viết một mô-đun (một biểu đồ phụ thuộc).

Nếu bạn đang thực hiện cấu hình thủ công / thực hiện tất cả quá trình cài đặt, có thể sử dụng stow để đơn giản hóa việc cài đặt mọi thứ trong nhà của bạn. Stow rất hữu ích để cài đặt mọi thứ trong một số tiền tố nhưng chỉ sử dụng một tiền tố để phân giải phụ thuộc.

dpkg có thể bị ép buộc để cài đặt trong một tiền tố khác với instdir / admindir / root, nhưng điều này chỉ hữu ích cho môi trường chroot.


0

Không biên dịch Firefox từ nguồn, chỉ cần cài đặt gói nhị phân vào thư mục chính của bạn.

Đây bài viết Mozilla KnowledgeBase giải thích làm thế nào để làm điều đó. Về cơ bản, bạn chỉ cần trích xuất một tarball và thực hiện một firefoxtệp trong đó; tất cả các phụ thuộc đã được bao gồm vì vậy bạn không cần phải cài đặt bất cứ thứ gì apt.

EDIT: Không, không có phương pháp chung nào tồn tại, ít nhất là vì hầu hết các ứng dụng (và đặc biệt là GUI) yêu cầu nhiều dữ liệu liên quan đến nó được đặt ở các vị trí nổi tiếng như / usr / share và được mã hóa cứng trong đó (tốt, nó có thể được cấu hình vào thời gian biên dịch, nhưng bạn không muốn biên dịch lại mọi thứ như bạn đã nói trong câu hỏi). Vì vậy, bạn chỉ có thể kiểm tra các gói nhị phân được biên dịch trước để tìm kiếm tài nguyên trong thư mục khởi chạy chứ không phải các gói hệ thống.


tôi giải thích câu hỏi về thực hành quản lý gói. Tôi nghi ngờ Firefox chỉ là một ví dụ, vì vậy các phương pháp dành riêng cho Firefox không quá hữu ích.
quack quixote

Cảm ơn, đã chỉnh sửa bài viết. Thông tin Firefox vẫn hữu ích thông qua.
Whitequark

0

Tôi nghĩ rằng câu trả lời là khá nhiều "không". Trước hết, cơ sở dữ liệu gói chỉ có thể truy cập bằng root và thứ hai, một số / nhiều gói có đường dẫn được mã hóa cứng khiến cho không thể di chuyển chúng. Sử dụng một chroot sẽ là một câu trả lời có thể, nhưng bạn cũng cần root cho điều đó, hoặc ít nhất là ai đó có quyền root để cấp cho bạn quyền hạn chế.


0

Tôi tin rằng bạn phải làm một chroot sau đó bạn có thể cài đặt các gói của bạn ở đó.

ref: https://help.ubfox.com/6.10/ubfox/packagingguide/C/appcill-chroot.html https://wiki.ubfox.com/DebootstrapChroot


đặc quyền root dù sao cũng được yêu cầu để tạo chroot, vậy tại sao không chỉ cài đặt các gói thay thế ? Ngoài ra, khả năng sysadmin của bạn sẽ cấp cho bạn các đặc quyền gốc đầy đủ (hoặc thậm chí chỉ liên quan đến apt) là rất nhiều, ít hơn nhiều so với các đặc quyền cho chroot. Nó (gần như) không nguy hiểm cho hệ thống máy chủ.
Whitequark
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.