Như đã đề cập , /usr/local
được dùng như một tiền tố cho, về cơ bản, phần mềm được cài đặt bởi quản trị viên hệ thống, trong khi /usr
nên được sử dụng cho phần mềm được cài đặt từ các gói của bản phân phối.
Ý tưởng đằng sau điều này là để tránh xung đột với phần mềm phân tán (như gói rpm
và deb
gói) và cung cấp cho quản trị viên toàn quyền cai trị tiền tố "cục bộ".
Điều này có nghĩa là quản trị viên có thể cài đặt phần mềm biên dịch tùy chỉnh trong khi vẫn sử dụng bản phân phối như debian.
Phần mềm được đặt trong / hoặc / usr có thể được ghi đè bằng nâng cấp hệ thống (mặc dù chúng tôi khuyên rằng các bản phân phối không ghi đè lên dữ liệu trong / etc trong những trường hợp này). Vì lý do này, phần mềm cục bộ không được đặt bên ngoài / usr / local mà không có lý do chính đáng.
Khi cài đặt phần mềm dành riêng cho người dùng, uther gợi ý sử dụng $HOME
làm tiền tố vì điều này đảm bảo bạn có quyền ghi. Cá nhân, tôi cảm thấy sử dụng $HOME/.local
để trở thành một giải pháp thanh lịch hơn, vì nó tránh làm lộn xộn thư mục nhà đẹp (hy vọng) của bạn!
$HOME/.local/share
đã được sử dụng trong đặc tả thư mục cơ sở XDG của freedesktop.org , do đó, sẽ không mất nhiều thời gian để hình dung thêm một $HOME/.local/bin
vào $PATH
và tạo một $HOME/.local/lib
, v.v., trong khi bạn đang ở đó.
Nếu bạn không thực sự muốn tiền tố của mình là một thư mục ẩn, bạn cũng có thể dễ dàng tạo một liên kết tượng trưng cho nó, ví dụ:
ln -s .local ~/local
Sidenote
Điều đáng chú ý là .config
(không .local/etc
) là giá trị mặc định $XDG_CONFIG_HOME
được sử dụng cho các tệp cấu hình cụ thể của người dùng. Tôi cũng nên chỉ ra rằng, thật không may, một phần lớn phần mềm bỏ qua XDG và tạo các tệp cấu hình bất cứ nơi nào họ muốn (thường là trong thư mục gốc của $HOME
). Cũng lưu ý rằng $XDG_CONFIG_HOME
có thể không được đặt nếu mặc định $HOME/.config
là mong muốn.
Điều kỳ lạ là không có thư mục dành riêng cho các tệp cấu hình mặc định của bản phân phối, vì vậy không có cách nào để biết liệu một tệp /etc
được cung cấp bởi bản phân phối hay được quản trị viên hệ thống chỉnh sửa.