Câu trả lời:
Nguyên tắc chung, ít nhất là trên các hệ thống có hương vị Debian:
/usr/local
cho các công cụ đó là "system-wide" -ie /usr/local
có xu hướng được trong mặc định của distro $PATH
, và sau một hệ thống phân cấp thư mục UNIX chuẩn /usr/local/bin
, /usr/local/lib
vv
/opt
đối với những thứ bạn không tin tưởng để tạo ra toàn hệ thống, với tiền tố trên mỗi ứng dụng, tức là /opt/firefox-3.6.8
, /opt/mono-2.6.7
v.v. Những thứ ở đây đòi hỏi phải quản lý cẩn thận hơn, nhưng cũng ít có khả năng phá vỡ hệ thống của bạn và dễ dàng gỡ bỏ hơn vì bạn chỉ cần xóa thư mục và nó đã biến mất.
/opt
nếu bạn sudo
cài đặt.
Nếu bạn thực sự không muốn nó can thiệp gì cả, đừng đặt nó ở bất cứ đâu trong bạn $PATH
.
Nếu bạn muốn nó vào $PATH
, ít nhất hãy đảm bảo không cài đặt /usr/local
. Tôi đã thấy rằng rất nhiều phần mềm trông ở đó ngay cả khi nó được cài đặt bởi bản phân phối /usr
.
Cách yêu thích của tôi để cài đặt phần mềm biên dịch tùy chỉnh là trong $HOME
thư mục của tôi . Bằng cách đó, bạn không phải sử dụng sudo
cho bất cứ điều gì và nó rất tách biệt với phần còn lại của hệ thống. Ví dụ:
mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install
Và nếu bạn muốn, sau đó bạn có thể thêm /home/username/stage/bin
vào của bạn $PATH
.
/usr/local
:).
FHS nói hãy đặt nó vào / usr / local nơi các bản phân phối không được chạm vào nó. /usr/local/bin
cho các nhị phân /usr/local/src
cho nguồn và /usr/local/lib
cho các thư viện. Xem thông số kỹ thuật FHS để biết thêm
/etc/mysql
cho cấu hình không?
/usr/local/etc
thư mục theo mặc định, tôi đoán tôi nên sử dụng nó ... :-)
Hầu hết thời gian, tôi thích đặt công cụ biên dịch của riêng mình vào /opt
. Đó là một nơi giả chuẩn. Bạn cũng có thể xem xét /usr/local
, nhưng tôi thích giữ công cụ của mình cách ly 100%.
/opt
, tuy nhiên tôi đã thấy nhiều lần nơi chứa /usr/local
đầy rác từ nhà phân phối
/usr/local
là hệ thống phân cấp thư mục song song với các gói trong cây tiêu chuẩn và có thể lập chỉ mục các tệp cho những thứ như TeX.
Đặt chúng vào /usr/local/src
.
Những gì tôi làm là trích xuất nguồn trong thư mục này. Nó sẽ tạo ra một con đường như
/usr/local/src/postgresql-8.3.7
Sau đó, tôi tạo một liên kết tượng trưng cho nó:
/usr/local/src # ln -s postgresql-8.3.7 postgresql
Làm tất cả các tòa nhà của bạn trong /usr/local/src/postgresql
.
Làm mọi thứ theo cách này sẽ giúp ích khi bạn cần bật giữa các phiên bản và tài liệu về phiên bản bạn đang sử dụng.
Điều này nhắc nhở tôi, tôi cần sử dụng checkinstall thường xuyên hơn! Bằng cách đó tôi chỉ làm như bình thường
./configure
make
theo dõi bởi
sudo checkinstall
để tạo tệp .deb ...
Nếu bạn muốn có thể dễ dàng cài đặt và xóa một số ứng dụng do mình tự tạo, bạn có thể sử dụng Stow như một trình quản lý gói đơn giản.
Theo FHS , /usr/local/
được sử dụng cho các ứng dụng được biên dịch từ nguồn, trong khi /opt/
được sử dụng cho các ứng dụng bên thứ 3 không được nhà cung cấp hệ điều hành của bạn hỗ trợ.
Hai điều tôi khuyên bạn nên:
Toàn hệ thống: sử dụng stow và cài đặt theo / usr / local / stow / gói-phiên bản. Sau đó, bạn có thể dễ dàng chuyển đổi giữa các phiên bản.
Ở nhà tôi, hoặc nếu tôi không có quyền / usr / local write, cá nhân tôi cài đặt các chương trình theo ~ / .local, được gợi ý theo tiêu chuẩn XDG .
Bạn cũng có thể sử dụng stow cục bộ, mặc dù tôi chưa bao giờ làm :)
Tôi có một chút thiết lập khác với hầu hết mọi người vì tôi phát triển rất nhiều. Tôi có một thư mục / home / jackson / bin / mà tôi cài đặt vào và tôi đã chỉnh sửa .bashrc của mình bằng cách thêm này:
export PATH=/home/jackson/bin/bin::$PATH
export LD_LIBRARY_PATH=/home/jackson/bin/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/home/jackson/bin/lib/pkgconfig:$PKG_CONFIG_PATH
Tôi sẽ không làm điều này cho tất cả mọi thứ, nhưng nó tốt đẹp trong quá trình phát triển.
nếu bạn đang biên dịch một ứng dụng, bạn có thể thêm đường dẫn thực thi của nó trong biến env PATH của bạn. Điều này sẽ không ảnh hưởng đến người dùng khác.
Nếu bạn muốn ứng dụng của mình khả dụng cho tất cả người dùng trên hệ thống và bạn có các quyền cần thiết, hãy sử dụng / opt. Nếu bạn muốn ứng dụng chỉ khả dụng cho bạn (và root), hãy sử dụng / home / tên người dùng
Cách dễ nhất để làm điều này là lấy gói nguồn ( .src.rpm
đối với RPMites), giải nén nó, hack nguồn / cấu hình mới / bất cứ thứ gì vào nó, thay đổi phiên bản một cách thích hợp và xây dựng. Cài đặt này làm cho trình quản lý gói của bạn biết về gói mới, cho phép xem xét gói phụ thuộc và gỡ cài đặt / cập nhật.
Đây là một việc vặt lần đầu tiên, nhưng nếu một phiên bản mới (hoặc một số bản vá quan trọng) xuất hiện, thì việc cập nhật sẽ đơn giản hơn. Một lợi ích khác là bạn có thể tạo kho lưu trữ của riêng mình bằng phần mềm cục bộ, được chia sẻ, ví dụ như các máy trong phòng thí nghiệm.
Viết một RPM, nó không khó, có hướng dẫn về nơi đặt mọi thứ và làm cho việc gỡ cài đặt nhanh chóng.
Nếu bạn làm điều này, hãy cài đặt các tệp bên dưới /usr
và không bên dưới /usr/local
, giống như tất cả các tệp khác đi qua hệ thống đóng gói.