Làm cách nào tôi có thể cài đặt RPM mà không cần root?


49

Làm cách nào tôi có thể cài đặt RPM trên máy mà tôi không có quyền root? Tôi muốn cài đặt một gói để sử dụng chỉ trong một thư mục công việc cá nhân. Tôi đang chạy SuSe SLES10.

Xin đừng châm chọc tôi với "Ý tưởng này thật ngu ngốc, bạn không nên thực hiện nó bởi vì tất cả các yêu cầu phải thông qua thần gốc của công ty, anh ấy có thể sống mãi mãi."

Tôi biết tôi có thể yêu cầu vị thần gốc này, nhưng tôi sẽ bị bắn hạ (vì những lý do vô nhiễm, hoàn hảo, tôi chắc chắn ...). Bên cạnh đó, anh ta sẽ không bao giờ đi xung quanh để cài đặt nó ngay cả khi anh ta nói rằng anh ta sẽ làm điều đó.


6
Đây hoàn toàn không phải là một bản sao. Ghi đè đường dẫn không phải lúc nào cũng cho phép người dùng không có quyền sử dụng vòng / phút.
John T

Cảm ơn HarryMC. Tôi sẽ kiểm tra xem. Ngoài ra, thêm liên kết đến các vé khác mà mọi người nghĩ rằng tôi là một bản sao. Có thể mẩu bánh mì sẽ giúp người khác: superuser.com/questions/160530/override-rpm-install-path
Ross Rogers

Để có một tương lai tốt hơn, hãy xem appimage.org .
Ross Rogers

Câu trả lời:


56

2
Tôi đã làm điều này và cpio dường như không làm gì cả, ngoại trừ in '1 khối'. Tôi đã làm gì sai sao?
Nate Parsons

Cảm ơn. Hóa ra tôi đã có thể cài đặt từ nguồn, vì vậy tôi không cần bận tâm đến RPM
Nate Parsons

10
Điều đó chỉ giải nén nội dung của RPM và bỏ nó ở nơi bạn đang ở. Điều đó không có nghĩa là kết quả hoạt động (cấu hình của nó không phải là nơi cần có, ...)
vonbrand

Ước gì tôi có thể chỉ cho bạn một số phần thưởng danh tiếng của từ thiện. Cảm ơn bạn!
macetway

3

Làm thế nào để giải nén nội dung gói vòng / phút

export ins=foo-bar.rpm
rpm2cpio $ins | cpio -idv

Làm thế nào để giải nén tar.gzlưu trữ

gzip -dc foo-bar.tar.gz | tar xvf –
cd foo-bar-dir

Làm thế nào để giải nén tar.gzcác gói vào thư mục hiện tại

export file=foo-bar.tar.gz
# Note that `xovf` switch order *matters*
gzip -dc $file | tar -xovf -

Làm thế nào để xây dựng nhị phân như là một root

./configure --prefix=$HOME && make && make install

1

Một tùy chọn khác là cài đặt từ nguồn, nơi bạn thường có thể thay đổi thư mục cài đặt bằng cách sử dụng công --prefixtắc.


1
Đó là những gì tôi thường làm, nhưng tôi hy vọng sẽ có thêm tự động hóa.
Ross Rogers

2
Đối với tôi điều này không hoạt động vì nó cố gắng khóa tệp trên một cái gì đó trong / var (và quyền bị từ chối).
Nir Friedman

0

Tôi nghĩ rằng câu trả lời "thực sự" để "cài đặt" một vòng / phút mà không có đặc quyền gốc là, bạn không thể . NHƯNG giả sử bạn thực sự có thể bắt đầu quá trình cài đặt ...

RPM cài đặt bằng cách sử dụng danh sách các hướng dẫn được cung cấp trong tệp đặc tả (.spec) thường tuân theo Phân cấp hệ thống tệp. Hầu hết các đường dẫn trên hệ thống phân cấp đó hầu như luôn luôn là đường dẫn hệ điều hành và không phải là đường dẫn người dùng. Vì vậy, trừ khi tên người dùng của bạn có quyền truy cập vào tất cả các đường dẫn mà RPM cài đặt, thì nó chắc chắn sẽ thất bại. Nếu bạn tạo một RPM có tiền tố tất cả các đường dẫn của nó với /home/me(hoặc một số đường dẫn khác mà bạn sở hữu), thì nó sẽ hoạt động. Điều này sẽ yêu cầu có được một src.rpm và trích xuất nó như được giải thích trong các câu trả lời khác, sau đó xây dựng lại nó. Vào thời điểm bạn làm điều đó, bạn có thể xem xét việc truy cập root hoặc xây dựng phần mềm từ đầu (thường là những gì bạn làm nếu bạn không có kế hoạch phân phối phần mềm trên nhiều máy).

Có những thủ thuật thông minh để giúp bạn trong quá trình xây dựng thủ công. Ví dụ: bạn có thể sử dụng các phụ thuộc đã được liệt kê trong RPM để nhận tất cả các phụ thuộc của mình: https://stackoverflow.com/a/13877738/1236128 .

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.