Có thể sử dụng vòng / phút mà không cần truy cập root?
Có thể sử dụng vòng / phút mà không cần truy cập root?
Câu trả lời:
Tùy thuộc vào nội dung của gói, bạn có thể chỉ cần trích xuất nội dung của vòng / phút và sử dụng nó từ một nơi nào đó trong thư mục nhà của bạn. Ngay cả khi nó không được gắn cờ là di dời. Nếu các tệp nhị phân trong gói có đường dẫn được mã hóa cứng hoặc nếu ứng dụng yêu cầu quyền truy cập root thì có thể không thực hiện được.
Có rất nhiều câu trả lời gợi ý các gói di dời. Tùy chọn di chuyển dành cho quản trị viên chọn đích (làm cho đích là / opt thay vì / usr / local chẳng hạn) và không thực sự cho phép người dùng.
Mặc dù có thể khắc phục một số vấn đề về quyền sử dụng phương pháp này, nhưng vấn đề MAJOR là khi bạn thực hiện các thao tác vòng / phút, nó đang sửa đổi cơ sở dữ liệu /var/lib/rpm/__db.* được sở hữu root: root. Vì vậy, như JPerkSter đã nói "câu trả lời ngắn = không". Thiết lập sudo để cho phép các nhu cầu cụ thể có thể là đặt cược tốt nhất.
Xem xét tất cả các điều trên, liên quan đến các bản dựng có thể di dời, bạn có thể thử làm theo các hướng dẫn được liệt kê ở đây .
rpm --initdb --root /home/username/local --dbpath /home/username/local/lib/rpm
rpm --root /home/username/local --dbpath /home/username/local/lib/rpm \
--relocate /usr=/home/username/local --nodeps -ivh package.rpm
Thông số RPM chứa một tùy chọn gọi là 'di dời'. Nếu vòng / phút được xây dựng với khả năng định vị lại được bật thì nó có thể được cài đặt trong thư mục do người dùng chỉ định bằng tùy chọn '--prefix'. Vì vậy, có lẽ một vòng / phút có thể được cài đặt cục bộ mà không cần truy cập siêu người dùng miễn là có hai điều kiện:
Nhưng, nói chung, không, bạn cần quyền truy cập siêu người dùng để cài đặt RPM. Trong khi tùy chọn có thể định vị lại tồn tại, tôi gần như chưa bao giờ thấy một gói nào được xây dựng để hỗ trợ nó.
Một số gói có thể định vị lại để chúng có thể hoạt động tốt mà không cần root, chỉ cần chỉ định tiền tố khi cài đặt nó: rpm -i my.rpm --prefix = / my / home / thư mục
Nếu gói không thể di chuyển, bạn vẫn có thể trích xuất các tệp từ RPM và thử chạy nó. Bạn có thể trích xuất các tệp RPM bằng cách sử dụng ví dụ:
Sao chép các tệp vào thư mục ~ / của bạn, thêm bất kỳ thư viện phụ thuộc bổ sung nào và hy vọng điều tốt nhất. Không được bảo đảm nhưng bạn có thể nhận được một số gói không thể di chuyển hoạt động theo cách này.
Bạn có thể buộc nó cài đặt dưới một thư mục khác bằng cách sử dụng một dbpath khác. Ngoài ra, bạn có thể không nên chạy bất kỳ tập lệnh trực tiếp mà không kiểm tra chúng.
Điều này sẽ đặt một vòng / phút trong thư mục hiện tại và trích xuất các tập lệnh để bạn có thể chỉnh sửa và chạy chúng nếu cần thiết.
rpm --install --badreloc --relocate /=`pwd` -dbpath `pwd`/rpm_db --nodeps --noscripts package.rpm
rpm --query --scripts -p package.rpm > scripts.txt
Có, nhưng bạn có thể không muốn. Tôi đã sử dụng các bảng kê khai rối tùy chỉnh và các gói vòng / phút để duy trì phần mềm trên các cụm tính toán mà tôi không có quyền truy cập root. Về lý thuyết, nó đơn giản như
rpm --inittb --root /foo
rpm --dbpath /foo -i bar.rpm
Tuy nhiên, có những điều kỳ quặc trong cách ứng xử này trên EL4, EL5 và EL6, vì vậy bạn sẽ cần một bộ các bước và tùy chọn khác nhau cho mỗi bước. Tôi không có thông tin đó hữu ích nữa. Những điều kỳ quặc đó, cũng như các vấn đề cơ sở dữ liệu RPM thường xuyên (có lẽ là do NFS), khiến tôi hối hận khi sử dụng vòng / phút.
rpm
lệnh mà không có quyền truy cập sudo / root.