Tôi không có quyền truy cập root trên máy này.
Tôi muốn biết liệu có cách nào để tôi có thể tải xuống các gói Ubuntu và cài đặt chúng dưới dạng không root không?
Có lẽ trong tôi ~/bin
hay ~/usr/share
hay cái gì như thế? Liệu điều đó có hiệu quả?
Tôi không có quyền truy cập root trên máy này.
Tôi muốn biết liệu có cách nào để tôi có thể tải xuống các gói Ubuntu và cài đặt chúng dưới dạng không root không?
Có lẽ trong tôi ~/bin
hay ~/usr/share
hay cái gì như thế? Liệu điều đó có hiệu quả?
Câu trả lời:
Apt không hỗ trợ trực tiếp, nhưng có nhiều cách để làm điều đó.
Một là sử dụng schroot
để tạo ra một chroot không root. Đây là một quá trình có liên quan , nhưng bạn nên tìm sự trợ giúp của cộng đồng cho nhiều nhà phát triển thiết lập môi trường chroot để biên dịch mã.
Cách thứ hai tôi biết là cài đặt từ gói .deb. Bạn có thể tải xuống cái này từ một trang web hoặc nếu nó nằm trong kho Ubuntu mà bạn có thể tải xuống.
apt-get download package
Thay thế package
bằng tên của gói
Một khi bạn có tệp deb của bạn gọi dpkg
trực tiếp từ dòng lệnh. Ví dụ sau sẽ cài đặt pack.deb vào thư mục chính của bạn.
dpkg -i package.deb --force-not-root --root=$HOME
Nhược điểm của việc sử dụng dpkg như thế này là các thông báo lỗi có khả năng là khó hiểu; dpkg không tự động giải quyết các phụ thuộc hoặc tạo cấu trúc thư mục mà nó mong đợi.
Cuối cùng, bạn có thể sử dụng apt-get source
lệnh để tìm nạp nguồn của gói và cấu hình nó để cài đặt cục bộ. Thông thường, cái này trông giống như:
apt-get source package
cd package
./configure --prefix=$HOME
make
make install
Nhược điểm của phương pháp này là bạn cần môi trường phát triển có sẵn để phương pháp này hoạt động, và bạn có thể thấy mình biên dịch hàng tá gói để giải quyết tất cả các phụ thuộc.
BIÊN TẬP:
Vì dpkg -i
không hoạt động (xem bình luận), tôi đề nghị phương án này:
dpkg -x package.deb dir
Điều này sẽ trích xuất gói .deb vào dir. Sau đó, bạn có thể xuất PATH nơi nhị phân. Miễn là tất cả các phụ thuộc của nhị phân được cài đặt, nó sẽ chạy như bình thường.
sudo apt-get build-dep package
để cài đặt mọi thứ cần thiết để xây dựng gói (sau khi nhận được nguồn với apt-get source
).
--force-not-root --root=$HOME
hoặc các biến thể của chúng sẽ không hoạt động. Các gói nhị phân Debian không được thiết kế để cài đặt trong thư mục chính, theo giai đoạn. Hoặc, để đặt cách này khác ,. "Ví dụ sau sẽ cài đặt gói.deb vào thư mục chính của bạn.". Không, nó sẽ không.
--force-not-root --root=/your/custom/path
Tôi giả sử bạn muốn cài đặt jedit . Đầu tiên bạn phải tìm gói và tải nó. Tôi chỉ lấy tệp deb từ một số máy nhân bản và mở giao diện điều khiển / thiết bị đầu cuối:
mkdir /tmp/jedit && cd /tmp/jedit
- Làm cho một diretory mới trong tmp
và thay đổi vào nó.wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb
- Tải góiar x jedit_4.3.1.dfsg-0ubuntu1_all.deb
hoặc, dễ gõ, ar x *.deb
- phần này trích xuất nội dung tệptar xvzf data.tar.gz
- tệp data.tar.gz
có tất cả những thứ bạn cần để thực thi phần mềmusr/bin/jedit
mở trình soạn thảoBạn có thể di chuyển các tệp đến một số điểm trong thư mục chính của bạn và thực hiện chúng từ đó.
Tôi đã viết một chương trình có tên JuJu , về cơ bản cho phép có một bản phân phối linux thực sự nhỏ (chỉ chứa trình quản lý gói) trong thư mục $ HOME / .juju của bạn.
Nó cho phép hệ thống tùy chỉnh của bạn bên trong thư mục chính có thể truy cập thông qua proot và do đó, bạn có thể cài đặt bất kỳ gói nào mà không có quyền root. Nó sẽ chạy đúng với tất cả các bản phân phối linux chính, hạn chế duy nhất là JuJu có thể chạy trên kernel linux với phiên bản tối thiểu 2.6.32 được đề xuất.
Chẳng hạn, sau khi cài đặt JuJu để cài đặt jedit:
$>juju -f
(juju)$> pacman -S jedit
(juju)> jedit