it-swarm-vi.com

Làm thế nào tôi có thể cài đặt một gói mà không cần truy cập root?

Tôi có 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 ~/bin hoặc ~/usr/share của tôi hoặc một cái gì đó tương tự? Liệu điều đó có hiệu quả?

122
Weboide

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 một chroot không root. Đây là một phần quá trình liên quan , nhưng bạn nên tìm sự trợ giúp 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

Khi bạn có tệp gỡ lỗi của mình, hãy 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 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 lệnh apt-get source để tìm nạp nguồn của gói và định cấu hình để 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.

CHỈNH SỬA:

dpkg -i không hoạt động (xem bình luận), tôi đề xuất 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.

106
jbowtie

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ở bàn điều khiển/thiết bị đầu cuối:

  1. mkdir /tmp/jedit && cd /tmp/jedit - Tạo một diretory mới trong tmp và thay đổi nó.
  2. wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb - Tải xuống gói
  3. ar 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ệp
  4. tar 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ềm
  5. usr/bin/jedit mở trình chỉnh sửa
  6. làm xong :-)

Bạ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ừ đó.

16
qbi

Tôi đã viết một chương trình có tên JuJ 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
9
user967489