Cài đặt một gói cục bộ cho người dùng - thực tiễn tốt nhất?


18

Tôi muốn cài đặt Git cục bộ cho người dùng trên máy chủ RHEL (Tôi không có quyền truy cập root) Cách cài đặt phần mềm sạch nhất / có tổ chức nhất của bạn vào tài khoản người dùng cục bộ là gì?

  • Cài đặt mọi thứ trong thư mục nhà của người dùng?
  • Bố cục thư mục sẽ trông như thế nào?
  • Bạn sẽ cài đặt từ nguồn hoặc RPM?
  • Nếu từ RPM, bạn sẽ sử dụng YUM hoặc RPM?

Câu trả lời:


17

Có nhiều cách để cài đặt rpms trong thư mục người dùng bằng cách sử dụng rpm, nhưng tôi không tin rằng nó đơn giản. Tôi không tin có một cách với yum.

Thực hành tiêu chuẩn của tôi đã trở thành biên dịch từ nguồn vào một localthư mục trong nhà của tôi

$ mkdir ~/local
$ mkdir ~/local/bin
$ mkdir ~/local/lib
$ mkdir ~/local/include

Tôi tải xuống nguồn như tôi muốn /usr/localkhi tôi có root, ví dụ, trong ~/local/git.

Khi biên dịch tôi đặt tiền tố vào localthư mục

$ configure --prefix=/home/user_name/local
$ make
$ make install

Sau đó tôi thêm ~/local/binvào $ PATH của mình .bash_profile.

Tất nhiên, điều khó khăn khi cài đặt từ nguồn là bạn không có được độ phân giải phụ thuộc tự động. Nếu bạn thấy rằng bạn cần cài đặt các phụ thuộc, biên dịch và cài đặt chúng như trên. Sau đó, khi bạn biên dịch git, bạn cần cập nhật các cờ biên dịch để chúng tìm đúng vị trí cho các thư viện của phụ thuộc và bao gồm các tệp:

./configure --prefix=/home/user_name/local LDFLAG='-L/home/user_name/local/lib' CFLAGS='-I/home/user_name/local/include' CPPFLAGS='-I/home/user_name/local/include' CXXFLAGS='-I/home/user_name/local/include'

Điều này làm việc hoàn hảo, cảm ơn lời khuyên!
Wiredin

13

Tệp .rpm thực sự là một hình thức cpiolưu trữ, rất giống với một hình thức đơn giản tar. Các rpm2cpiotiện ích có lẽ được cài đặt trên hệ thống và không đòi hỏi đặc quyền để sử dụng; Nó viết theo tiêu chuẩn, vì vậy để chuyển đổi:

rpm2cpio whatever.rpm > whatever.cpio

Có một cái man cpiobạn có thể tự nhìn lại, nhưng những gì bạn muốn làm bây giờ là cung cấp kho lưu trữ cho cpio ở chế độ "sao chép":

cat whatever.cpio | cpio -i

Rất có khả năng các công cụ được tổ chức thành một cây thư mục để các tệp đi vào các vị trí thích hợp (bin, v.v.). Nếu những cái đó không tồn tại trong pwd của bạn, bạn sẽ gặp lỗi, nhưng điều đó sẽ liệt kê các tệp trong kho lưu trữ (bạn có thể nhận được điều tương tự với -t/ --listswitch). Nếu bạn muốn tạo các thư mục tự động, sử dụng -d. Vì vậy, một cách nhanh chóng để giải nén một vòng / phút:

rpm2cpio whatever.rpm | cpio -i -d

Bạn có thể sử dụng để cài đặt vào $ HOME. Vấn đề duy nhất sẽ là nếu chương trình mong muốn tìm thấy thứ trong/etc , v.v., vì nhiều thứ có vị trí cài đặt của chúng được mã hóa cứng cho bất kỳ mục đích nào khi chúng được biên dịch.

Xây dựng từ nguồn có lẽ là một lựa chọn tốt hơn (vì bạn có thể cung cấp vị trí chính xác), nhưng nếu bạn có thể làm điều này hoạt động trong mọi trường hợp thì thật nhanh chóng và đơn giản.

Ngoài ra, trình duyệt tệp chỉ huy nửa đêm ( mcvà có lẽ các trình duyệt tệp khác bên cạnh, sẽ cho phép bạn điều hướng phân cấp vòng / phút hoặc cpio (hoặc nén tar, hoặc zip) và sao chép các tệp riêng lẻ như thể tệp lưu trữ được giải nén (nó tạo ra hệ thống tập tin tạm thời để duyệt với nội dung lưu trữ trong đó).


0

Đây là một thay thế (không sử dụng yum) và quyền sẽ bị lập dị nhưng bạn có thể chowncho người dùng mục tiêu sau đó: - cũng là một lần nhấn hoặc bỏ lỡ :-(

#-## Download all dependency for the RPM -- 
#sudo yum install yum-utils
#sudo yumdownloader --resolve --destdir ~/download bash

#-## Install all downloaded to an alternate root 
#sudo rpm --initdb --root <user_home_dir>
#sudo rpm --root <user_home_dir> -Uvh --nodeps ~/download/*

Sau đó thêm các vị trí thích hợp vào đường dẫn của bạn.

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.