Cài đặt từng chương trình trong cây thư mục chuyên dụng và sử dụng Stow hoặc XStow để làm cho tất cả các chương trình xuất hiện trong một cấu trúc phân cấp chung. Stow tạo các liên kết tượng trưng từ thư mục dành riêng cho chương trình đến một cây chung.
Chi tiết hơn, chọn một thư mục toplevel, ví dụ /usr/local/stow
. Cài đặt từng chương trình theo /usr/local/stow/PROGRAM_NAME
. Ví dụ, sắp xếp để các tệp thực thi của nó được cài đặt /usr/local/stow/PROGRAM_NAME/bin
, các trang man của nó /usr/local/stow/man/man1
, v.v. Nếu chương trình sử dụng autoconf, sau đó chạy ./configure --prefix /usr/local/stow/PROGRAM_NAME
. Sau khi bạn chạy make install
, hãy chạy stow
:
./configure --prefix /usr/local/stow/PROGRAM_NAME
make
sudo make install
cd /usr/local/stow
sudo stow PROGRAM_NAME
Và bây giờ bạn sẽ có các liên kết tượng trưng như thế này:
/usr/local/bin/foo -> ../stow/PROGRAM_NAME/bin/foo
/usr/local/man/man1/foo.1 -> ../../stow/PROGRAM_NAME/man/man1/foo.1
/usr/local/lib/foo -> ../stow/PROGRAM_NAME/lib/foo
Bạn có thể dễ dàng theo dõi những chương trình bạn đã cài đặt bằng cách liệt kê nội dung của stow
thư mục và bạn luôn biết tệp thuộc về chương trình nào vì đây là liên kết tượng trưng đến một vị trí trong thư mục của chương trình đó. Gỡ cài đặt chương trình bằng cách chạy stow -D PROGRAM_NAME
sau đó xóa thư mục của chương trình. Bạn có thể làm cho chương trình tạm thời không khả dụng bằng cách chạy stow -D PROGRAM_NAME
(chạy stow PROGRAM_NAME
để làm cho chương trình có sẵn một lần nữa).
Nếu bạn muốn có thể nhanh chóng chuyển đổi giữa các phiên bản khác nhau của cùng một chương trình, hãy sử dụng /usr/local/stow/PROGRAM_NAME-VERSION
làm thư mục chương trình. Để nâng cấp từ phiên bản 3 lên phiên bản 4, hãy cài đặt phiên bản 4, sau đó chạy stow -D PROGRAM_NAME-3; stow PROGRAM_NAME-4
.
Các phiên bản cũ hơn của Stow không đi xa hơn những điều cơ bản mà tôi đã mô tả trong câu trả lời này. Các phiên bản mới hơn, cũng như XStow (chưa được duy trì gần đây) có các tính năng nâng cao hơn, như khả năng bỏ qua các tệp nhất định, đối phó tốt hơn với các liên kết tượng trưng hiện có bên ngoài thư mục stow (như man -> share/man
), tự động xử lý một số xung đột (khi hai các chương trình cung cấp cùng một tệp), v.v.
Nếu bạn không có hoặc không muốn sử dụng quyền truy cập root, bạn có thể chọn một thư mục trong thư mục chính của mình, vd ~/software/stow
. Trong trường hợp này, thêm ~/software/bin
vào của bạn PATH
. Nếu man
không tự động tìm các trang man, hãy thêm ~/software/man
vào của bạn MANPATH
. Thêm ~/software/info
vào của bạn INFOPATH
, ~/software/lib/python
cho của bạn PYTHONPATH
, và như vậy là áp dụng.